1 初識蟲劑悖論
提到 蟲劑悖論(pesticide paradox),我相信很多人都沒聽說的,除非是生物學專業的同學或者磚家。
蟲劑悖論描述的是重複使用某種農藥殺滅害蟲,時間越久,殺蟲的效果就越差。
之所以這樣,是因為出現抗藥性,也就是說害蟲發生了進化,對這種殺蟲藥免疫了。
為了保證農藥的殺蟲效果,我們必須不斷的研究新農藥。
這個理論,運用到軟體測試中:
bug類似於害蟲,用例類似於農藥,重複使用固定的一批測試用例,能發現的bug就越來越少,遺漏的bug就會越來越多。
也就是說,測試的有效性會隨著時間不斷衰減。
之所以存在這種現象,是因為軟體在不斷進化,新的bug在不斷產生。同樣一批用例,只能發現會引起已覆蓋功能衰退的regression bug。很多新bug對這批用例是有免疫力的。
那麼,我們如何保持和長期保持測試的有效性呢?
就像殺蟲需要不斷更新農藥一樣,發現bug需要不斷更新測試策略和測試用例。
2 應對蟲劑悖論
2.1 更新測試策略
測試策略是高度依賴測試上下文的。
當測試上下文發生變化時,測試策略應該隨之動態調整。
例如,在採用基於風險的測試策略時,哪個模組,哪個環節風險大,我們就應該將測試資源朝這個模組,這個環節傾斜。
軟體測試的型別,方法和工具是豐富多彩的。據不完全統計,存在有100種以上的測試型別。在制定測試策略時,可以考慮多樣化,組合型的測試策略,例如自動化測試+探索測試,確定性測試+隨機fuzzing,從而實現優勢互補和效益最大化。
2.2 更新測試用例
對於軟體來說,三分開發,七分維護。對於測試用例,其實也類似。測試用例是需要長期維護的。我們需要密切跟蹤遺漏出去的bug,及時校準用例,打上補丁。
同時,我們需要密切跟蹤被測軟體的變化,評估變化對使用者場景的影響。對於產生新使用者場景的變化,要及時新增測試用例進行覆蓋。
「測試免疫"是一種客觀存在的規律,不以人的意志為轉移。對於"測試免疫」,我們不能無動於衷,而要有所作為。
只有經常主動去更新測試策略和用例,堵住漏洞,提公升覆蓋,我們才能彌補用例有效性衰減的損失,讓測試整體有效性保持在一定的水平。
測試開發的心路歷程
關於自動化 自動化越來越看重節省成本,效率和價效比高於一切,如果自動化的成本和效率的綜合價效比都沒有手工來的好,那我們引進自動化麼的初衷呢,值得深思。1 自動化能為公司可以節省多少成本?我們說的自動化不只是自動化測試,我要自動化的東西很多。我總能看見有些專案的自動化處於很奇怪的狀態。搞自動化之前需要...
測試開發 我的實習Day
今 天和大家分享一下我的實習經歷 首先是進行web端測試之前做的準備工作 第一周 主要是熟悉業務,然後就是跟著組裡的人進行 原創書庫的的web端測試。第二週 主要是了解我們 測試組的整個工作流程 需求評審 寫測試用例 用例評審 測試主動組織該需求對應的產品和研發人員,說一下需求的主要測試點,並且把1...
軟體測試開發和軟體測試的區別
按照字面意思理解,大家或許會覺得測試開發是指既能開發產品又能測試產品的 技術王者 但其實並非如此,今天我們就來看看這兩者到底有什麼區別。什麼是軟體測試?顧名思義,就是在規定的條件下對乙個產品或程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。測試工程師主要工作內容是...