殺蟲劑悖論
出自 MBA智库百科(https://wiki.mbalib.com/)
殺蟲劑悖論(pesticide paradox)
目錄 |
殺蟲劑悖論,在軟體測試中用來描述這樣一種現象,對軟體進行越多的測試,那麼該軟體對軟體測試人員的測試就越具有免疫力。
殺蟲劑悖論是Boris Beizer在他1990年出版的《Software Testing Techniques》一書中最先提出來的。[1]名字來源於每年各種各樣的害處襲擊田野和農作物,農業專家們要找到正確的對抗方法,用改良的配方設計出殺蟲劑。但是害蟲適應了新的殺蟲劑,產生了免疫力,使新殺蟲劑失效。隨後的幾年裡,老的殺蟲劑只能用來殺死沒有免疫力的害蟲,同時還必須引入一些新的改良配方,同更頑強的新編譯害蟲作鬥爭。
新舊殺蟲劑的結合有時阻礙了舊殺蟲劑效能的發揮。隨著時間的流逝,舊的殺蟲劑變得毫無用處。於是,害蟲和殺蟲劑不停的戰鬥,看最終誰占上風。有時殺蟲劑贏,但是,有時害蟲又可以成功的戰勝最新的殺蟲劑。這場鬥爭的結果是大自然和殺蟲劑的不斷發展變化。
為了剋服“殺蟲劑悖論”,測試用例需要經常的評審和修改,不斷增加新的不同的測試用例來測試軟體或系統的不同部分,保證測試用例永遠是最新的,即包含著最後一次程式代碼或說明文檔的更新信息。這樣軟體中未被測試過的部分或者先前沒有被使用過的輸入組合就會重新執行,從而發現更多的缺陷。軟體測試人員必須不斷地編寫新的不同的測試來檢驗程式的不同部分從而找出更多的bug。讓其他的人來測試你的程式將有助於打破”殺蟲劑悖論”。
相同的測試人員測試同一個模塊(功能),因長時間測試,形成了思維定式,因此也容易產生懈怠,忽視一些缺陷的存在,也容易導致殺蟲劑悖論。解決辦法就是採用交叉測試,不同的測試人員,有不同的測試思路和技巧,容易發現被忽視的缺陷。[1]