1、拿到一個軟件(系統)后,先確定測試需求(負責人來把握方向),后面的計劃、方案、用例,和測試組織(何時進行測試,模塊開發完,還是集成完以后)等過程是確定方向后的執行。
軟件測試沒有窮盡,把握方向階段,根據測試部門現有資源情況,博弈,獲取最大測試收益,選取幾個方面的測試因素。是為制定測試計劃的前期工作。
測試策略:
目標-
1、利益相關者(管理、開發、測試、用戶)一致性目標
2、管理期望值
3、確保開發方向正確
4、確定測試類型
涵蓋范圍-
1、項目計劃、風險、需求
2、相關規則、政策、指示
3、所需過程、標準、模板
4、支持準則
5、利益相關者及其測試目標
6、測試資源與評估
7、測試層次與階段
8、測試環境
9、各位階段完成標準
10、所需測試文檔與檢查方法
目的-
是不是所有軟件測試都要運用現有軟件測試方法去測試呢?答案是否定的。依據軟件本身性質、規模和應用場合的不同,我們將選擇不同測試方案,以最少的軟硬件、人力資源投入得到最佳的測試效果,這就是測試策略的目標所在。
影響因素-
軟件測試策略隨著軟件生命周期的變化、軟件測試方法、技術與工具的不同發生的變化。這就要求我們在制定測試策略時候,應該綜合考慮測試策略的影響因素及其依賴關系。這些影響因素可能包括:測試項目資源因素、項目的約束和測試項目的特殊需要等。
軟件測試策略的制定過程
(1)輸入
需要的軟硬件資源的詳細說明;
針對測試和進度約束而需要的人力資源的角色和職責;
測試方法、測試標準和完成標準;
目標系統的功能性和技術性需求;
系統局限(即系統不能夠提供的需求)等等。
(2)輸出
已批準和簽署的測試策略文檔、測試用例、測試計劃;
需要解決方案的測試項目;
(3)過程
1)確定測試的需求
測試需求所確定的是測試內容,即測試的具體對象。在分析測試需求時,可應用以下幾條一般規則:
測試需求必須是可觀測、可測評的行為。如果不能觀測或測評測試需求,就無法對其進行評估,以確定需求是否已經滿足。
在每個用例或系統的補充需求與測試需求之間不存在一對一的關系。用例通常具有多個測試需求;有些補充需求將派生一個或多個測試需求,而其他補充需求(如市場需求或包裝需求)將不派生任何測試需求。
測試需求可能有許多來源,其中包括用例模型、補充需求、設計需求、業務用例、與最終用戶的訪談和軟件構架文檔等。應該對所有這些來源進行檢查,以收集可用于確定測試需求的信息。
2)評估風險并確定測試優先級¤
成功的測試需要在測試工作中成功地權衡資源約束和風險等因素。為此,應該確定測試工作的優先級,以便先測試最重要、最有意義或風險最高的用例或構件。為了確定測試工作的優先級,需執行風險評估和實施概要,并將其作為確定測試優先級的基礎。
3)確定測試策略
一個好的測試策略應該包括:實施的測試類型和測試的目標、實施測試的階段、技術、用于評估測試結果和測試是否完成的評測和標準、對測試策略所述的測試工作存在影響的特殊事項等內容。
如何才能確定一個好的測試策略呢?我們可以從基于測試技術的測試策略、基于測試方案的測試策略兩個方面來回答這個問題。
?、?基于測試技術的測試策略的要點
著名測試專家給出了使用各種測試方法的綜合策略:
任何情況下都必須使用邊界值測試方法;
必要時使用等價類劃分方法補充一定數量的測試用例;
對照程序邏輯,檢查已設計出的測試用例的邏輯覆蓋程度,看是否達到了要求;
如果程序功能規格說明中含有輸入條的組合情況,則已開始可以選擇因果圖方法。
?、?基于測試方案的測試策略
對于基于測試方法的測試策略,一般來說應該考慮如下方面:
根據程序的重要性和一旦發生故障將造成的損失來確定它的測試等級和測試重點;
認真研究,使用盡可能少的測試用例發現盡可能多的程序錯誤,避免測試過度和測試不足!
第二部分 測試策略的方法
軟件測試的策略、方法和技術是多種多樣的。對于軟件測試技術,可以從不同的角度加以分類:從是否需要執行被測軟件的角度,可分為靜態測試和動態測試。從測試是否針對系統的內部結構和具體實現算法的角度來看,可分為白盒測試和黑盒測試。
1. 靜態方法與動態方法
所謂靜態方法是指不運行被測程序本身,僅通過分析或檢查源程序的文法、結構、過程、接口等來檢查程序的正確性。靜態方法通過程序靜態特性的分析,找出欠缺和可疑之處,例如不匹配的參數、不適當的循環嵌套和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑的計算等。靜態測試結果可用于進一步的查錯,并為測試用例選取提供指導。
動態方法是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率和健壯性等性能,這種方法由三部分組成:構造測試實例、執行程序、分析程序的輸出結果。
2. 功能測試與結構測試
(1)功能測試
功能測試是指在對程序進行的功能抽象的基礎上,將程序劃分成功能單元,然后在數據抽象的基礎上,對每個功能單元生成測試數據進行測試。用這種方法進行測試時,被測程序被當作打不開的黑盒,因而無法了解其內部構造,因此又稱為黑盒測試。
黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當接收輸入數據而產生正確的輸出信息,并且保持外部信息的完整性。