- Selenium自動(dòng)化測試之道
- Ping++測試團(tuán)隊(duì)
- 958字
- 2020-11-28 14:42:25
1.3 采用自動(dòng)化還是手工測試
在求職網(wǎng)站上搜索軟件測試的職位,同一個(gè)業(yè)務(wù)領(lǐng)域,同樣的從業(yè)年限,自動(dòng)化測試的薪酬普遍會(huì)比手工測試高。不少求職者在面試的時(shí)候告訴筆者,他的職業(yè)規(guī)劃是做一兩年手工測試,之后轉(zhuǎn)做自動(dòng)化測試;又或者,面試者會(huì)告訴筆者,他不想做手工測試,只想做自動(dòng)化測試。
以上種種,看起來貌似自動(dòng)化測試比手工測試有前景。那么,自動(dòng)化測試真的比手工測試“高大上”嗎?
手工測試完全依賴人工,由人去做一系列的輸入、點(diǎn)擊操作;而自動(dòng)化測試則是通過測試腳本,由代碼邏輯控制測試步驟。自動(dòng)化測試和手工測試本質(zhì)上是測試用例在執(zhí)行過程中兩種不同的類型。既然它們的核心都是基于業(yè)務(wù)的測試用例,或者說測試場景,那么測試人員在編寫用例的過程中就不應(yīng)該受到“這是自動(dòng)化還是手工”之類的束縛。
前文提到“測試腳本把你從手動(dòng)執(zhí)行的煩瑣工作中解脫出來”,但我們并不能把“自動(dòng)化測試”的效果完全等同于“手動(dòng)測試的自動(dòng)化執(zhí)行”。因?yàn)樵谑謩?dòng)測試過程中,測試人員往往會(huì)突然冒出靈感,想出一些新的用例,也可能留意到之前沒有注意到的細(xì)節(jié)問題。而自動(dòng)化測試的檢查點(diǎn)是固定的,這種局限性意味著相同的用例,手工執(zhí)行發(fā)現(xiàn)的Bugs往往比測試腳本發(fā)現(xiàn)的Bugs多。換而言之,對于穩(wěn)定的功能場景,由于測試步驟和檢查點(diǎn)都已經(jīng)固化了,我們可以考慮自動(dòng)化。這樣一來,如果程序改動(dòng)影響了之前的功能邏輯,就可以在自動(dòng)化腳本的運(yùn)行結(jié)果中直接反映出來;而對于不穩(wěn)定的、仍在迭代過程中的功能,我們通過手工的方式,利用探索性測試的思維,可以快速展開測試活動(dòng),這會(huì)比準(zhǔn)備測試腳本更為高效。
無論是手工還是自動(dòng)化,都需要結(jié)合業(yè)務(wù)場景來制定相應(yīng)的測試策略。對自動(dòng)化和手工測試的誤解容易造成兩種極端。一種極端是認(rèn)為自動(dòng)化的時(shí)間成本和學(xué)習(xí)成本太高,遲遲不啟動(dòng)自動(dòng)化。另一種極端是盲目追求自動(dòng)化測試覆蓋率,強(qiáng)求100%的自動(dòng)化。這兩種極端都會(huì)給測試人員造成極大的痛苦。
誠然,自動(dòng)化測試比手工測試在前期花費(fèi)的時(shí)間要多得多,沒有捷徑可言。但在測試工具和技術(shù)高速發(fā)展的今天,如果團(tuán)隊(duì)由于時(shí)間和學(xué)習(xí)成本而放棄自動(dòng)化,這種團(tuán)隊(duì)?wèi)?yīng)該遠(yuǎn)離。因?yàn)樗鼪]有考慮測試人員的成長曲線,多半也會(huì)在開發(fā)延期的情況下,為了保證按時(shí)上線而壓縮測試時(shí)間,最后把上線壓力都拋給測試人員。這也正好解釋了不少同行離職的原因,是想嘗試自動(dòng)化實(shí)踐,而團(tuán)隊(duì)沒有成長空間。
- Boost.Asio C++ Network Programming(Second Edition)
- Vue.js設(shè)計(jì)與實(shí)現(xiàn)
- 簡單高效LATEX
- Spring Boot+Spring Cloud+Vue+Element項(xiàng)目實(shí)戰(zhàn):手把手教你開發(fā)權(quán)限管理系統(tǒng)
- Python Deep Learning
- Xamarin.Forms Projects
- 軟件工程
- 從Excel到Python:用Python輕松處理Excel數(shù)據(jù)(第2版)
- Getting Started with Laravel 4
- 響應(yīng)式架構(gòu):消息模式Actor實(shí)現(xiàn)與Scala、Akka應(yīng)用集成
- Python圖形化編程(微課版)
- Quantum Computing and Blockchain in Business
- 搞定J2EE:Struts+Spring+Hibernate整合詳解與典型案例
- 持續(xù)集成與持續(xù)交付實(shí)戰(zhàn):用Jenkins、Travis CI和CircleCI構(gòu)建和發(fā)布大規(guī)模高質(zhì)量軟件
- Go語言編程