讀書計劃 - 3 - 軟件測試52講 -04 | 為什么要做自動化測試窃页?什么樣的項目適合做自動化測試?- 2019-01-21

一复濒,什么是自動化測試脖卖?
顧名思義,自動化測試是巧颈,把人對軟件的測試行為轉(zhuǎn)化為由機(jī)器執(zhí)行測試行為的一種實踐畦木,對于最常見的 GUI 自動化測試來講,就是由自動化測試工具模擬之前需要人工在軟件界面上的各種操作洛二,并且自動驗證其結(jié)果是否符合預(yù)期馋劈。

自動化測試的本質(zhì)是先寫一段代碼,然后去測試另一段代碼晾嘶,所以實現(xiàn)自動化測試用例本身屬于開發(fā)工作,需要投入大量的時間和精力娶吞,并且已經(jīng)開發(fā)完成的用例還必須隨著被測對象的改變而不斷更新垒迂,你還需要為此付出維護(hù)測試用例的成本。

當(dāng)你發(fā)現(xiàn)自動化測試用例的維護(hù)成本高于其節(jié)省的測試成本時妒蛇,自動化測試就失去了價值與意義机断,你也就需要在是否使用自動化測試上權(quán)衡取舍了。

二绣夺,為什么需要自動化測試吏奸?
為了讓你更好地理解自動化測試的價值,即為什么需要自動化測試陶耍,我先來跟你聊聊自動化測試通常有哪些優(yōu)勢:

  1. 自動化測試可以替代大量的手工機(jī)械重復(fù)性操作奋蔚,測試工程師可以把更多的時間花在更全面的用例設(shè)計和新功能的測試上;

  2. 自動化測試可以大幅提升回歸測試的效率,非常適合敏捷開發(fā)過程泊碑;

  3. 自動化測試可以更好地利用無人值守時間坤按,去更頻繁地執(zhí)行測試,特別適合現(xiàn)在非工作時間執(zhí)行測試馒过,工作時間分析失敗用例的工作模式臭脓;

  4. 自動化測試可以高效實現(xiàn)某些手工測試無法完成或者代價巨大的測試類型,比如關(guān)鍵業(yè)務(wù) 7×24 小時持續(xù)運行的系統(tǒng)穩(wěn)定性測試和高并發(fā)場景的壓力測試等腹忽;

  5. 自動化測試還可以保證每次測試執(zhí)行的操作以及驗證的一致性和可重復(fù)性来累,避免人為的遺漏或疏忽。

而為了避免對自動化測試的過度依賴窘奏,你還需要了解自動化測試有哪些劣勢嘹锁,這將幫你繞過實際工作中的“坑”。

  1. 自動化測試并不能取代手工測試蔼夜,它只能替代手工測試中執(zhí)行頻率高兼耀、機(jī)械化的重復(fù)步驟。你千萬不要奢望所有的測試都自動化求冷,否則一定會得不償失瘤运。

  2. 自動測試遠(yuǎn)比手動測試脆弱,無法應(yīng)對被測系統(tǒng)的變化匠题,業(yè)界一直有句玩笑話“開發(fā)手一抖拯坟,自動化測試忙一宿”,這也從側(cè)面反映了自動化測試用例的維護(hù)成本一直居高不下的事實韭山。
    其根本原因在于自動化測試本身不具有任何“智能”郁季,只是按部就班地執(zhí)行事先定義好的測試步驟并驗證測試結(jié)果。對于執(zhí)行過程中出現(xiàn)的明顯錯誤和意外事件钱磅,自動化測試沒有任何處理能力梦裂。

  3. 自動化測試用例的開發(fā)工作量遠(yuǎn)大于單次的手工測試,所以只有當(dāng)開發(fā)完成的測試用例的有效執(zhí)行次數(shù)大于等于 5 次時盖淡,才能收回自動化測試的成本年柠。

  4. 手工測試發(fā)現(xiàn)的缺陷數(shù)量通常比自動化測試要更多,并且自動化測試僅僅能發(fā)現(xiàn)回歸測試范圍的缺陷褪迟。

  5. 測試的效率很大程度上依賴自動化測試用例的設(shè)計以及實現(xiàn)質(zhì)量冗恨,不穩(wěn)定的自動化測試用例實現(xiàn)比沒有自動化更糟糕。

  6. 實行自動化測試的初期掀抹,用例開發(fā)效率通常都很低,大量初期開發(fā)的用例通常會在整個自動化測試體系成熟心俗,和測試工程師全面掌握測試工具后傲武,需要重構(gòu)谱轨。

  7. 業(yè)務(wù)測試專家和自動化測試專家通常是兩批人诗茎,前者懂業(yè)務(wù)不懂自動化技術(shù)敢订,后者懂自動化技術(shù)但不懂業(yè)務(wù)楚午,只有二者緊密合作丧荐,才能高效開展自動化測試缆瓣。

  8. 自動化測試開發(fā)人員必須具備一定的編程能力,這對傳統(tǒng)的手工測試工程師會是一個挑戰(zhàn)虹统。

三弓坞,什么樣的項目適合自動化測試?
看到這里车荔,你心里可能在暗自嘀咕渡冻,“有沒有搞錯啊,自動化測試的劣勢居然比優(yōu)勢還多”忧便。那為什么還有那么多的企業(yè)級項目在實行自動化測試呢菩帝?那么,我接下來要講的內(nèi)容就是茬腿,到底什么樣的項目適合自動化測試?

第一宜雀,需求穩(wěn)定切平,不會頻繁變更。
自動化測試最怕的就是需求不穩(wěn)定辐董,過高的需求變更頻率會導(dǎo)致自動化測試用例的維護(hù)成本直線上升悴品。剛剛開發(fā)完成并調(diào)試通過的用例可能因為界面變化,或者是業(yè)務(wù)流程變化,不得不重新開發(fā)調(diào)試苔严。所以自動化測試更適用于需求相對穩(wěn)定的軟件項目定枷。

第二,研發(fā)和維護(hù)周期長届氢,需要頻繁執(zhí)行回歸測試欠窒。

  1. 在我看來,軟件產(chǎn)品比軟件項目更適合做自動化測試退子。
    首先岖妄,軟件產(chǎn)品的生命周期一般都比較長,通常會有多個版本陸續(xù)發(fā)布寂祥,每次版本發(fā)布都會有大量的回歸測試需求荐虐。
    同時,軟件產(chǎn)品預(yù)留給自動化測試開發(fā)的時間也比較充裕丸凭,可以和產(chǎn)品一起迭代福扬。
    其次,自動化測試用例的執(zhí)行比高于 1:5惜犀,即開發(fā)完成的用例至少可以被有效執(zhí)行 5 次以上時铛碑,自動化測試的優(yōu)勢才可以被更好地體現(xiàn)。

  2. 對于軟件項目的自動化測試向拆,就要看項目的具體情況了亚茬。
    如果短期的一次性項目,就算從技術(shù)上講自動化測試的可行性很高浓恳,但從投入產(chǎn)出比(ROI)的角度看并不建議實施自動化刹缝,因為千辛萬苦開發(fā)完成的自動化用例可能執(zhí)行一兩次,項目就結(jié)束了颈将。我還遇到過更夸張的情況梢夯,自動化測試用例還沒開發(fā)完,項目都已經(jīng)要上線了晴圾。
    所以颂砸,對于這種短期的一次性項目,我覺得你應(yīng)該選擇手工探索式測試死姚,以發(fā)現(xiàn)缺陷為第一要務(wù)人乓。而對于一些中長期項目,我的建議是:對比較穩(wěn)定的軟件功能進(jìn)行自動化測試都毒,對變動較大或者需求暫時不明確的功能進(jìn)行手工測試色罚,最終目標(biāo)是用 20% 的精力去覆蓋 80% 的回歸測試。

第三账劲,需要在多種平臺上重復(fù)運行相同測試的場景戳护。
這樣的場景其實有很多金抡,比如:

  • 對于 GUI 測試,同樣的測試用例需要在多種不同的瀏覽器上執(zhí)行腌且;
  • 對于移動端應(yīng)用測試梗肝,同樣的測試用例需要在多個不同的 Android 或者 iOS 版本上執(zhí)行,或者是同樣的測試需要在大量不同的移動終端上執(zhí)行铺董;
  • 對于一些企業(yè)級軟件巫击,如果對于不同的客戶有不同的定制版本,各個定制版本的主體功能絕大多數(shù)是一致的柄粹,可能只有個別功能有輕微差別喘鸟,測試也是需要覆蓋每個定制版本的所有測試;
  • ……
    這些都是自動化測試的最佳應(yīng)用場景驻右,因為單個測試用例都需要被反復(fù)執(zhí)行多次什黑,能夠使自動化測試的投資回報率最大化。

第四堪夭,某些測試項目通過手工測試無法實現(xiàn)愕把,或者手工成本太高。
對于所有的性能和壓力測試森爽,很難通過手工方式實現(xiàn)恨豁。
比如,某一個項目要求進(jìn)行一萬并發(fā)用戶的基準(zhǔn)性能測試(Benchmark test)爬迟,難道你真的要找一萬個用戶按照你的口令來操作被測軟件嗎橘蜜?又比如,對于 7×24 小時的穩(wěn)定性測試付呕,難道你也要找一批用戶沒日沒夜地操作被測軟件嗎计福?
這個時候,你就必須借助自動化測試技術(shù)了徽职,用機(jī)器來模擬大量用戶反復(fù)操作被測軟件的場景象颖。當(dāng)然對于此類測試是不可能通過 GUI 操作來模擬大量用戶行為的,你必須基于協(xié)議的自動化測試技術(shù)姆钉,這個我會在后續(xù)的性能測試章節(jié)詳細(xì)敘述说订。

第五,被測軟件的開發(fā)較為規(guī)范潮瓶,能夠保證系統(tǒng)的可測試性陶冷。
從技術(shù)上講,如果要實現(xiàn)穩(wěn)定的自動化測試毯辅,被測軟件的開發(fā)過程就必須規(guī)范埃叭。比如,GUI 上的控件命名如果沒有任何規(guī)則可尋悉罕,就會造成 GUI 自動化的控件識別與定位不穩(wěn)定赤屋,從而影響自動化測試的效率畴栖。
另外味榛,某些用例的自動化必須要求開發(fā)人員在產(chǎn)品中預(yù)留可測試性接口,否則后續(xù)的自動化會很難開展篓像。
比如嗜逻,有些用戶登錄操作涩僻,需要圖片驗證碼,如果開發(fā)人員沒有提供繞開圖片驗證碼的路徑栈顷,那么自動化測試就必須借助光學(xué)字符識別(OCR)技術(shù)來對圖片驗證碼進(jìn)行模式識別逆日,而它的設(shè)計初衷是為了防止機(jī)器人操作,可想而知 OCR 的識別率會很低萄凤,就會直接影響用例的穩(wěn)定性室抽。

第六,測試人員已經(jīng)具備一定的編程能力靡努。
如果測試團(tuán)隊的成員沒有任何開發(fā)編程的基礎(chǔ)坪圾,那你想要推行自動化測試就會有比較大的阻力。這個阻力會來自于兩個方面:

  • 前期的學(xué)習(xí)成本通常會比較大惑朦,很難在短期內(nèi)對實際項目產(chǎn)生實質(zhì)性的幫助兽泄,此時如果管理層對自動化測試沒有正確的預(yù)期,很可能會叫停自動化測試漾月;
  • 測試工程師通常會非常熱衷于學(xué)習(xí)使用自動化測試技術(shù)病梢,以至于他們的工作重點會發(fā)生錯誤的偏移,把大量的精力放在自動化測試技術(shù)的學(xué)習(xí)與實踐上梁肿,而忽略了測試用例的設(shè)計蜓陌,這將直接降低軟件整體的質(zhì)量。

總結(jié)
自動化測試是栈雳,把人工對軟件的測試轉(zhuǎn)化為由機(jī)器執(zhí)行測試行為的一種實踐护奈,可以把測試工程師從機(jī)械重復(fù)的測試工作中解脫出來,將更多的精力放在新功能的測試和更全面的測試用例設(shè)計上哥纫。

然而自動化測試試一把“雙刃劍”霉旗,雖然它可以從一定程度上解放測試工程師的勞動力,完成一些人工無法實現(xiàn)的測試蛀骇,但并不適用于所有的測試場景厌秒,如果維護(hù)自動化測試的代價高過了節(jié)省的測試成本,那么在這樣的項目中推進(jìn)自動化測試就會得不償失擅憔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸵闪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暑诸,更是在濱河造成了極大的恐慌蚌讼,老刑警劉巖辟灰,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異篡石,居然都是意外死亡芥喇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門凰萨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來继控,“玉大人,你說我怎么就攤上這事胖眷∥渫ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵珊搀,是天一觀的道長冶忱。 經(jīng)常有香客問我,道長食棕,這世上最難降的妖魔是什么朗和? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮簿晓,結(jié)果婚禮上眶拉,老公的妹妹穿的比我還像新娘。我一直安慰自己憔儿,他們只是感情好忆植,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谒臼,像睡著了一般朝刊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜈缤,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天拾氓,我揣著相機(jī)與錄音,去河邊找鬼底哥。 笑死咙鞍,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的趾徽。 我是一名探鬼主播续滋,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼孵奶!你這毒婦竟也來了疲酌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎朗恳,沒想到半個月后湿颅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡僻肖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年肖爵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臀脏。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冀自,靈堂內(nèi)的尸體忽然破棺而出揉稚,到底是詐尸還是另有隱情,我是刑警寧澤熬粗,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布搀玖,位于F島的核電站,受9級特大地震影響驻呐,放射性物質(zhì)發(fā)生泄漏灌诅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一含末、第九天 我趴在偏房一處隱蔽的房頂上張望猜拾。 院中可真熱鬧,春花似錦佣盒、人聲如沸挎袜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盯仪。三九已至,卻和暖如春蜜葱,著一層夾襖步出監(jiān)牢的瞬間全景,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工牵囤, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留爸黄,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓奔浅,卻偏偏與公主長得像馆纳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子汹桦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容