軟體測試遵循的基本原則
在實施測試活動時,測試工程師需遵循軟體測試的基本原則。經過軟體工程、軟體測試理論幾十年的發展與總結,概括出7條軟體測試基本原則。
一、 測試證明軟體存在缺陷
無論何種測試活動,其目的都是為了證明軟體存在缺陷。通過測試活動可以減少軟體中存在未被發現缺陷的可能性,降低漏測風險,但即使通過測試未能發現任何缺陷,亦不能證明被測物件不存在缺陷。
在實際工作中,開發人員在測試工程師不能發現缺陷後,經常會說被測物件已經沒有任何問題了,這種觀點是極其錯誤的。
二、 不可能執行窮盡測試
軟體是執行在硬體基礎上的邏輯實體,在複雜多變的環境中,任何執行環境發生變化都可能導致缺陷的產生,除了小型系統,利用窮舉法進行測試是不可能的。
通過風險分析、被測物件測試點優先順序分析、軟體質量模型及不同測試方法的運用來確定測試關注點,從而替代窮盡測試,提高測試覆蓋率。
三、 測試應儘早啟動、儘早介入
防患於未然,缺陷越早發現,修復的成本越低。為了儘早發現缺陷,在軟體系統生產生命週期中,測試(評審)活動應儘早介入。通常情況下從專案立項開始,每個階段都進行評審活動。
四、缺陷存在群集現象
引用經濟學中的二八原則,一個軟體系統的核心業務及功能往往只佔系統的20%左右,但這20%模組的缺陷數量可能佔了整個系統的80%左右。測試過程中人力、時間、資源分配比例應根據系統業務功能的優先順序匹配,並在測試活動結束後,根據缺陷分佈情況再進行調整。
在實際測試過程中,不可均分測試資源,需考慮測試投入及風險控制,可使用基於風險或操作剖面的測試策略重點測試。
五、 殺蟲劑悖論
害蟲經過幾輪藥物毒殺後,其後代將產生抗體,殺蟲劑不再有效。同樣的道理,測試用例經過多次迭代測試後,將不能再發現缺陷。
為了解決“殺蟲劑悖論”,測試用例需定期評審、及時調整,可根據軟體質量特性結合被測物件的業務場景,設計新的測試用例來測試,從而發現更多潛在的缺陷。
六、 不同的測試活動依賴於不同的測試背景
不同的測試背景、測試目標,需開展不同的測試活動。例如,電子商務業務系統與金融證券產品的測試方法可能不一樣,安全性測試與相容測試性測試方法不一樣。針對不同的測試背景,採用恰當高效的測試活動,是實施有效測試活動的一個重要環節。
七、不存在缺陷的謬論
當被測物件無法滿足使用者需求時,即使該系統無任何缺陷,也不能稱為高質量的軟體。不能滿足使用者期望的系統即是無用系統。系統無用時,發現與修改缺陷是毫無意義的。實施測試活動時,一定要考慮使用者背景。
一部時尚酷炫的手機操作對於老年人而言可能顯得費解,即使功能無任何問題,但解決不了老年人的易學易用性問題。
在實施測試活動時,測試工程師需要時刻關注測試目的及所需遵循的原則,利用測試目的及原則指導測試計劃、方案及執行過程,從而提高測試效率。