軟件缺陷的定義:
- 未實現說明書要求的功能
- 出現了說明書指明不應出現的錯誤
- 實現了說明書未提到的功能
- 未實現說明書沒有明確提出但應該實現的目標
- 軟件難以理解,不易使用,運行緩慢 或者從測試員客戶會認為不好的。
軟件缺陷的原因:
- 說明書
- 設計
- 代碼
- 其他
軟件測試的目標:
盡可能早的找到軟件缺陷,并確保其得以修復。
軟件測試工程師的基本素質:
- 探索
- 故障排除
- 不放過蛛絲馬跡
- 創造性
- 追求完美
- 判斷準確
- 注重策略和外交
- 善于說服
軟件開發的過程:
- 客戶需求->產品說明書
- 進度表
- 軟件設計文檔
- 測試文檔
- 測試計劃
- 測試用例
- 缺陷報告 bug report
- 測試工具和自動化
- 判據,統計和總結
軟件開發模型:
- 大爆炸:簡單粗暴
- 邊寫邊改
- 瀑布模型:周期長,測試介入晚
- 螺旋模型(敏捷開發):分解需求,逐步實現和測試,測試介入較早。
測試的原則:?
- 完全測試是不可能的
- 輸入量太大
- 輸出結果太多
- 執行路徑太多
- 說明書是主觀的,從旁觀者來看是缺陷。
- 軟件測試是有風險的。
? ? ? ? 因為不可能遍歷所有情況,只能選擇冒險。
關鍵思想:
把數量巨大的可能測試項減少到可以控制的范圍,并針對風險做出明智的選擇,那些重要,那些不重要。
- 測試無法顯示潛伏的軟件缺陷
- 找到的軟件缺陷越多,說明軟件缺陷越多。
- 并非所有的軟件缺陷都要修復
- 沒有足夠的時間
- 不算真正的軟件缺陷
- 修復的風險較大
- 不值得修復
軟件測試的術語
精確precise和準確accurate
準確accurate:實際1米,測出來也是1米,就是準確。一般用絕對值來表達
精確precise:實際1米,第一次測出來是1.1米,第二次1.2米,每次有偏差。一般用標準差來表達。
確認verification和驗證validation
確認verification是保證軟件符合產品說明書的過程
驗證validation是保證軟件滿足用戶要求的過程。
from 《軟件測試》 by Ron Patton