*以下內(nèi)容為本人的學習筆記,如需要轉(zhuǎn)載,請聲明原文鏈接 微信公眾號「ENG八戒」https://mp.weixin.qq.com/s/qavI7z8IAy8qaiQvuQgURQ
雖然大家都知道堅果是非常健康和有營養(yǎng)的,但是,當你嘗試吃它的時候,我猜測過程都不會很順利。
現(xiàn)實就是那么相似,我們都知道測試自動化對軟件開發(fā)有好處(就像堅果對我們的身體一樣?。?,很遺憾很多公司在不考慮細微差別的情況下就趕著上線測試自動化。如果您不遵循一些規(guī)則,您可能會弄巧反拙。
為了避免這種情況,我嘗試收集了 10 個測試自動化的最佳實踐建議以供大家參考。
計劃先行
無規(guī)矩不成方圓,做測試也是如此。自動化測試需要策略,策略需要詳細的規(guī)劃。計劃在開發(fā)階段將需要哪些測試和測試次數(shù),目的是修復遇到的bug,還有發(fā)生錯誤的根本原因。開發(fā)完成之后,任然需要計劃回顧,也就是常說的復盤會議,目的是減少重復錯誤的發(fā)生。
必工欲善其事必先利其器
自動化測試的本意是利用工具幫助測試工程師脫離繁雜而重復的細節(jié),并加快測試過程。說到測試自動化的工具,包含了編寫測試腳本、運行測試過程、匯總報告、分析問題、跟蹤問題、修復bug和方便內(nèi)部團隊溝通的工具。
關于開發(fā)人員使用的測試框架,我曾經(jīng)在其它的推文里介紹過一款 Google 開源的 C++ 測試框架,有興趣可以點擊下方鏈接了解一下。
《C++ 測試框架 GoogleTest 初學者入門篇 丙》
可見需要的工具名目眾多,而且分階段配合,也非常需要集成到統(tǒng)一的平臺并便于成員理解各個階段的作用和相互協(xié)調(diào)。
那么有哪些平臺已經(jīng)在做這些事情呢?
比如,Katalon、LambdaTest、Perfecto、Zebrunner等。
在項目早期就開始
團隊首要任務其實是為了獲取成果和企業(yè)賺取收益,團隊產(chǎn)出的項目成果越早推向市場,越有機會為團隊創(chuàng)造效益,畢竟剩下來的都是成本,軟件行業(yè)最大的成本就在于勞動力的開銷了。如果項目bug發(fā)現(xiàn)得越早并且修復完整,那么成果就容易得到主管層的認可,產(chǎn)品上市的門檻算是邁過了。
bug發(fā)現(xiàn)越早,留給工程師修復的時間也就越多,嚴重的問題更適合在項目早期就發(fā)現(xiàn),后續(xù)跟進的同事也能對此類問題了解更全面。否則,等到工程代碼堆積如屎山,待到何時休?唯有項目難產(chǎn)了。
合理利用虛擬環(huán)境和真實應用環(huán)境
軟件的運行在發(fā)布到用戶手里之前,可以在虛擬的環(huán)境里測試,雖然僅可以對功能測試,但是費用是非常廉價的,任何規(guī)模的企業(yè)都可以使用。
如果還需要測試產(chǎn)品的性能,獲取實時數(shù)據(jù),比如傳感器、部件、網(wǎng)絡信號強弱、電量等,必須要使用到真實的應用環(huán)境才可以達到目標。真實的應用環(huán)境往往需要購買特定的設備配合測試,這些設備還要考慮定期維護保養(yǎng),所以成本也是一個很重要的因素了。
為了平衡測試目標和成本因素,虛擬環(huán)境和真實應用環(huán)境測試需要合理安排,做到平衡。
手動自動相互配合
凡是求個度,適度就是好,包括測試自動化。現(xiàn)時情況下,很多因素的作用,測試只能手動執(zhí)行,所以將它們自動化是沒有意義的,否則就是畫蛇添足了。
首先,腳本無法模仿人類的所有行為和反應。其次,如果計劃的測試只需只執(zhí)行一次,那么沒有必要為此寫個自動化腳本,等寫完腳本,花都謝了。
那么哪些測試非常適合實施自動化呢?下面做了個列表:
需要實施自動化的測試場景: |
---|
大量重復動作 |
操作大量數(shù)據(jù) |
需要注意力比較集中的操作 |
需要兼顧各種運行平臺的功能,比如不同操作系統(tǒng)、瀏覽器、硬件等 |
比較常用的功能 |
回歸測試
在添加新功能后需要執(zhí)行一輪測試用以檢查功能是否正常工作,這樣的測試就叫回歸測試。
回歸測試是需要重復執(zhí)行的,所以自動化地執(zhí)行并一遍又一遍地運行就顯得很必要了。一般建議在回歸測試套件種添加冒煙測試、完整性測試和測試用例,方便在測試周期中發(fā)現(xiàn)更多的bug。
端到端(E2E)測試
端到端 (E2E) 測試是從終端用戶的角度出發(fā),模擬他們在實際環(huán)境下使用應用程序的交互過程,可以確保應用程序按照產(chǎn)品要求運行和正確處理各種用戶任務。E2E 測試自動化了用戶的關鍵操作,使得軟件的錯誤可以被快速發(fā)現(xiàn)和立刻修復,所以對軟件發(fā)布時間的加快有很好的推動作用。
切忌獨攬所有環(huán)節(jié)
試想下,你的團隊里如果創(chuàng)建腳本、運行測試和維護它們的都是一個人,那么你的團隊工作速度必然難以快速響應,改代碼的速度也會受到影響,更可怕的是如果這人請病假或者離職了會導致所有的測試流程完全暫停,風險是很高的。所以提倡測試流程共享所有權。
如果每個成員都充分了解項目的測試階段,他們或許可以為流程做出更多貢獻。測試工程師如果都能共享測試腳本,那么其中優(yōu)秀的知識和技能也能被傳播到其他成員。還有,共享測試會使到測試過程更加透明。
預期和結(jié)果對比,效率最大化
上面提到測試需要計劃,比如目標是什么類型的測試,預估編寫測試腳本的工時,運行測試時長,重新發(fā)布測試版本軟件要多久,再次啟動測試過程,測試過程的覆蓋率是多少等等,最終會有個總體的時間預估。
在測試工作結(jié)束后,對比一下預期的計劃和實際的花費,為下一階段的工作做好調(diào)整,目標是實現(xiàn)效率的最大化。
保持更新
測試的目的是為了篩選出問題,如果過時的測試導致假陽性或者假陰性的結(jié)果,會增加工程師分析和修復錯誤的時間,減低工作效率,最終還可能誤導工程師發(fā)布帶病的版本軟件。雖然通過自動化測試提高了測試的覆蓋率,但這是以測試結(jié)果準確為前提的。文章來源:http://www.zghlxwxcb.cn/news/detail-433754.html
所以在回歸測試中,要及時刪除過時的測試例程,更新對應的功能測試。文章來源地址http://www.zghlxwxcb.cn/news/detail-433754.html
到了這里,關于測試自動化的 10 個最佳實踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!