測試自動化
— 筆記整理自 北京理工大學 計算機學院
什麼是測試自動化
- 測試自動化的本質是:用程序A測試程序B
- 聯想與擴展
- 編寫程序B的叫程序員
- 爲了確保軟件質量,程序B必需測試
- 手工測試程序B的人,叫STE(Software test enginer)
- 編寫程序A進行自動測試的人叫SDET(Software Development Engineer in Test)
- 開發程序A要按照一般的軟件開發過程管理
- 藉助工具和框架,程序A可以更快,更好,更復雜
- …
測試自動化策略
- 提取適合自動化的測試
- 制訂表格提取適合自動化測試的項目
- 挑選最能獲得投資回報的測試項
- 最能縮短時間週期
- 最能減少風險
- 最能提高測試精度
- 評估每個自動化測試的時間消耗
- 根據測試目標確定自動化測試的優先順序
適合與不適合
- 一般自動化測試耗費的時間是手工測試的6-10倍
- 辛辛苦苦開發的自動化測試腳本,當然希望它能重複不斷的測試,達到利益最大化
- 適合
- 項目週期長,系統版本不斷 需求變更不頻繁
- 增量式開發、持續集成項目
- 重複性最大:例如數據的邊界值測試、迴歸測試等
- 不適合
- 美觀、聲音、易用性測試
自動化測試排序
- 評估自動化測試時間
- 自動測試與手工測試的時間消耗比
- 比例大的測試優先實行自動化
- 採用迭代的方式確定自動化測試的執行順序
- 迭代目標:投資回報率最高的測試優先
- 最容易開發腳本,最易理解測試實現自動化
- 逐次迭代
如何推行自動化
- 正確看待測試自動化
- 確定測試自動化涉衆
- 高層:可信度,財務支持,部門協同
- 測試主管:日程安排,資源分配等
- 測試人員:改變工作習慣,學習新技能,遵守新規範
- 開發人員:增強代碼的可測性
- 改進組織管理過程以適應 測試自動化
自動化測試誤區
- 盲目在項目中使用自動化測試工具
- 不合理的期望
- 不合適的實現
- 過於追求自動化覆蓋率和測試工具的利用率
- 很容易造成強迫開發人員將很多精力放在自動化測試上
- 卻忽略了軟件開發中的質量控制
- 測試自動化不能:
- 完全代替手工測試
- 立即降低測試投入,提高測試效率
- 保證100%的測試覆蓋率
- 補償劣質的測試過程
總結
- 要客觀認識自動化測試的優勢和不足
- 逐步提升團隊自動化測試能力,積累自動化測試經驗
- 逐步推進自動化測試進程爲軟件開發的持久化集成和持久化部署積累技術基礎和試驗基礎