自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

自動化測試能否取代手工測試

開發(fā) 測試 自動化
手工測試和自動化測試都是軟件質(zhì)量保障的重要途徑,也是很多測試人員爭相討論的兩種測試方法。如何正確的看待這兩種測試方式,更好的使兩者相互結(jié)合是我們現(xiàn)在所要討論的話題。本文總結(jié)了自動化測試和手工測試的優(yōu)點(diǎn)和缺點(diǎn),列舉了各自的適用范圍,并分析了自動化測試無法最終取代手工測試的原因。

手工測試和自動化測試都是軟件質(zhì)量保障的重要途徑,也是很多測試人員爭相討論的兩種測試方法。如何正確的看待這兩種測試方式,更好的使兩者相互結(jié)合是我們現(xiàn)在所要討論的話題。本文總結(jié)了自動化測試和手工測試的優(yōu)點(diǎn)和缺點(diǎn),列舉了各自的適用范圍,并分析了自動化測試無法最終取代手工測試的原因。

1.    自動化測試是靈丹妙藥嗎?

自動化測試有眾多的優(yōu)點(diǎn),例如:快速、全面、可靠、可編程、可重復(fù)使用、可重用。自動化測試產(chǎn)品和解決方案的潛在客戶經(jīng)常會以下面的思考方式設(shè)想自動化測試:

快速:顯然測試腳本執(zhí)行比人工執(zhí)行要快得多,而且和手工測試相比,計算機(jī)可以不知疲憊的執(zhí)行測試,一天24小時不休息的工作

全面:所有的測試都能夠?qū)崿F(xiàn)自動化,你可以構(gòu)建一個覆蓋應(yīng)用程序每一個功能的測試包

可靠:每次測試腳本在運(yùn)行時執(zhí)行相同的操作,因此減少了人為的錯誤,排除了人測試的不確定性,使測試結(jié)果更加客觀。

可編程:你可以編寫復(fù)雜的測試腳本來找出應(yīng)用程序中隱藏的信息

可重復(fù):對于重復(fù)執(zhí)行相同操作,計算機(jī)軟件可以輕松完成

可重用:你可以重復(fù)使用測試腳本來測試應(yīng)用程序的不同版本,即使用戶界面發(fā)生了變更

 如此看來,完全可以用自動化測試取代手工測試嗎?答案是否定的。無庸質(zhì)疑,自動化測試具有上述優(yōu)點(diǎn),但這些優(yōu)點(diǎn)是在一定的約束條件下存在的。盡管人們對自動化測試有美好的愿望,但自動化測試并非我們夢寐以求的神兵利器。

Frederick P. Brooks, Jr. 曾在1986年寫過一篇題為《沒有銀彈:軟件工程的根本和次要問題》的文章(No Silver Bullet – Essence and Accidents of Software Engineering)。這篇文章列舉了人們對于軟件工程技術(shù)發(fā)展的一些期望,并與現(xiàn)實(shí)進(jìn)行了對比。他的論點(diǎn)歸納如下:沒有一種單純的技術(shù)或管理上的進(jìn)步,能夠獨(dú)立地承諾在10年內(nèi)大幅度地提高軟件的生產(chǎn)率、可靠性和簡潔性。Brooks鼓勵我們將技術(shù)和方法視作一種演進(jìn)手段,而并非革命。

我完全同意Brooks的觀點(diǎn),這有助于我們對理解自動化測試的真正含意,,自動化測試或者說自動化測試策略及工具的實(shí)現(xiàn),毫無疑問具有強(qiáng)大功能、高效等使我們獲益匪淺,但只是測試人員工具箱里的一件利器,它無法取代測試人員的地位。

自動測試生來就是用腳本寫成的,而不是探索性的,它需要我們設(shè)定上下文后才能在一定的范圍內(nèi)為特定的目的而執(zhí)行。即便我們使用的是一個引入了所有可能情況的自動測試組合,我們的測試也只能在它們覆蓋的地方游刃有余,但對于其它沒有涵蓋到的地方,它們就鞭長莫及了。如果出現(xiàn)了哪些沒有預(yù)料到的情況,那么它們很可能就失效了,而且即使它們能夠從這些情況中恢復(fù)過來,它們還是無法停止正在處理的任務(wù)并檢查沒有預(yù)料到的情況。很顯而易見將所有測試都自動化是不切實(shí)際的。

2.    手工測試會被自動化測試替代嗎?

也許有人認(rèn)為“手工測試沒有技術(shù)含量,總有一天會被自動化測試所替代”,實(shí)際上這種認(rèn)識是不全面的。測試是依靠知識和智慧作為生產(chǎn)資料的一項(xiàng)工作,這要求測試人員具備較強(qiáng)的業(yè)務(wù)知識、較高的計算機(jī)操作能力和深厚的測試?yán)碚摶A(chǔ)。通過設(shè)計科學(xué)合理的測試用例,正確的執(zhí)行用例、準(zhǔn)確的分析測試結(jié)果,才可能得到客觀的測試結(jié)論。

手工測試的***特點(diǎn)是具有探索性,可以依據(jù)測試工作的進(jìn)展適時調(diào)整測試策略,尤其是在需要進(jìn)行人為主觀判斷和主觀感覺來對被測試對象做出評價時,則手工測試將是最理想的選擇,例如:在進(jìn)行用戶體驗(yàn)測試時,測試者基于用戶的使用習(xí)慣和思維模式出發(fā),結(jié)合實(shí)際的業(yè)務(wù)場景,對軟件產(chǎn)品的外觀、操作方式等方面進(jìn)行檢查。從而體驗(yàn)軟件產(chǎn)品的使用者對產(chǎn)品的印象、感覺,測試既有的軟件使用習(xí)慣和業(yè)務(wù)思維模型的綜合反映。提出軟件產(chǎn)品在方便、易用、符合思維習(xí)慣方面的修改意見。

手工測試有其不可替代的地方,因?yàn)槿司哂泻軓?qiáng)的判斷能力,而工具沒有。手工測試不可替代的地方至少包括以下幾點(diǎn)。

測試用例的設(shè)計:測試人員的經(jīng)驗(yàn)和對錯誤的判斷能力是工具不可替代的。

界面和用戶體驗(yàn)測試:人類的審美觀和心理體驗(yàn)是工具不可模擬的。

正確性的檢查:人們對是非的判斷、邏輯推理能力是工具不具備的。

3.    什么時候該用自動化測試?

對于一些基本的、邏輯性不強(qiáng)的操作,可以使用自動化測試工具。應(yīng)該說,現(xiàn)在性能測試、壓力測試等方面,自動化測試有其不可替代的優(yōu)勢。它可以用簡單的腳本,實(shí)現(xiàn)大量的重復(fù)的操作。從而通過對測試結(jié)果的分析,得出結(jié)論,這樣不僅節(jié)省了大量的人力和物力,而且使測試的結(jié)果更準(zhǔn)確。對于一些邏輯性很強(qiáng)的操作,如果自動化測試不是很健全的話,不建議使用。因?yàn)檫@需要比較復(fù)雜的腳本語言,不可避免的增加了由于測試腳本的缺陷所造成測試結(jié)果錯誤的誤差。這時就需要手動測試了。

采用手工回歸測試,不但代價昂貴,而且容易出錯。自動化測試可以減少但不能消除這種工作的工作量。測試者可以有更多的時間去從事更有意義的測試,例如在應(yīng)用程序在復(fù)雜的場景下的不同處理等,盡管測試就是要花費(fèi)更長的時間找到錯誤,但比不意味著因此而要付出更高的代價。所以選擇正確的測試方法是尤為重要的。

總結(jié)起來自動化測試適用的情況如下:

回歸測試。這可能是自動化測試最主要的任務(wù),特別是在程序修改比較頻繁時,效果是非常明顯的。由于回歸測試的動作和用例是完全設(shè)計好的,測試期望的結(jié)果也是完全可以預(yù)料的,將回歸測試自動運(yùn)行,可以極大提高測試效率,縮短回歸測試時間。

可以運(yùn)行更多更繁瑣的測試。自動化的一個明顯的好處是可以在較少的時間內(nèi)運(yùn)行更多的測試。

可以執(zhí)行一些手工測試?yán)щy或不可能進(jìn)行的測試。比如,對于大量用戶的測試,不可能同時讓足夠多的測試人員同時進(jìn)行測試,但是卻可以通過自動化測試模擬同時有許多用戶,從而達(dá)到測試的目的。

更好地利用資源。將繁瑣的任務(wù)自動化,可以提高準(zhǔn)確性和測試人員的積極性,將測試技術(shù)人員解脫出來投入更多精力設(shè)計更好的測試用例。有些測試不適合于自動測試,僅適合于手工測試,將可自動測試的測試自動化后,可以讓測試人員專注于手工測試部分,提高手工測試的效率。

測試具有一致性和可重復(fù)性。由于測試是自動執(zhí)行的,每次測試的結(jié)果和執(zhí)行的內(nèi)容的一致性是可以得到保障的,從而達(dá)到測試的可重復(fù)的效果。

測試的復(fù)用性。由于自動測試通常采用腳本技術(shù),這樣就有可能只需要做少量的甚至不做修改,實(shí)現(xiàn)在不同的測試過程中使用相同的用例。

增加軟件信任度。由于測試是自動執(zhí)行的,所以不存在執(zhí)行過程中的疏忽和錯誤,完全取決于測試的設(shè)計質(zhì)量。一旦軟件通過了強(qiáng)有力的自動測試后,軟件的信任度自然會增加。

4.    什么時候該用手工測試?

手工測試更適合測試業(yè)務(wù)邏輯,因?yàn)闇y試人員學(xué)習(xí)業(yè)務(wù)后執(zhí)行測試要比交給自動化容易得多。手工測試者最適合成為領(lǐng)域?qū)<遥罁?jù)他們自身對業(yè)務(wù)的理解去評價復(fù)雜的業(yè)務(wù)邏輯實(shí)現(xiàn)的正誤,通過觀察分析細(xì)微的邏輯問題找到問題的癥結(jié)。

另外,從經(jīng)濟(jì)性的解度考慮,執(zhí)行自動化測試需要事先花費(fèi)大量的時間和精力來初始化腳本,完善自動化測試的上下文。這對于某些情況是不適合的,比如說在某些有時間要求的項(xiàng)目中,初始化自動化測試腳本所需時間是不可接受的。在這樣的情況下手工測試具有更強(qiáng)的靈活性。

總結(jié)起來手工測試適用的情況如下:

界面測試

用戶體驗(yàn)測試

探索性測試

周期短并且一次性的項(xiàng)目

進(jìn)度非常緊張的項(xiàng)目

需求非常不穩(wěn)定的項(xiàng)目

界面尚未確寫

使用了很多第三方或自定義控件的項(xiàng)目

5.    結(jié)論

手工測試和自動化測試也是很多測試人員爭相討論的兩種測試方法。有人對自動化測試趨之若鶩,也有人對自動化測試嗤之以鼻。在做出如何看待自動化測試的決定之前,首先要對自動化測試有一個清晰的認(rèn)識。

自動化測試是對手工測試的一種補(bǔ)充,自動化測試不可能完全替代手工測試,因?yàn)楹芏鄶?shù)據(jù)的正確性、界面是否美觀、業(yè)務(wù)邏輯的滿足程度等都離不開測試人員的人工判斷。而僅僅依賴手工測試的話,則會讓測試過于低效,尤其是回歸測試的重復(fù)工作量對測試人員造成了巨大的壓力。

因此,自動化測試僅僅是某些條件下手工測試的一種補(bǔ)充,而無法全面取代手工測試。

責(zé)任編輯:桑丘 來源: 中國軟件評測中心
相關(guān)推薦

2021-06-30 19:48:21

前端自動化測試Vue 應(yīng)用

2012-12-24 22:54:31

2014-04-16 14:15:01

QCon2014

2013-05-16 10:58:44

Android開發(fā)自動化測試

2022-02-17 10:37:16

自動化開發(fā)團(tuán)隊(duì)預(yù)測

2021-06-26 07:40:21

前端自動化測試Jest

2012-02-27 17:34:12

Facebook自動化

2021-09-03 09:56:18

鴻蒙HarmonyOS應(yīng)用

2009-08-19 09:00:48

單元測試框架自動化測試

2021-06-25 10:57:30

前端自動化測試開發(fā)

2021-09-01 09:38:21

自動化滲透測試網(wǎng)絡(luò)安全攻擊

2024-11-01 15:05:12

2011-01-20 10:17:25

ibmdwWeb

2011-05-30 17:31:26

自動化測試

2022-06-08 14:22:55

自動化測試測試

2012-03-29 10:57:12

Web自動化測試

2022-05-10 11:18:42

自動化測試軟件測試

2023-05-18 14:01:00

前端自動化測試

2011-06-03 17:24:48

自動化測試

2014-11-20 13:49:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號