通過閱讀前面幾期的測試漫談,相信大家對軟件測試的概念有了一定的理解。通俗地講, 軟件測試是在受控條件下對軟件系統或應用程序進行操作并評估操作的結果,所謂受控制的條 件應該包括正常條件和非正常條件,例如為了故意去造成錯誤發生而人為創造的測試條件。
我概括了以下幾點內容,從軟件開發的角度,來討論一下在進行軟件測試時,測試案例的 設計應從哪些發面入手:
1. 用戶需求:用戶需求指出系統或應用軟件應當做什么和不應當做什么,軟件開發過程中的需求定義階段,由于沒有進行交流、交流錯誤或者交流不充分,都給軟件設計造成誤導。測試案例的設計首先必須從用戶需求出發,我們在測試過程中發現許多爭論不清的錯誤和矛盾正是出于用戶需求的不明確。不滿足用戶需求的軟件,其它方面即使很完美,也不是一個合格的軟件。
2. 軟件特征:目前的軟件系統和應用軟件是比較復雜的,客戶端/服務器、瀏覽器/服務器、數據通信、巨大的關系數據庫技術的利用以及規模龐大,所有這一切都造成系統/軟件的復雜性提高,以至于沒有一定基礎的人不可能全面地掌握它。系統/軟件本身的復雜性和相互之間頻繁的聯系使軟件的出錯概率提高,也使測試的難度提高,給工程師的素質提出更高的要求。廣闊的技術領域和熟練的基礎知識是設計高質量測試案例的必備條件。
3. 編程錯誤:編程的錯誤是造成軟件功能錯誤和性能不能滿足要求的主要因素,另 外,軟件開發工具例如:類庫、編譯器、編輯工具等等,都會把本身的故障引入,從而導致更 多故障的產生。和所有的人一樣,程序員也會犯錯誤,而且對于自己的錯誤經常視而不見。軟 件測試工程師從編程的角度來挖掘錯誤的根源,設計測試案例有特殊的優勢。
4. 需求變化:客戶要改變需求多數是合理的,但其恐怕沒有意識到改變需求造成的影 響,可能會導致重新軟件設計、波及其他項目、對已完成工作的否認、硬件需求的改變等等。 例如需求的改變可能會使項目中出現許多小改變或一個大改變,出現已知、未知的問題以及相 互影響導致出現的問題。在一些特殊的環境里,持續變更需求的影響是致命的,可能會導致大 量致命錯誤的出現。軟件測試工作必須與此變更相適應,重視測試案例在回歸測試中的設計與 使用,進行持續的廣泛的測試,不讓需求變化帶來的問題漏網。
5. 人為因素:人們通常喜歡這樣說:“沒問題”、“太簡單”、“修改老代碼是不難 的事” 、“我用很短的時間就能完成”,而不是說:“我們沒有太多把握”、“新增加的工 作很復雜,可能會出現無法預料的錯誤”、 “我們不能估計修改舊代碼是否能成功” 、“我 在實際工作之前,無法估計需要多長時間完成”。忠言雖然逆耳,但太多的“沒問題”,必然 會出問題。測試案例的設計多從細小、經常被大家“不放在眼里”的問題考慮,經常會發現意 想不到的錯誤。 上面幾點只是一個簡單概括,在實際工作中能否有幫助,還需要大家在此基礎上繼續發 揮,挖掘更深刻的內容。
原文轉自:http://www.anti-gravitydesign.com