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

2.3 自動化測試方案

自動化測試是一項需要計劃和設計的活動,在開始測試腳本的開發之前,應該考慮清楚采用怎樣的自動化測試方案,采用怎樣的自動化測試腳本開發方法。

2.3.1 選擇自動化測試方案

采用什么樣的自動化測試方案,需要考慮以下幾個方面的因素:

(1)項目的影響:自動化測試能否對項目進度、覆蓋率、風險有積極的作用,或者讓開發更敏捷?

(2)復雜度:自動化是否容易實現,包括數據和其他環境的影響。

(3)時間:自動化測試的實現需要多少時間?

(4)早期需求和代碼的穩定性:需求或早期的代碼是否能證明是在一定范圍內變化的?

(5)維護工作量:代碼是否能長期保持相對穩定?功能特性是否會進化?

(6)覆蓋率:自動化測試能否覆蓋程序的關鍵特性和功能?

(7)資源:測試組是否擁有足夠的人力資源、硬件資源和數據資源來運行自動化測試。

(8)自動化測試的執行:負責執行自動化測試的小組是否擁有足夠的技能和時間去運行自動化測試?

以上方面的各因素對于選擇什么樣的自動化測試方案,達到怎樣的目標,投入多少測試資源,自動化測試項目的進度安排,自動化測試用例的設計等都會造成一定的影響。

2.3.2 自動化測試腳本的編寫方法

自動化測試項目也像普通的軟件開發項目一樣,有編碼階段,自動化測試的編碼階段主要是通過編寫測試腳本實現所設計的自動化測試用例。自動化功能測試腳本的開發方式主要有以下幾種:

· 線性的

· 結構化的

· 共享的

· 數據驅動的

· 關鍵字驅動的

2.3.3 線性腳本的編寫方法

線性腳本編寫方法是使用簡單的錄制回放的方法,測試工程師使用這種方法來自動化地測試系統的流程或某些系統測試用例。它可能包含某些多余的、有時候并不需要的函數腳本。線性腳本編寫方法的特點是:

· 一種非結構化的編程方式

· 測試用例由腳本定義

· 非常低的開發成本

· 測試人員所需要的編程方面的技巧幾乎可以忽略

· 不需要計劃、設計

· 測試數據在腳本中是硬編碼的

· 腳本會很脆弱,因此維護成本會很高

· 沒有公用的腳本,因此可能造成重復勞動

2.3.4 結構化腳本的編寫方法

結構化腳本編寫方法在腳本中使用結構控制。結構控制讓測試人員可以控制測試腳本,或測試用例的流程。在腳本中,典型的結構控制是使用“if-else”,“switch”,“for”,“while”等條件狀態語句來幫助實現判定、實現某些循環任務、調用其他覆蓋普遍功能的函數。結構化腳本編寫方法的特點是:

· 結構化的腳本編寫方法

· 測試用例在腳本中定義

· 編程的成本要比線性腳本編寫方法略為高一點

· 需要測試員的調整編碼技巧

· 需要某種程度上的計劃、設計

· 測試數據也是在腳本中被硬編碼

· 因為相對穩定一點,所以需要相對少的腳本維護,維護成本比線性腳本編寫方法的要相對低

· 除了編程知識外,還需要一些腳本語言的知識

2.3.5 共享腳本的編寫方法

共享腳本編寫方法是把代表應用程序行為的腳本在其他腳本之間共享。這意味著把被測應用程序的公共的、普遍的功能的測試腳本獨立出來,其他腳本對其進行調用。這使得某些腳本按照普遍功能劃分來標準化、組件化。這種腳本甚至也可以使用在被測系統之外的其他軟件應用系統。共享腳本編寫方法的特點是:

· 腳本是結構化的

· 測試用例在腳本中定義

· 開發成本相對于結構化腳本編寫方法來說,要降低一些,因為減少了很多復制的勞動

· 需要測試員的調整代碼的編程技巧

· 由于腳本需要模塊化,所以需要更多的計劃和設計

· 測試數據也是硬編碼的

· 腳本維護和維護成本要比線性腳本編寫方法的相對低

2.3.6 數據驅動腳本的編寫方法

數據驅動腳本編寫方法把數據從腳本中分離出去,存儲在外部的文件中。這樣,腳本就只是包含編程代碼了。這在測試運行時要改變數據的情況下是需要的。這樣,腳本在測試數據改變時也不需要修改代碼。有時候,測試的期待結果值也可以跟測試輸入數據一起存儲在數據文件中。數據驅動腳本編寫方法的特點如下:

· 腳本是以結構化的方式編程的。

· 測試用例由測試數據或腳本定義。

· 由于腳本參數化和編程成本,這種方法的開發成本跟共享腳本編寫方法比較要相對高。

· 需要測試員較高的代碼調整方面的編程技巧。

· 需要更多的計劃和設計。

· 數據獨立存儲在數據表或外部文件。

· 腳本維護成本較低。

· 推薦在需要測試正反數據的時候使用。

2.3.7 關鍵字驅動腳本的編寫方法

關鍵字驅動腳本編寫方法把檢查點和執行操作的控制都維護在外部數據文件。因此,測試數據和測試的操作序列控制都是在外部文件中設計好的,除了常規的腳本外,還需要額外的庫來翻譯數據。關鍵字驅動腳本編寫方法是數據驅動測試方法的擴展,其特點如下:

· 綜合了數據驅動腳本編寫方法、共享腳本編寫方法、結構化腳本編寫方法。

· 測試用例由數據定義。

· 開發成本高,因為需要更多的測試計劃和設計、開發方面的投入。

· 要求測試人員有很強的編程能力。

· 最初的計劃和設計、管理成本會比較高。

· 數據在外部文件存儲。

· 維護成本比較低。

· 需要額外的框架或庫,因此,測試員需要更多的編程技巧。

2.3.8 合理選擇自動化測試腳本開發方法

總結起來看,對于開發的成本來說,隨著腳本編寫方法從線性到關鍵字驅動的改變而不斷地增加;對于維護的成本來說,隨著腳本編寫方法從線性到關鍵字驅動的改變而在降低。對于編程技能要求來說,隨著腳本編寫方法從線性到關鍵字驅動的改變,對一個測試員的編程熟練程度的要求在增加。對于設計和管理的需要來說,隨著腳本編寫方法從線性到關鍵字驅動的改變,設計和管理自動化測試項目的要求在增加。

因此,應該合理地選擇自動化測試腳本開發方法,在適當的時候、適當的地方使用適當的腳本開發方法。

主站蜘蛛池模板: 海原县| 陇西县| 临夏县| 安福县| 巧家县| 馆陶县| 辽阳市| 浦东新区| 松滋市| 鄄城县| 吉安县| 习水县| 红原县| 酒泉市| 墨玉县| 桃源县| 永康市| 蛟河市| 平谷区| 泽普县| 惠水县| 治县。| 苗栗县| 儋州市| 承德市| 平武县| 普兰县| 余干县| 翁牛特旗| 大方县| 长白| 铜陵市| 会宁县| 巫山县| 吴江市| 普定县| 西林县| 高台县| 岗巴县| 和硕县| 阿拉尔市|