1. 程式人生 > >自動化測試在敏捷中應用

自動化測試在敏捷中應用

在現在網際網路發展浪潮中,敏捷被應用於越來越多專案中,隨之而來的“敏捷測試”與“自動化測試”也成為一個大家經常探討的話題,那麼在敏捷測試中,如何應用自動化測試?又如何去推行最有效的自動化測試呢?本文在此跟大家探討一下自動化測試在敏捷中的應用。有不同意見歡迎私信。
在這裡插入圖片描述
首先,如何在敏捷應用自動化測試–其實最重要的是兩個問題,要不要實行自動化,怎麼樣實行自動化。

在談及這兩個敏捷中的自動化測試問題時,都會不可避免涉及到敏捷中的測試四象限問題。我們可以根據敏捷測試四象限,來看測試應用場景。

在這裡插入圖片描述
在2009年出版的 Crispin & Gregory 的著作Agile Testing: A Practical Guide for Testers and Agile Teams 中第一次提出“敏捷測試四象限”,在敏捷測試四象限中,根據自動化和手工測試應用場景歸納為如下圖:它是一個自動化測試的整體策略的描述,這個圖可以幫助我們很好理解:

  1. 哪些測試更適合自動化測試?
  2. 哪些測試更適合手工測試?
  3. 哪些測試需要手工測試和自動化測試結合起來?
  4. 測試工具在哪些測試中發揮主導作用?

在確定可應用場景後,是否需要自動化測試,我們則可以通過計算ROI,工具使用對比(例如: API功能測試:Fitness Web服務測試:soapUI,GUI測試工具:錄製回話Watair,selenium,效能測試工具LR,Jemter等等)等各方面手段來評估是否需要自動化。

同時提及一點,而在自動化測試中,根據投入產出比,從單元測試依次增加。在GUI測試中需要投入最多而產出可能最小。
在這裡插入圖片描述
在確定自動化測試策略以後,談及如何在敏捷中實行有效的自動化測試,我們先來看敏捷專案中對測試的要求和傳統專案中對測試要求的部分區別:

在這裡插入圖片描述
敏捷測試VS傳統專案對比中,我們可以看到,對於敏捷測試,無論是手工測試,亦或是自動化測試,快速響應,恰當的適合的計劃,貫穿整個迭代是對敏捷測試的一個基本要求。

當專案實行自動化測試時,實施自動化策略時,我們完全可以根據敏捷模式來遞交自動化測試,以期望達到快速響應,適當計劃的要求。

首先我們來看敏捷迭代計劃:
在這裡插入圖片描述
在敏捷流程中,當經過前期的準備以後,進入迭代。主要為需求,計劃,設計開發,執行,釋出為主流程。在這個迭代流程中,如何有效完成自動化呢?

1、需求分析,計劃。需求通常在一個迭代週期的開始,此時QA需要頻繁與跟PO溝通當前需求情況。比如:當確定本次迭代自動化測試範圍後,分析需求或者瞭解測試用例。同時還可以為自動化做技術準備,例如在某個迭代的自動化測試當中會需要將頁面Table值大批量的和CSV檔案值做對比。那麼作為自動化測試人員就應該在專案初期的時候就開始研究相關技術,準備相應測試技術。如有必要,可以適當準備一個的Demo(同時可以將Demo的自動化測試結果分發給相應隊員做review以便於及時得到反饋為後續做準備)。

2、設計開發,開發自動化測試指令碼。及時溝通需求細化需求,完成相應的程式碼。在這個階段,有些專案組特別是UI自動化測試專案組,可以通過落後於當前開發迭代功能來實行自動化。這樣的情況下UI自動化可以完全不受阻礙的開發。如果實行TDD模式,可以用mock形式來實行自動化。當然也可以幫助開發寫單元測試用例,並且實施自動化測試(主要是單元測試)。這個完成形式取決於專案。在完成過程中,如果專案剛開始,那麼初期的框架搭建也是需要提前準備。

3、測試執行,當完成這個自動化測試迭代後,將測試應用於真實專案中。搭建真實測試環境,搭建自動化測試環境,執行自動化測試指令碼。根據結果更新程式碼。這個時候很有可能出現幾個情況,1.開發時候程式碼放到真實環境時會大面積失敗。需要測試人員分析相關問題。2.優化改進程式碼,做程式碼評審。當自動化測試用例不間斷放到真實環境中跑的時候,除了真正的defect以及程式碼問題,還會有一些效能,環境設定衝突問題,都需要我們一一解決。也會遺留一些不能完成的測試用例等等,需要跟手工測試人員或者PO溝通解決。

4、釋出,將已完成的用例放入迴歸庫做長期測試。回顧程式碼,檢視是否有部分功能可以被整個專案重用等。

基於以上的迭代,可以看到自動化測試從初期既可以介入:
在這裡插入圖片描述
以上算是一個迭代週期裡面的一些具體的工作,巨集觀上說還需要做點什麼事情呢?

敏捷中很突出的特點,就是產品快速交付,為了這個目的,QA團隊就是要在保持測試質量得到保證的前提下,儘可能地縮減測試所需要的時間,使得產品按時按質交付。在產品開發的前期,自動化測試人員應該儘可能地想辦法搭建一個自動化迴歸測試的框架,這個框架的特點有:1. 能快速完成迴歸測試; 2.容易上手;3.能夠隨著產品的演化而不斷改進(可拓展);4.維護的成本要低(在一個迭代週期裡面如果自動化測試需求有變化,不應該需要超過迭代的四分之一的時間才能改好,當然大的變化除外)

綜上所述,在敏捷開發裡面的自動化測試是有2條路線,並且這2條路是並行的,缺一不可。

1、至少一個自動化迴歸測試框架,保證迭代前能夠對產品進行覆蓋較為全面的迴歸測試

2、工作中需要不斷地完善自動化測試工具,提高自己的生產率**

自動化測試其實是測試一個手段,其目的很簡單,就是要在保持產品質量處於一個較高水平的情況下,幫助公司儘可能地快速交付新版本的產品。

- End -

有興趣一起學習交流的小夥伴也可以加群:903217991,經常會有技術大牛分享知識心得,期待你的到來
在這裡插入圖片描述