溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

自動化測試部署之決勝于開始

發(fā)布時間:2020-07-27 09:47:54 來源:網(wǎng)絡(luò) 閱讀:713 作者:51CTO_李曉鵬 欄目:軟件技術(shù)

自動化測試優(yōu)與劣

為何要開展自動化測試?手工測試與自動化測試相比孰優(yōu)孰劣呢?本節(jié)針對該問題展開論述與講解。

測試工作中,往往需要面對很多問題。經(jīng)??梢月牭綔y試工程師的抱怨,其抱怨內(nèi)容大體如下:

v 重復(fù)、頻繁的工作太多;

v 測試工作任務(wù)重,測試周期短,工作壓力大;

v 創(chuàng)新性的工作太少,無法體現(xiàn)自己的能力與自己的人生價值;

v 測試結(jié)果有時需要精確到秒,手工測試來做太難了。

那如何將測試工程師從繁雜的測試工作中解脫出來?如何體現(xiàn)測試工程師的價值,發(fā)揮測試工程師的特長?又如何將測試結(jié)果精確到秒呢?

上述問題均可以通過自動化測試來解決,一方面提高了測試的工作效率,另一方面可以通過自動化測試體現(xiàn)測試工程師的能力,改變眾人對測試工作的觀點。

1.1 自動化測試定義

既然自動化測試可以彌補手工測試的一些不足,并能體現(xiàn)測試工程師的價值,那何為自動化測試?它又具備哪些特性?

自動化測試即借助于測試工具、依照測試規(guī)范,從局部或全部代替人工進行測試以及提高測試效率的過程。其具備如下主要特征:

v 自動測試過程是通過模擬人工操作,完成對被測試系統(tǒng)的輸入,并且對輸出進行檢驗的過程。

v 自動測試是由軟件代替人工操作,對被測試系統(tǒng)的GUI發(fā)出指令,模擬操作,完成自動測試過程。

相對于手工測試,自動化測試可概括為如下幾點:

v 優(yōu)化成本:降低勞動量,降低測試成本;

v 可靠:提高測試的全面性,提高測試精確度;

v 快速:加快測試速度;

v 規(guī)范化:提供規(guī)范化的測試流程;

v 可重用:提高測試的重用性;。

1.2自動化測試與手動測試的關(guān)系

自動化測試既然有如此大的優(yōu)勢,那手工測試是否可以退出測試舞臺呢?首先,,讓我們思考幾個問題。通過對如下問題的討論,來解答讀者的疑問。

1. 手工測試與自動化測試相比誰發(fā)現(xiàn)的缺陷多?

測試的主要目的是通過發(fā)現(xiàn)缺陷、解決缺陷來提高軟件質(zhì)量。通常,測試的執(zhí)行需要依賴測試用例。而測試工作中執(zhí)行測試用例的通用方法往往是手工運行測試用例。假想一下,如果某個測試用例被自動化,則首先應(yīng)對自動化后腳本的正確性進行測試。

據(jù)統(tǒng)計數(shù)據(jù)顯示:手動測試可以發(fā)現(xiàn)80%以上的缺陷,而自動測試只能發(fā)現(xiàn)20%左右的缺陷。這恰恰反映出自動化測試源于手工測試,且只是替代人工的重復(fù)性勞動。

2. 測試質(zhì)量孰高孰低?

自動化測試(工具)只能判斷實際結(jié)果與期望結(jié)果之間的差異。因此,在自動化測試過程中,測試任務(wù)就演變?yōu)轵炞C實際結(jié)果與期望結(jié)果的一致性。而測試的目的是提高測試的質(zhì)量。因此通過手動測試,測試質(zhì)量更高一些。

3. 自動化測試與軟件開發(fā)的關(guān)系?

自動化測試比手動測試更“脆弱”。軟件開發(fā)過程中,部分功能的改變,也有可能使自動化測試崩潰。而由于自動化測試比手工測試開銷大,并且需要不斷的維護,這也限制了自動化測試的開展。

4. 自動化測試工具是否存在局限性?

自動化測試工具畢竟是軟件,工具只可按預(yù)訂指令執(zhí)行。而自動化測試工具和測試者都可以按指令執(zhí)行一組測試,但人擁有思想,可以按不同的方式、不同的思維完成相同的任務(wù)。

例如:測試工程師運行測試用例(或測試場景),執(zhí)行測試執(zhí)行過程中,經(jīng)常需檢查實際輸出是否正確。此時,即使軟件實際輸出與期望輸出一致,軟件也有可能存在缺陷,測試者可以判斷,而測試工具則不可。測試者可以發(fā)揮其想象力和創(chuàng)造力改進測試用例(或測試場景),而測試工具只有呆板的執(zhí)行。

通過以上四個問題的討論,可以得出結(jié)論:手動測試不會退出歷史舞臺,其有存在的價值。同時,手動測試比測試工具的優(yōu)越性還有很多,手動測試可以靈活的處理意外事件。例如,網(wǎng)絡(luò)連接中斷時,手動測試就可以盡可能快地解決問題,然而這樣的意外事件卻可以讓自動測試的執(zhí)行終止。

以上,1.2和1.3小節(jié)分別闡述了自動化測試與手動測試存在的必要性,那么在測試工作中,何時引入自動化測試呢?自動化測試又有哪些優(yōu)勢呢?下面通過以下幾節(jié),逐一揭示。

1.3何時開展自動化測試

什么時候適合開展自動化測試呢?

測試工作中,被測軟件(或系統(tǒng))需要多個版本的迭代。根據(jù)公司(或項目)的不同,版本發(fā)布的時間也存在差異。

開展自動化測試之前,首先需依照測試用例,對被測功能模塊展開手動測試。當手動測試執(zhí)行通過后,使用自動化測試工具,將手動測試的操作過程錄制下來,并將正確的結(jié)果進行保存(被稱為期望結(jié)果)。由于自動化測試工具記錄的為關(guān)鍵×××模塊,被測軟件(系統(tǒng))的下一版本發(fā)布后,該模塊仍應(yīng)進行測試。

在軟件新版本的測試中,啟動自動化測試工具,運行前面錄制好的自動化測試腳本。對比實際運行后的結(jié)果與預(yù)期結(jié)果,如不一致,則確定為缺陷;如一致,則認為該功能模塊在新的版本中測試通過。

到此,可以得出一條結(jié)論:自動化測試,適合在被測軟件(或系統(tǒng))版本相對穩(wěn)定后開展。如軟件版本相對不太穩(wěn)定,則會造成使用自動化測試工具錄制的腳本在新的版本中回放失敗,這樣既浪費人力,又浪費時間。

1.4 自動化測試的優(yōu)勢

自動化測試的開展究竟能給測試工作帶來哪些改進,帶來哪些突破與欣喜呢?其實,自動化測試的特點即能夠很好的概括自動化測試的優(yōu)勢。其主要特點如下:

1. 可重復(fù)

不可否認,軟件測試有時確實是繁雜且重復(fù)性較高的工作。關(guān)鍵×××模塊要在不斷迭代的測試版本中重復(fù)的測試,而這些工作,隨著軟件測試版本的迭代將一直持續(xù)下去。當開展自動化測試后,即可通過自動化工具來替代這些重復(fù)性工作。大大縮減回歸測試的工作量與壓力,有效提高工作效率,縮短回歸測試的時間。

2. 可程序化

自動化測試深入開展后,將不再是簡簡單單的錄制與回放,自動化測試將優(yōu)化錄制的測試腳本,大大提高腳本的靈活性與交互性。自動化測試錄制后生成腳本,腳本中包含錄制過程中生成的操作與數(shù)據(jù)。測試工作中,需用不同的測試數(shù)據(jù)覆蓋不同的測試路徑來滿足不同的測試場景。

因此,數(shù)據(jù)維護將是一個繁雜的工作??梢詫?shù)據(jù)與錄制的自動化腳本剝離,用外部數(shù)據(jù)源管理測試數(shù)據(jù),而測試腳本只負責測試流程的組織。這樣,就可以大大提高自動化測試的靈活性與可持續(xù)性。

后續(xù)自動化測試工作中,還可開發(fā)UI界面,使用UI驅(qū)動自動化測試腳本。增加自動化測試交互性。

3. 可靠,提高測試精確度

自動化測試可以執(zhí)行一些手工測試難以達到或不可能實施的測試。例如,測試工作的執(zhí)行要精確到秒;模擬大量用戶同時對某一個功能點展開測試。這些工作都是手動測試無法實現(xiàn)或很難達到的。而開展自動化測試后,很容易實現(xiàn)這些測試需求。

4. 資源的有效利用

將繁雜重復(fù)的測試任務(wù)實現(xiàn)自動化,可以提高準確性和工作效率,提高測試工程師的工作積極性。將測試工程師從繁雜重復(fù)的工作中解脫出來,投入更多精力到其他的測試工作中(如測試質(zhì)量),這更有利于測試質(zhì)量的提高。在實際工作中,有些測試場景是僅適合于手動測試的,測試工程師可以專注于手動測試部分,提高手動測試的效率。

1.5 自動化測試實施的場景

1.4小節(jié)中提到,并非任何手動測試都適合用自動化測試來替代。究竟哪些場合適合開展自動化測試呢?

v 回歸測試;

v 更多更頻繁的測試 ;

v 手工測試無法實現(xiàn)的工作 ;

v 跨平臺產(chǎn)品的測試;

v 重復(fù)性較強的操作 。

哪些場合又不適合開展自動化測試呢?

v 軟件版本不穩(wěn)定;

v 涉及與物理設(shè)備交互的測試;

v 測試結(jié)果較容易通過人工判斷的測試。

1.6 實施自動化測試的成本

當前,很多企業(yè)或管理者期望借助軟件測試自動化作為催化劑,提高效率、提高質(zhì)量,同時,節(jié)省開支。甚至有些企業(yè)希望實施自動化測試后,就能夠給企業(yè)帶來效益。

在此,可以肯定的是自動化測試已經(jīng)在很多領(lǐng)域成功實施,也有很多成功案例給了企業(yè)希望,并且這些企業(yè)成功實施自動化測試后,確實節(jié)省了相當可觀的費用。而不幸的是,也有很多失敗的案例,即使在看到光鮮的成功案例背后,也有失望與失敗的過程。身邊也有很多企業(yè)不止一次嘗到了自動化測試失敗的滋味?;ň拶Y購買自動化軟件,被擱置,努力化為了泡影。失敗的結(jié)果不僅僅造成了人力、物力的損失,更是直接給公司帶來了經(jīng)濟上的損失。

測試自動化實施前期需要考慮很多因素,人力、物力、財力都是需要認真考慮與規(guī)劃的。自動化測試在整個測試周期中何時開展,哪些測試工作可以由自動化測試替代,這些都需要在開始部署自動化測試前,認真的思考。影響自動化測試效率的因素,不單單是大家看到可量化的測試工作,還有許多無形的因素影響著自動化測試,如測試組織的部署等。因此,在真正實施前一定要認真規(guī)劃和考慮自動化測試實施方案。

自動化測試的實施過程,完全不同于手動測試。自動化測試用例與手工測試用例也大不相同。自動化測試實施過程中,需要不斷的開發(fā)與維護腳本,因此對測試人員能力有很高的要求。

自動化測試實施前,需要認真分析與規(guī)劃測試方案,計算自動化測試的成本。自動化測試成本包括以下幾方面:

v 軟件成本:自動化軟件產(chǎn)品購買的費用;

v 培訓(xùn)成本:自動化測試工程師培訓(xùn)費用;

v 人力成本:自動化測試用例和測試腳本的編寫的人力成本。

只有合理的規(guī)劃自動化成本,站在全局角度考慮自動化的成本與收益,方可增加自動化方案成功實施的可能性。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI