1)測試顯示軟體存在缺陷
testing shows presence of defects
測試只能證明軟體中存在缺陷,但並不能證明軟體中不存在缺陷。軟體測試是為了降低存在缺陷的可能性,即便是沒有找到缺陷,也不能證明軟體是完美的。
2)窮盡測試是不可能的exhaustive testing is impossible
現在軟體的規模越來越大,複雜度越來越高,想做到完全性的測試是不可能的。在測試階段,測試人員可以根據風險和優先順序來進行集中和高強度的測試,從而保證軟體的質量。
3)測試盡早介入testing early
為什麼測試要盡早介入呢,簡單的說就是保證軟體質量,降低風險和成本。測試人員一般在需求階段就開始介入,使缺陷在需求或設計階段就被發現,缺陷發現越早,修復的成本就越小。
4)缺陷集群性(2/8原則)defect clustering
缺陷集群性表明小部分模組包含大部分的缺陷。軟體測試中存在pareto原則:80%的缺陷發現在20%的模組中。
乙個功能模組發現的缺陷越高,那存在的未被發現的缺陷也越高,故發現的缺陷與未發現的缺陷成正比。
5)殺蟲劑悖論pesticide paradox
反覆使用相同的殺蟲劑會導致害蟲對殺蟲劑產生免疫而無法殺死害蟲。軟體測試也一樣。如果一直使用相同的測試方法或手段,可能無法發現新的bug。
為了解決這個問題,測試用例應當定期修訂和評審,增加新的或不同的測試用例幫助發現更多的缺陷。
測試人員不能一直依賴於現有的測試技術,而要不斷的提公升測試方法以提高測試效率。
6)測試活動依賴於測試內容testing is context dependent
根據業務的不同,軟體測試內部也分為不同的行業,比如遊戲行業、電商行業、金融行業。不同的行業,測試活動的開展都有所不同,比如測試技術、測試工具的選擇,測試流程都不盡相同,所以軟體測試的活動開展依賴於所測試的內容。
7)沒有錯誤是好是謬論absence of error - fallacy
有可能99%沒有bug的軟體也是不能使用的。如果對錯誤的需求進行了徹底的測試,這種情況就發生了。軟體測試不僅是找出缺陷,同時也需要確認軟體是否滿足需求。如果開發出來的產品不滿足使用者的需求,即便找到和修復了缺陷也作用不大。
軟體測試的原則
1 測試用例中乙個必需部分是對預期輸出或者結果進行定義 2 程式設計師應當避免測試自己編寫的程式 3 編寫軟體的組織不應當測試自己編寫的軟體 4 應當徹底檢查每個測試的執行結果 5 測試用例的編寫不僅應當根據有效的和預料到的輸入情況,而且也應當根據無效和未預料到的輸入情況 6 檢查程式是否 未做其應...
軟體測試基礎 軟體測試的原則
所有的軟體測試都應該追溯到使用者需求。即應該重視需求文件,明確最初的需求才能盡可能減少後期的錯誤 盡早啟動測試工作,盡可能早地發現問題。問題越是遺留到後面修改的成本越大 pareto法則適用於軟體測試,又稱28效率法則,即早期應該能夠發現大量的問題 窮盡測試是不可能的,應當做適當的風險分析 殺蟲劑免...
軟體測試原則
1.測試證明軟體存在缺陷 無論執行什麼樣的測試操作都能證明當前軟體是有缺陷的 2.不能執行窮盡測試 有些功能是沒有辦法將所有的測試情況都邏輯出來,所以任何的測試操作都有結束的時間 3.缺陷存在群集現象 對於軟體功能說,核心功能佔20 非核心80 在實際工作中我們會集中測試20 的核心功能,所以這個部...