工作進行得越早,測試用例多次重複進行測試,最後将不再能發現新的缺陷。為了克服這種“殺蟲劑悖論”,測試用例需要進行定期評審和修改,同時需要不斷地增加新的不同的測試用例來測試軟體或系統的不同部分,進而發現潛在的更多的缺陷。
6)原則6——測試活動依賴于測試背景。針對不同的測試背景,進行的測試活動也是不同的。比如,對要求安全放在第一位的軟體進行測試,與對一般的電子商務軟體的測試是不一樣的。
2、其他重要的7 項原則
1)持續地測試、持續地回報。軟體測試貫穿着整個軟體開發生命周期,随時發現需求、設計或代碼中問題,及時将發現的問題回報給使用者、産品設計人員、開發人員等,主動、積極地交流,持續提高軟體産品品質,這在功能測試執行階段,測試人員不僅要對新功能進行測試,而且要有效地完成回歸測試。
4)測試獨立性。測試在一定程度上帶有“挑剔性”,心理狀态是測試自己程式的障礙。同時,對于需求規格說明的錯誤了解也很難在程式員本人進行測試時被發現。程式員應避免測試自己的程式,為達到最佳的效果,應由獨立的測試小組、第三方來完成測試。
5)確定可測試性。事先定義好産品的品質特性名額,測試時才能有據可依。有了具體的名額要求,才能依據測試的結果對産品的品質進行客觀的分析和評估,才能使軟體産品具有良好的可測試性。例如,進行性能測試前,産品規格說明書就已經清楚定義了各項性能名額。同樣,測試用例應确定預期輸出結果,如果無法确定所期望的測試結果,則無法進行正确與否的校驗。
6)計劃是一個過程。雖然通過文檔來描述軟體測試計劃,并最後歸檔,但計劃是一個過程,是指導各項軟體測試活動的持續過程。在項目開始時很難将所有的測試點、測試風險等都了解清楚,随着時間推移,通過需求和設計的評審和探索式測試,對産品的了解越來越深,對測試的需求和風險越來越了解,可以進一步細化、不斷豐富測試計劃。其次,計劃趕不上變化,軟體産品的需求常會發生變化,測試計劃不得不是以做出調整。是以,測試計劃是适應實際測試狀态不斷變化而進行調整的一個過程。
7)一切從使用者角度出發。在所有測試活動的過程中,測試人員都應該從客戶的需求出發,想使用者所想。正如我們所知,軟體測試的目标就是驗證産品開發的一緻性和确認産品是否滿足客戶的需求,與之對應的任何産品品質特性都應追溯到使用者需求。測試人員要始終站在使用者的角度去思考、分析産品特性,多問問類似下面這樣的問題:
這個新功能對客戶的價值是什麼?
客戶會如何使用這個新功能?
客戶在使用這個功能時,會進行什麼樣的操作?
按目前設計,使用者覺得友善、舒服嗎?
如果發現缺陷,去判斷軟體缺陷對使用者的影響程度,系統中最嚴重的錯誤是那些導緻程式無法滿足使用者需求的缺陷。軟體測試,就是揭示軟體中所存在的邏輯錯誤、低性能、不一緻性等各種影響客戶滿意度的問題,一旦修正這些錯誤就能更好地滿足使用者需求和期望