軟件測試層次中的策略 軟件測試工具
對特定的測試層次,測試策略的目標是對測試什么,如何徹底地測試,采用哪些測試技術做出選擇。對所有相關的部分,測試策略必須向各方做出解釋,為什么考慮到時間壓力和稀缺資源。采用這種方式來測試系統是可能的最佳選擇。選擇不是隨意做出的,而是和組織認為的最重要的(依據商業風險)事情相關。正確的觀點是,測試策略的開發不僅僅是一項技術工作,而且也非常受行政因素的影響:它必須向產品權益人保證測試本身并不是目標,而是為了整個組織的利益。同時要讓他們知道,他們得到的并不是“最完美的測試”,而是“考慮各種環境因素后的最佳測試”。
測試策略的最終結果是,詳細闡述應用于系統特定部分的特定測試技術。每種測試技術可以被看做一個具體的測試活動,可以單獨計劃和監督。這使得測試策略成為測試經理一個重要的管理工具。
該環節需要進行下面的步驟:
l選擇質量特性;
2確定質量特性的相對重要性;
3將系統分解成子系統;
4確定子系統的相對重要性;
5對每個子系統,質量特性聯合體,確定測試的重要性;
6確定將被使用的測試技術。
如果已經制定了包含測試策略的主測試計劃,則必須基于主測試計劃來為某個特定測試層次制定測試策略。這種情況下,步驟1和步驟2相對比較容易實現,只要將整體上已經研究和決定的內容簡單轉換就可以了?梢詫⒉煌瑴y試層次的測試策略看做是對主測試策略中整體目標更為具體的細化。如果主測試計劃中沒有包含測試策略,則特定測試層次的測試經理將不得不在組織中發起和協調關于商業風險和質量特性的討論,就像為主測試計劃所做的一樣。7 4 6確定要使用的測試技術
最后一步是選擇測試技術,這些技術將用于測試子系統相關的測試特性。從前面步驟得到的矩陣(見表7 5中的例子)可以看做是一個“合同”:按照組織已經定義好的重要事情,測試團隊要組織和執行測試過程。依據矩陣中所指定的,對某個方面進行更為嚴格的測試,而對另一個方面進行更全面的測試。
通常,多數系統功能通過用例來進行測試,這些用例專門為目標(子系統或功能)而設計(動態直接測試),有許多測試設計技術可以采用(見第13章)。在開發和測試過程中,也可以通過收集數據來進行測試(動態間接測試),或者基于一個審查清單來評估以進行測試(靜態測試)。例如在測試功能時,可以用秒表來測量響應時間以測試性能。這里沒有設計直接的測試用例來測試性能,而是間接地測試。又比如對于安全性,可以通過對安全性規章的靜態檢查來進行測試。
現在測試經理的職責是建立一套能夠勝任工作的測試技術。矩陣中表明有高度重要性,就需要采用嚴格技術或者使用多項技術來實現高百分比覆蓋。次重要性就采用實現低百分比覆蓋的技術,或者是動態間接測試。至于哪些技術是最佳選擇,則依賴于許多因素。這些因素包括:
■被測試的質量特性。例如某項技術也許能夠很好地模擬系統真實情況,但對于功能行為的變化卻無能為力。
一應用的領域。有些技術是用來測試人機交互的,而有些技術則適合測試特定部件內部的所有功能性變化。
一需要的測試基礎。有些技術要求有特定類型的系統文檔。比如狀態轉換圖、 偽代碼或圖表。
一需要的資源。技術的應用需要一定數量的人員和機器能力方面的資源。這一點通常也依賴于“需要的知識和技能”。
一需要的知識和技能。測試成員的知識和技能影響著技術的選擇。技術的有效使用有時要求測試人員具備特定的知識和域技能。資深的行業專家可 能是首先要具備的,有些技術甚至需要有受過訓練的(數學)分析天才在介紹測試設計技術的第13章中,將有這些方面更為詳細的信息。在選擇所需要的測試技術時,測試經理對于各種測試設計技術及其優缺點的經驗和知識,將是至關重要的。為了適用于特定的測試項目,常常將現成的測試技術調整或組合成“新”的測試技術。技術的選擇和調整必須在測試過程的早期就完成,以便對測試團隊進行相關領域的培訓。
這一步驟的結果是確定測試每個子系統所用到的技術。見表7 6中的例子。每個“+”號表示相應的技術將用于系統的特定部分。從管理角度來講,這是一個非常有用的表,因為可把每個“+”號看成一個單獨的實體.獨立地進行計劃和監督?梢园衙總“+”號分配給一個測試人員,他將對所有必要的恬動負責,比如設計測試用例、執行測試等。對大型系統而言,可以通過將其分解為單個測試人員能完全控制的更小單元的方法,來將該表進一步細化。一般只有到準備階段才會將測試策略分解得這么詳細,尤其在大型測試項目中。表7 6確定哪些技術用于系統的哪些部分為了確保盡可能早地執行那些最為重要的測試,在該步驟中還需要確定測試技術一子系統聯合體)的優先級順序。
文章來源于領測軟件測試網 http://www.kjueaiud.com/