web自動化測試理論
用工具代替/輔助人工完成軟體測試活動的過程,不能為了自動化而自動化
自動化測試特點
- 可以對程式的新版本自動執行迴歸測試
- 可以執行一些手工測試困難或不可能進行的測試
- 可以更好地利用資源
- 測試具有一致性和可重複性
自動化一定要有框架
自動化測試優勢
- 節省時間,提高測試覆蓋率和測試精度
- 減少手工測試人為產生的錯誤
- 提供規範化的過程和一致性
自動化測試侷限性
- 手工測試比自動測試發現的故障要多,自動化只能發現約15%的bug
- 自動化測試不能提高測試的有效性,只能用於提高測試的效率
- 自動化測試不具有想象力,沒人聰明
- 自動化測試不能取代手工測試
誤區:
- 期望自動化測試發現大量新故障
- 安全性錯覺
- 自動化測試的維護開銷
不適合於自動化測試情景
- 測試頻度很低
- 軟體不穩定
- 結果很容易通過人驗證的測試(人工實施較為高效)
- 涉及物理硬體裝置互動的測試
自動化測試位置
自動化工具分類
測試工具的型別 |
簡述 |
程式碼分析器 |
監督程式程式碼複雜度,是否遵循標準等等 |
覆蓋分析器 |
校檢哪一部分的程式碼已經被測試,面向程式碼語句覆蓋、條件覆蓋、路徑覆蓋等等 |
記憶體分析器 |
邊界檢查和漏洞檢測等等 findbugs sonar靜態分析工具 |
效能測試工具 |
測試在不同的負載級別之下客戶/伺服器和WEB應用程式等等 |
BS測試工具 |
檢驗連結是否有效,客戶和伺服器端、 WEB站點的互動是否正常工作 |
其他工具 |
測試例項管理,檔案管理, BUG報告,配置管理工具 |
自動化測試的內容
- 測試資料自動生成
- 自動化輸入
- 測試結果自動比較
- 測試自動執行
- 自動化測試用例的管理
- 線上監控
資料庫批量插入資料
自動化指令碼技術
• 線性教本
– 錄製、回放 – 輔助使用,不靠譜
• 結構化指令碼
– 含有控制指令碼執行的指令,支援順序、選擇和迴圈
• 共享指令碼
– 可以被多個測試用例使用,指令碼之間可以相互呼叫
• 資料驅動指令碼(程式不變,資料變)
– 資料驅動指令碼是將測試輸入儲存在獨立的檔案中,指令碼中只存放控制資訊
• 關鍵字驅動指令碼(通過資料檔案中的文字,對映執行程式中的函式)
– 關鍵詞驅動指令碼實際上是較複雜的資料驅動技術的邏輯擴充套件
自動化測試的型別
• 單元測試-執行速度最快
• 介面測試-執行速度較快
• Ui測試-執行速度最慢
自動化測試需要的條件
• 軟體需求變動不頻繁
• 專案週期足夠長
• 自動化測試指令碼可重複使用
• 有程式設計和設計能力的測試開發人員
• 研發團隊的支援
在自動化測試過程中總結自動化實踐的投入產出比
自動化測試的術語
資料驅動
基於資料驅動的自動化測試框架是指測試驅動引擎從資料來源獲取測試資料,然後將將資料以引數的形式傳遞給測試指令碼,最後通過執行測試指令碼,驗證測試結果,並將測試結果輸出。一般資料來源與測試結果儲存在、 Excel檔案、Csv檔案等。
資料驅動主要優點是
– 測試指令碼與測試資料的分離,
– 當應用功能變更時,只需要修改該功能部分的指令碼;
– 執行測試用例的人員不需要了解測試指令碼的實現,只關注測試資料表與測試報告表。
測試框架
❖ 整個或部分系統的可重用設計,表現為一組抽象構件以及構件例項間互動的方法;
❖ 可被開發者定製的應用骨架。
關鍵字驅動
關鍵字驅動測試是資料驅動測試的一種改進型別,它將測試邏輯按照關鍵字進行分解,形成資料檔案,關鍵字對應封裝的業務邏輯
主要關鍵字包括三類:被操作物件(Item) 、操作(Operation)和值(value) ,用面向物件形式可將其表現為 Item.Operation(Value)
混合模式:動作跟動作操作的資料跟均程式分離
自動化測試流程圖
WEB 自動化測試的基本原理