軟件測試100天上岸3-測試有哪些最高原則

測試原則是一個測試人員時刻要銘記在心的,甚至要形成一種本能,指導測試工作。

原則1:測試找不出所有的Bug

軟件的複雜性僅次於生命體,甚至現在很多軟件都已經有了人工智能的屬性。對於這樣精妙的系統,一小點異常都有可能產生連鎖反映,最終讓整個系統無法運行。就好像人體只需要吸入一粒微小的塵埃,就可能感染病菌,從而引起人體的高能反應,最終導致人病倒,無法行動。

像軟件這樣的精妙系統,就算做再多測試,也無法找出所有的錯誤,就好像你永遠無法保證,人不生病一樣。

原則2:2/8 原則

少數功能模塊會測試到大多數缺陷,用數字來表示就是 80%的問題出現在20%的功能模塊中。在很多領域中都存在 2/8 原則,而在測試中同樣會運用到這個原則。

爲什麼會這樣的原因很多,我們只能適當分析。 比如開發某個功能模塊的程序員水平不行,引入了大量缺陷; 也可能是這個功能模塊非常複雜,可能出現大量沒有考慮到的因素。

原則3:儘早介入測試

一個軟件越複雜,越有可能產生新 bug。 熱力學第二定律指出:孤立系統自發地朝著熱力學平衡方向──最大熵狀態──演化,同樣地,第二類永動機永不可能實現。

這個定律同樣適用於信息系統。 當一個軟件引入越多的信息,越多的功能,會讓軟件變得越來越混亂,從而產生越來越多bug。

如果要少產生bug,首先是要保持軟件整體的簡單性,還有就是儘早介入測試。 因爲在一個功能被開發的早期,功能還足夠簡單,早期介入測試能更高效的找到bug,如果一個功能演化到後期,被更多其他的程序使用,變得越來越複雜,找到bug會難很多。 儘早介入測試,還可以讓開發快速得到反饋,從而儘快修復bug,不會把bug帶到更復雜的代碼世界中。

原則4:抗藥性原則

抗藥性原則又叫殺蟲劑悖論(Pesticide Paradox)。隨着時間的推移,重複使用相同的殺蟲劑消滅昆蟲會導致昆蟲對農藥產生抵抗力,從而使殺蟲劑對昆蟲無效,這同樣適用於軟件測試。

如果進行相同的重複測試,則該方法將無助於發現新的缺陷。爲了解決此問題,需要定期檢查和更新測試用例,添加新的和不同的測試用例以幫助發現更多的缺陷。測試人員不能簡單地依靠現有的測試技術。他必須不斷尋找改進現有方法的方法,以使測試更有效。

原則5:要有精確的預期結果

測試用例中一個必需部分是對預期輸出或結果的定義,這條顯而易⻅的原則在軟件測試中卻是最常犯的錯誤之一,很多測試人員對程序應該產生的結果沒有明確定義,只是憑感覺判斷結果是否異常。

儘管“軟件測試是破壞性”的定義是合理的,但人們在潛意識中仍然渴望看到正確的結果,所以當程序運行符合測試人員的心理預期時,他們會自以爲程序是正常的。沒有期望,也就沒有所謂的意外。

克服這種傾向的一種方法,就是通過事先精確定義程序的預期輸出,鼓勵人們對所有的輸出進行仔細檢查。因此,一個測試用例必須包括兩個部分:1.對程序的輸入數據的描述。2.對程序在上述輸入數據下的正確輸出結果的精確描述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章