天天看點

軟體測試七大原則

  1. 測試顯示缺陷的存在
    • 測試可以顯示缺陷的存在,但不能證明系統不存在缺陷。測試可以減少軟體中存在缺陷的可能性,但即使測試沒有發現任何缺陷,也不能證明軟體或系統是完全正确的,或者說是不存在缺陷的。
  2. 測試有效性(殺蟲劑悖論)
    • 論殺蟲劑用得多了,害蟲就有免疫力,殺蟲劑就發揮不了效力。在測試中,同樣的測試用例被一遍一遍反複使用時,發現缺陷的能力就會越來越差。這種現象的主要原因在于測試人員沒有及時更新測試用例,同時對測試用例及測試對象過于熟悉,形成思維定勢。為克服這種現象,測試用例需要經常的評審和修改,不斷增加新的不同的測試用例來測試軟體或系統的不同部分,保證測試用例永遠是最新的,即包含着最後一次程式代碼或說明文檔的更新資訊。
    • 如何解決?
      • 1.内部測試人員交叉測試,這是比較常用有效的方法。
      • 2.測試用例常更新,在測試過程中根據軟體的特性修改測試用例。
      • 3.多嘗試測試方法,盡量不要使用單一的測試方法去測試軟體,根據軟體内容采取不同的測試手段和測試方法。
  3. 測試的盡早介入
    • 根據統計表明,在軟體開發生命周期早期引入的錯誤占軟體過程中出現所有錯誤(包括最終的缺陷)數量的50%~60%。此外,IBM的一份研究結果表明,缺陷存在放大趨勢。如需求階段的一個錯誤可能會導緻N個設計錯誤,是以,越是測試後期,為修複缺陷所付出的代價就會越大。是以,軟體測試人員要盡早地且不斷地進行軟體測試,以提高軟體品質降低軟體開發成本。
  4. 缺陷叢集性(2/8原則)
    • 有人會聽說過成長理論:一個人是否成功,那要看他20%的業餘時間都在做什麼事情。
    • 軟體測試也同樣符合二八原則:
      • 1.從功能上來說,一個軟體如果有20 %為主要功能,那就需要花費軟體測試人員80%的時間。
      • 2.再從bug上分析,一個功能子產品發現的bug越高,那存在的未被發現的bug也越高,是以發現的bug與未發現的bug是成正比的。(“80%的錯誤集中在20%的程式子產品中”)
  5. 測試活動依賴于測試内容
    • 相信不少測試人員曾經在面試過程中都有遇到“做軟體測試什麼最重要”這樣的問題,應該大多數人都知道對測試人員來說需求是最重要的,這對于公司來說就是業務。根據業務的不同,軟體測試内部也分不同的行業。行業不同,測試活動的開展也不同:工具的選擇、測試流程都不同。
  6. 不存在缺陷的謬論
    • 沒有bug,對軟體測試人員來說奢望。
    • 那沒有bug的軟體就是好的軟體嗎?我們要明确,判斷一個軟體的好或者不好,主要依據是使用者需求,使用者體驗和是否實作了使用者所要的結果。
  7. 窮盡測試是不可能的
    • 窮盡測試是不可能的,當滿足一定的測試出口準則時測試就應當終止。考慮到所有可能輸入值和它們的組合,以及結合所有不同的測試前置條件,這是一個天文數字,我們沒有可能進行窮盡測試。