官术网_书友最值得收藏!

2.2 如何開展自動化測試

自動化測試應該被當成一個項目來開展,自動化測試工程師應該具備額外的素質和技能,并且在開展自動化測試的過程中,要注意合理地管理和計劃,從而確保自動化測試成功實施。

2.2.1 選取合適的測試項目來開展自動化測試

自動化測試只有在多次運行后,才能體現出自動化的優勢,只有不斷地運行自動測試,才能有效預防缺陷、減輕測試人員手工的回歸測試的工作量。如果一個項目是短期的,并且是一次性的項目,則不適合開展自動化測試,因為這種項目得不到自動化測試的應有效果和價值體現。

另外,不宜在一個進度非常緊迫的項目中開展自動化測試。有些項目經理期待在一個進度嚴重拖延的項目中引入自動化測試來解決測試的效率問題,結果適得其反。這是因為,自動化測試需要測試人員投入測試腳本的開發,同時,需要開發人員的配合,提供更好的可測試的程序,有可能需要對被測試的軟件進行改造,以適應自動化測試的基本要求,如果在一個已經處于進度Delay狀態的項目中開展自動化測試,則很可能帶來反效果。

2.2.2 確定自動化測試介入的時機

過早的自動化會帶來維護成本的增加,因為早期的程序界面一般不夠穩定,處于頻繁更改的狀態,這時候進行自動化測試往往得不償失,疲于應付“動蕩”的界面。

那么,什么時候開始自動化測試項目呢?自動化測試不應該在界面尚未穩定的時候開始,但是,并不意味著不需要計劃和準備工作。在界面雛形時期,可以基于界面原型提供的控件來嘗試自動化測試工具的適用性,因為有些控件是自動化測試工具不能識別和測試的。這時候,就要考慮工具的選擇問題。

在開發人員著手開發一些核心的代碼時,可能會同時開發出一些核心可重用的控件,而且是那種自定義的個性化控件,那么就需要在這個階段取到這些控件,并且嘗試使用自動化工具來測試這些控件,如果發現有不適用的地方,則要考慮讓開發人員重新設計控件,或者提供更多的測試接口。

2.2.3 自動化測試工程師的知識體系

自動化測試工程師應該具備一定的自動化測試基礎,包括自動化測試工具的基礎、自動化測試腳本的開發基礎知識等;還需要了解各種測試腳本的編寫和設計方法,知道在什么時候選取怎樣的測試腳本開發方式,知道如何維護測試腳本;需要具備一定的編程技巧,熟悉某些測試腳本語言的基本語法和使用方法。

另外,自動化測試工程師與手工測試的工程師一樣,需要具備設計測試用例的基本方法和能力,具備軟件涉及的基本業務的理解能力。而且,應該有把測試用例轉換成自動化測試用例的能力。

技巧

熟悉和了解各種編程語言、編程工具,以及各種標準控件、第三方控件,則會對自動化測試腳本的編寫大有裨益。

作為一名專業的自動化測試工程師,不應該僅僅局限于對工具的掌握和使用,應該建立測試的自動化知識體系(ABOK,Automation Body of Knowledge),包括:

(1)自動化在軟件測試生命周期( STLC )中的角色。例如,軟件測試自動化與軟件測試之間的區別、測試工具選購與整合、自動化的益處與誤解、自動化的 ROI 計算等方面的知識。

(2)測試自動化的類型和接口類型。例如,自動化除了功能測試自動化外,還可以包括單元測試自動化、回歸測試自動化、性能測試自動化等。需要知道,除了GUI類型的自動化測試外,還有命令行接口、應用程序編程接口(API)的自動化測試。

(3)自動化測試工具。了解各種類型的自動化測試工具,知道如何進行測試工具選型。

(4)測試自動化框架。包括自動化的范圍、角色和職責的定義,了解框架的發展過程。

(5)自動化框架設計。掌握自動化測試框架設計思想和開發流程。

(6)自動化測試腳本思想。包括測試用例的選擇、自動化測試的設計和開發、自動化測試的執行、分析和報告。

(7)自動化測試腳本質量優化。考慮自動化測試腳本的可維護性、可移植性、靈活性、健壯性、可擴展性、可靠性、可用性、效率等方面的問題。

(8)編程思想。掌握包括變量、控制流、模塊化、面向對象等方面的編程思想。

(9)自動化對象。包括識別應用程序對象、對象映射、對象模型、動態的對象行為等方面的知識。

(10)調試技巧。了解常見的測試腳本編程錯誤類型,懂得相關的調試技巧的使用。

(11)錯誤處理。了解錯誤處理的常用手段,掌握錯誤處理腳本的開發過程(診斷錯誤->定義錯誤捕獲機制->建立出錯日志->創建錯誤處理函數)。

(12)自動化測試報告。一般包括高層(測試集/測試腳本)報告和底層(驗證點)報告。

2.2.4 考慮自動化測試的成本

IBM 的網站上提供了一個自動化 ROI 計算器(如圖2.1所示):http://www-01.ibm.com/software/rational/offerings/testing/roi/tool/ROI_Rational.html

圖2.1 自動化ROI計算器

這個ROI計算器可以根據輸入的測試項目基本情況計算引入自動化測試后能否為項目節省成本,節省多少成本。

成功開展自動化測試必須考慮自動化測試的成本問題。成本包括測試人員、測試設備、測試工具等。

(1)應該能抽出專職的測試人員進行自動化測試腳本的開發,并且抽調的測試人員不會對已有的手工測試人員造成影響,需要保證自動化測試的開展不會影響到手工測試的正常進行。

(2)自動化測試可能需要額外的測試設備,例如,測試執行的機器、文件服務器、數據庫等。應該能為自動化測試準備專門的測試設備。

(3)有引入測試工具或開發測試工具的成本預算。缺乏工具的自動化測試是不可能實現的。在上馬一個項目的自動化測試之前應該進行測試工具的引入準備、測試工具的培訓工作的開展等。

(4)某些項目選用了很多第三方控件或自定義的控件,而這些控件的可測試性非常差,那么對這個項目進行自動化測試的成本會非常高,不適宜進行自動化測試。

2.2.5 制訂自動化測試項目計劃

規范化的自動化測試項目都會遵循一定的計劃來開展,下面給出一份測試自動化項目計劃模板供讀者參考:

1 工作階段分解

1.1 項目啟動階段

1.1.1 評估過去的項目

1.1.2 目標范圍

1.1.3 效果衡量

1.1.4 團隊成員構成

1.1.5 招聘

1.2 早期項目支持階段

1.2.1 目標和目的

1.2.2 約束調研

1.2.3 可測試性評審

1.2.4 需求評審

1.2.5 測試流程分析

1.2.6 組織介入

1.3 測試自動化計劃階段

1.3.1 測試需求

1.3.2 自動化測試策略

1.3.3 可交付的成果

1.3.4 測試程序參數

1.3.5 培訓計劃

1.3.6 技術環境

1.3.7 自動化工具兼容性檢查

1.3.8 風險評估

1.3.9 測試計劃歸檔

1.3.10 自動化測試數據

1.3.11 自動化測試環境

1.3.12 角色和責任

1.3.13 自動化測試系統管理

1.4 測試自動化設計階段

1.4.1 原型自動化測試環境

1.4.2 自動化技術和工具

1.4.3 自動化設計標準

1.4.4 自動化腳本編碼計劃

1.4.5 測試自動化庫

1.5 自動化開發階段

1.5.1 自動化腳本編碼任務分配

1.5.2 腳本同行評審

1.5.3 測試腳本和工具的改進

1.5.4 測似腳本配置管理

1.6 自動化集成階段

1.6.1 環境建立

1.6.2 測試階段執行

1.6.3 自動化測試報告

1.6.4 問題處理

1.7 自動化過程改進階段

1.7.1 測試工具/腳本評估

1.7.2 回顧和評審

1.7.3 維護測試過程庫

1.7.4 自動化內部知識網

1.7.5 持續培訓

2 時間表

2.1 關鍵里程碑

2.2 迭代周期目標的實現

2.3 項目進度表

3 項目資源

3.1 組隊計劃

3.2 資源需求計劃

3.3 培訓計劃

3.4 預算

4 項目監控

4.1 自動化效果評估

4.2 進度控制計劃

4.3 預算控制計劃

4.4 報告計劃

4.5 度量計劃

5 配套流程

5.1 配置管理計劃

5.2 缺陷跟蹤和問題處理

5.3 自動化框架評估

5.4 框架歸檔計劃

5.5 過程改進

主站蜘蛛池模板: 和平县| 平阴县| 西城区| 绵竹市| 巴林右旗| 双牌县| 灵山县| 汕头市| 永平县| 灵丘县| 长春市| 开封县| 乐山市| 镇远县| 呈贡县| 丹巴县| 石泉县| 晋宁县| 加查县| 溆浦县| 崇义县| 吉安县| 邢台县| 凤冈县| 八宿县| 怀柔区| 浦县| 万年县| 宁蒗| 宁明县| 黑河市| 永靖县| 泰来县| 新竹市| 武冈市| 弥勒县| 库车县| 德化县| 揭西县| 宣化县| 屏山县|