題主你好,先回答一下你的這個問題。自動化測試的目的其實很直白:

1、由於回歸測試的動作和用例是完全設計好的,測試期望的結果也是完全可以預料的,將回歸測試自動運行,可以極大提高測試效率,縮短回歸測試時間。

2、自動化的一個明顯的好處是可以在較少的時間內運行更多的測試。

3、可以執行一些手工測試困難或不可能進行的測試。

4、將繁瑣的任務自動化,可以提高準確性和測試人員的積極性,將測試技術人員解脫出來投入更多精力設計更好的測試用例。

5、測試具有一致性和可重複性。

6、測試的復用性。由於自動測試通常採用腳本技術,這樣就有可能只需要做少量的甚至不做修改,實現在不同的測試過程中使用相同的用例。

7、增加軟體信任度。由於測試是自動執行的,所以不存在執行過程中的疏忽和錯誤,完全取決於測試的設計質量。

但是最後,我想問題主,這個問題是面試的時候遇到的麼?因為我覺得這提問的方式挺沒有邏輯的!

原因在於:1.大多數時候同一個軟體不會多個版本同時主發一起運行。一定會有一個是主要的版本,而且一般測試真的沒有那麼多時間和功夫。

2.自動化測試的目的當然是為了提升測試效率。

正是因為手工測試的一些弊端,在測試用例量很大的時候,大量的版本回歸測試基本都會考慮自動化測試。


瀉藥~

金字塔模型

首先我們需要搞清楚, 自動化測試是什麼呢? 它就是以程序測試程序, 以腳本的運行代替手工測試.

它的重要特點就是不知疲倦, 可以復用. 如果設計了穩定了自動化測試程序, 可以大大減少人工的投入. 試想, 一個軟體的發布, 一定是面臨了幾十上百次的測試, 如果在版本穩定之後, 自動化開始介入, 後面的測試, 就都可以使用程序來代替人工, 你可以一邊端著咖啡一邊等測試報告了.

那麼, 什麼樣的功能適合做自動化呢? 高頻使用的功能, 核心重要的功能, 適合自動化. 編寫代碼的時間成本其實蠻高的, 如果一個自動化腳本, 它的應用次數小於6次, 那麼它其實是不適合自動化的. 因此, 從性價比的角度來看, 自動化測試的目標就是要在多個版本中進行測試, 來達到復用的目的.

以上, 願樓主自動化測試順利.


你問的稍微有些不清楚

如果是指,多個需要發布的版本。

例如 淘寶1.0版本 2.0版本,顯然都需要測試,因為是要發布後直接面對用戶的。2.0版本可能改變了很多功能,不能說1.0測過了,2.0就不需要測試了對吧?

如果是指,一個版本的多個階段。

例如alpha測試,beta測試等,那麼這是因為他們的測試力度和目標不一樣。

如果是指,一個內部未發布版本的多次迭代。

例如2020-03-17,2020-03-19用時間來定義的版本。這裡每一次迭代未必包含正式發布時的所有功能。代碼和功能類似於堆積木一樣,是一塊一塊堆積起來的。

此時對每次迭代的測試,等於該迭代的新增功能測試,以及對其他舊功能的回歸測試。此處的回歸測試非常重要,它可以保障增量迭代的質量穩定性,快速確認本次迭代沒有引入新bug,從而實現「小步快跑」。


最近在看《Google軟體測試之道》,其中有一個零成本測試流程的章節,講的是如何將測試成本壓縮到近乎為零的理想狀態,它提出了一些想法模型:

  • 成本幾乎為零
  • 瞬間可以得到測試結果
  • 極少或者無需人為幹預
  • 非常靈活

並且他們為了實現這個想法而採取了如下的測試流程開展測試:

通過GTA進行測試計劃,即基於風險、快速的、可以自動化更新的計劃

  1. 測試覆蓋度
  2. bug評審
  3. 探索性測試
  4. bug提交
  5. bug趨勢跟蹤及調試
  6. 部署新的版本並回歸第一步

在這個過程中,測試人員無需為了幾個可能發生回歸的特性變化,而去手工執行成百上千的回歸測試,而我們的自動化可以在7*24小時地運行,幾分鐘內就能完成一個測試週期,更早地發現回歸的問題。

OK,現在Google的自動化測試實踐是非常成功的,也是我們國內的企業需要學習的,對於題主問的目的是什麼,答案就是降低測試成本、提高測試效率。

推薦題主也看一下這本書,可以說是自動化測試的啟蒙之作:

google谷歌軟體開發測試教程 軟體測試開發工程師入門京東¥ 66.00去購買?


問題拆分一下,個人拆分為以下含義,有理解錯誤的地方,提問者可以更正:

1.軟體是一個

2.這個軟體有多個版本

3.對多個版本進行了自動化測試

4.自動化測試的目的是什麼

我們分開來談。

只需要針對一個軟體,這個應該沒有異議。

軟體的多個版本。這個其實說的不算太清楚,軟體的多個版本是線型的還是並行的,如果只是版本的升級,那麼測試最終的版本即可;如果是提供給不同客戶的多個不同版本,那麼需要測試的就是每一個版本了。

對多個版本進行自動化測試,如果是不同版本的自動化,是否需要對每個版本進行不同的自動化測試程序設計,也許是同一個自動化測試程序,有不同的參數或者給每一個版本進行一個特定的自動化測試程序。

自動化測試的目的,個人感覺來說自動化測試的目的就是減少人工成本和人為錯誤,避免重複性工作。

--------補充說明--------

沒有注意到標籤裡面有Android自動化測試標籤。

那麼可能版本是提供給不同安卓內核,還是為了適配不同的手機,需要提供不同的版本。

但是原理應該是一樣的。

其實這個問題分開提問能更好些,因為我不是很理解你的真正關注點在哪裡,所以只能大概的說一下自己猜測的看法。


推薦閱讀:
相關文章