測試開發中的蟲劑悖論

2022-07-05 22:21:11 字數 1169 閱讀 2155

1 初識蟲劑悖論

提到 蟲劑悖論(pesticide paradox),我相信很多人都沒聽說的,除非是生物學專業的同學或者磚家。

蟲劑悖論描述的是重複使用某種農藥殺滅害蟲,時間越久,殺蟲的效果就越差。

之所以這樣,是因為出現抗藥性,也就是說害蟲發生了進化,對這種殺蟲藥免疫了。

為了保證農藥的殺蟲效果,我們必須不斷的研究新農藥。

這個理論,運用到軟體測試中:

bug類似於害蟲,用例類似於農藥,重複使用固定的一批測試用例,能發現的bug就越來越少,遺漏的bug就會越來越多。

也就是說,測試的有效性會隨著時間不斷衰減。

之所以存在這種現象,是因為軟體在不斷進化,新的bug在不斷產生。同樣一批用例,只能發現會引起已覆蓋功能衰退的regression bug。很多新bug對這批用例是有免疫力的。

那麼,我們如何保持和長期保持測試的有效性呢?

就像殺蟲需要不斷更新農藥一樣,發現bug需要不斷更新測試策略和測試用例。

2 應對蟲劑悖論

2.1 更新測試策略

測試策略是高度依賴測試上下文的。

當測試上下文發生變化時,測試策略應該隨之動態調整。

例如,在採用基於風險的測試策略時,哪個模組,哪個環節風險大,我們就應該將測試資源朝這個模組,這個環節傾斜。

軟體測試的型別,方法和工具是豐富多彩的。據不完全統計,存在有100種以上的測試型別。在制定測試策略時,可以考慮多樣化,組合型的測試策略,例如自動化測試+探索測試,確定性測試+隨機fuzzing,從而實現優勢互補和效益最大化。

2.2 更新測試用例

對於軟體來說,三分開發,七分維護。對於測試用例,其實也類似。測試用例是需要長期維護的。我們需要密切跟蹤遺漏出去的bug,及時校準用例,打上補丁。

同時,我們需要密切跟蹤被測軟體的變化,評估變化對使用者場景的影響。對於產生新使用者場景的變化,要及時新增測試用例進行覆蓋。

「測試免疫"是一種客觀存在的規律,不以人的意志為轉移。對於"測試免疫」,我們不能無動於衷,而要有所作為。

只有經常主動去更新測試策略和用例,堵住漏洞,提公升覆蓋,我們才能彌補用例有效性衰減的損失,讓測試整體有效性保持在一定的水平。

測試開發的心路歷程

關於自動化 自動化越來越看重節省成本,效率和價效比高於一切,如果自動化的成本和效率的綜合價效比都沒有手工來的好,那我們引進自動化麼的初衷呢,值得深思。1 自動化能為公司可以節省多少成本?我們說的自動化不只是自動化測試,我要自動化的東西很多。我總能看見有些專案的自動化處於很奇怪的狀態。搞自動化之前需要...

測試開發 我的實習Day

今 天和大家分享一下我的實習經歷 首先是進行web端測試之前做的準備工作 第一周 主要是熟悉業務,然後就是跟著組裡的人進行 原創書庫的的web端測試。第二週 主要是了解我們 測試組的整個工作流程 需求評審 寫測試用例 用例評審 測試主動組織該需求對應的產品和研發人員,說一下需求的主要測試點,並且把1...

軟體測試開發和軟體測試的區別

按照字面意思理解,大家或許會覺得測試開發是指既能開發產品又能測試產品的 技術王者 但其實並非如此,今天我們就來看看這兩者到底有什麼區別。什麼是軟體測試?顧名思義,就是在規定的條件下對乙個產品或程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。測試工程師主要工作內容是...