生物學中,有一個著名的蟲劑悖論(pesticide paradox),描述的是重復使用某種農藥殺滅害蟲,滅蟲的效果會越來越差的現象,之所以如此,是因為害蟲會發生進化,漸漸產生對農藥的免疫力,
為了保持農藥的殺蟲效果,人們必須不斷開發和使用新的農藥,
我們可以在軟體測驗中,觀察到類似的現象,bug類似害蟲,用例類似農藥,重復使用固定的一批用例進行測驗,能發現的bug會越來越少,遺漏出去的bug會越來越多,
也就是說,測驗的有效性會隨著時間不斷衰減,
之所以存在這種現象,是因為軟體在不斷進化,新的bug在不斷產生,同樣一批用例,只能發現會引起已覆寫功能衰退的regression bug,很多新bug對這批用例是有免疫力的,
可以說,"測驗免疫"作為一種客觀存在的規律,是我們不能輕視的,面對這種規律,我們如何保持和長期保持測驗的有效性呢?
就像殺蟲需要不斷更新農藥一樣,發現bug需要不斷更新測驗策略和測驗用例,

1.如何動態更新測驗策略?
測驗策略是高度依賴測驗背景關系的,當測驗背景關系發生變化時,測驗策略應該隨之動態調整,例如,在采用基于風險的測驗策略時,哪個模塊,哪個環節風險大,我們就應該將測驗資源朝這個模塊,這個環節傾斜,
軟體測驗的型別,方法和工具是豐富多彩的,據不完全統計,存在有100種以上的測驗型別,在制定測驗策略時,可以考慮多樣化,組合型的測驗策略,例如自動化測驗+探索測驗,確定性測驗+隨機Fuzzing,從而實作優勢互補和效益最大化,
2.如何動態更新測驗用例?
對于軟體來說,三分開發,七分維護,對于測驗用例,其實也類似,測驗用例是需要長期維護的,我們需要密切跟蹤遺漏出去的bug,及時校準用例,打上補丁,
同時,我們需要密切跟蹤被測軟體的變化,評估變化對用戶場景的影響,對于產生新用戶場景的變化,要及時新增測驗用例進行覆寫,
"測驗免疫"是一種客觀存在的規律,不以人的意志為轉移,對于"測驗免疫",我們不能無動于衷,而要有所作為,
只有經常主動去更新測驗策略和用例,堵住漏洞,提升覆寫,我們才能彌補用例有效性衰減的損失,讓測驗整體有效性保持在一定的水平,
如需了解更多測驗技術資訊請關注:深圳多測師軟體與技術服務有限公司
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312103.html
標籤:其他
上一篇:一個神器,讓寫東西快得飛起
下一篇:一、Java語言的開放環境
