(4)在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件。
合理的輸入條件是指能驗證程序正確的輸入條件,而不合理的輸入條件是指異常的,臨界的,可能引起問題異變的輸入條件。在測試程序時,人們常常傾向于過多地考慮合法的和期望的輸入條件,以檢查程序是否做了它應該做的事情,而忽視了不合法的和預想不到的輸入條件。事實上,軟件在投入運行以后,用戶的使用往往不遵循事先的約定,使用了一些意外的輸入,如用戶在鍵盤上按錯了鍵或打入了非法的命令。如果開發的軟件遇到這種情況時不能做出適當的反應,給出相應的信息,那么就容易產生故障,輕則給出錯誤的結果,重則導致軟件失效。因此,軟件系統處理非法命令的能力也必須在測試時受到檢驗。用不合理的輸入條件測試程序時,往往比用合理的輸入條件進行測試能發現更多的錯誤。
。5)充分注意測試中的群集現象。
測試時不要以為找到了幾個錯誤問題就已解決,不需繼續測試了。經驗表明,測試后程序中殘存的錯誤數目與該程序中已發現的錯誤數目或檢錯率成正比。根據這個規律,應當對錯誤群集的程序段進行重點測試,以提高測試投資的效益。
在所測程序段中,若發現錯誤數目多,則殘存錯誤數目也比較多。這種錯誤群集性現象,已為許多程序的測試實踐所證實。例如美國IBM公司的0s/370操作系統中,47 9/6的錯誤僅與該系統的4%的程序模塊有關。這種現象對測試基于不同的立場,存在著兩種完全不同的測試目的。從用戶的角度出發,普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,以考慮是否可以接受該產品。而從軟件開發者的角度出發,則希望測試成為表明軟件產品中不存在錯誤的過程,驗證該軟件已正確地實現了用戶的要求,確立人們對軟件質量的信心。因此,他們會選擇那些導致程序失效概率小的測試用例,回避那些易于暴露程序錯誤的測試用例。同時,也不會著意去檢測、排除程序中可能包含的副作用。
顯然,這樣的測試對完善和提高軟件質量毫無價值。因為在程序中往往存在著許多預料不到的問題,可能會被疏漏,許多隱藏的錯誤只有在特定的環境下才可能暴露出來。如果不把著眼點放在盡可能查找錯誤這樣一個基礎上,這些隱藏的錯誤和缺陷就查不出來,會遺留到運行階段中去。如果站在用戶的角度,替他們設想,就應當把測試活動的目標對準揭露程序中存在的錯誤。在選取測試用例時,考慮那些易于發現程序錯誤的數據。
。6)嚴格執行測試計劃,排除測試的隨意性。
測試計劃應包括:所測軟件的功能,輸入和輸出,測試內容,各項測試的進度安排,資源要求,測試資料,測試工具,測試用例的選擇,測試的控制方式和過程,系統組裝方式,跟蹤規程,調試規程,以及回歸測試的規定等以及評價標準。
對于測試計劃,要明確規定,不要隨意解釋。
。7)應當對每一個測試結果做全面檢查。
這是一條最明顯的原則,但常常被忽視。有些錯誤的征兆在輸出實測結果時已經明顯地出現了,但是如果不仔細地全面地檢查測試結果,就會使這些錯誤被遺漏掉。所以必須對預期的輸出結果明確定義,對實測的結果仔細分析檢查,抓住征候,暴露錯誤。
。8)妥善保存測試計劃,測試用例,出錯統計和最終分析報告,為維護提供方便。
很有用。如果發現某一程序模塊似乎比其他程序模塊有更多的錯誤傾向時,則應當花費較多的時間和代價測試這個程序模塊。
文章來源于領測軟件測試網 http://www.kjueaiud.com/