?譯者 | 陳峻
審校 | 孫淑娟
在敏捷式的開發(fā)場景中,由于業(yè)務(wù)需求和技術(shù)環(huán)境時(shí)常發(fā)生變化,為了優(yōu)化DevOps和QA工作流,項(xiàng)目團(tuán)隊(duì)往往需要通過部署最新的系統(tǒng)架構(gòu),以合理的成本和速度,去管理和實(shí)現(xiàn)既定的業(yè)務(wù)目標(biāo)。近年來出現(xiàn)的自動化的可視化測試,簡化了產(chǎn)品驗(yàn)證的關(guān)鍵環(huán)節(jié)。作為測試軟件應(yīng)用是否滿足生產(chǎn)環(huán)境的主要工具,此類測試已變得越來越流行。
顧名思義,自動化的可視化測試是通過關(guān)注軟件應(yīng)用程序的可視化組件,來測試軟件應(yīng)用程序的自動化過程。對于大多數(shù)質(zhì)量保證(QA)團(tuán)隊(duì)而言,雖然此類測試是他們?nèi)粘y試策略中的一部分,但是在實(shí)現(xiàn)方式和使用工具上存在著巨大差異。
https://www.browserstack.com/state-of-visual-testing-report
軟件測試的主要挑戰(zhàn)
在繼續(xù)討論可視化測試之前,讓我們先來了解軟件測試所面臨的常見挑戰(zhàn):
- 自動化與手動:任何涉及到大量人工操作的測試策略,都會耗費(fèi)團(tuán)隊(duì)大量的資源和時(shí)間,其中也包括在測試運(yùn)行和報(bào)告更新過程中的人際交流。而自動化的實(shí)現(xiàn)則需要測試團(tuán)隊(duì)對待部署的框架具有深入的理解。同時(shí),頻繁變化的業(yè)務(wù)需求,也會給自動化測試計(jì)劃的維護(hù)與更新,帶來一定的挑戰(zhàn)。
- 測試環(huán)境:為了在近乎實(shí)際的情況下開展測試,測試團(tuán)隊(duì)需要能夠在一組相關(guān)的設(shè)備、瀏覽器、網(wǎng)絡(luò)環(huán)境中,執(zhí)行各項(xiàng)操作,以便在受控的環(huán)境中復(fù)刻真實(shí)的使用狀況。
- 完成時(shí)間:在軟件項(xiàng)目中開發(fā)新的功能需要時(shí)間,開展測試同樣也需要時(shí)間。為此,測試團(tuán)隊(duì)需要通過優(yōu)化測試,來壓縮項(xiàng)目的總時(shí)間,進(jìn)而在最短的時(shí)間內(nèi),獲得盡可能全面的結(jié)果。團(tuán)隊(duì)可以通過采用CI/CD,來自動化應(yīng)用程序的構(gòu)建、以及測試的觸發(fā),并且通過儀表板來跟蹤軟件的總體狀態(tài)。不過,在從手動遷移到自動化的過程中,他們可能因?yàn)闊o法理解核心業(yè)務(wù),從而導(dǎo)致測試腳本雖然能夠快速執(zhí)行,但是其執(zhí)行的測試并不完整。
- 白盒與黑盒測試:白盒測試通常由開發(fā)人員完成,而黑盒測試則由測試人員實(shí)施。而這可能會導(dǎo)致兩組人員之間缺乏溝通,進(jìn)而讓同步性測試變得困難重重。例如,由于白盒測試往往會比黑盒測試更為詳細(xì)和具體,因此會導(dǎo)致在相同區(qū)域的測試覆蓋程度上不盡相同。此外,由于白盒測試通常是在開發(fā)或分段環(huán)境中運(yùn)行的,而黑盒測試則在類生產(chǎn)環(huán)境中開展的,這也導(dǎo)致了測試結(jié)果的復(fù)制和問題的調(diào)試,也會變得困難重重。
- 文檔和報(bào)告:當(dāng)在應(yīng)用程序中檢測到錯(cuò)誤時(shí),測試團(tuán)隊(duì)?wèi)?yīng)當(dāng)按照既定的格式,記錄下所有與測試相關(guān)的元數(shù)據(jù)和步驟,以保持再現(xiàn)性和更深入的分析。同時(shí),測試團(tuán)隊(duì)需要在特性與模塊級別,去記錄應(yīng)用程序的行為,其中包括:重新創(chuàng)建的步驟、預(yù)期的行為、以及觀察到的行為等。通常,在手動場景中,測試團(tuán)隊(duì)為了能夠?qū)z測到的問題,及時(shí)作為任務(wù)反饋并分配給開發(fā)人員。他們需要使用諸如Jira、Trello等bug跟蹤工具,來記錄所有的細(xì)節(jié),并與其他團(tuán)隊(duì)共享。不過,這往往要求測試人員能夠清楚地說明、并將事件記錄到bug跟蹤器中。而在此過程中,就可能會出現(xiàn)表述不清等人為的差錯(cuò)。
https://www.browserstack.com/state-of-visual-testing-report
可見,理解上述提到的各項(xiàng)挑戰(zhàn),將有助于我們掌握軟件開發(fā)和測試過程中的各種復(fù)雜性,也便于我們運(yùn)用正確的工具去解決可能碰到的問題。
自動化的可視化測試的特點(diǎn)和優(yōu)勢
自動化的可視化測試、或稱可視化回歸測試,是針對軟件執(zhí)行白盒產(chǎn)品驗(yàn)證測試的高級方法。鑒于不同的測試團(tuán)隊(duì)能夠達(dá)到的自動化程度各不相同,我們在此將一個(gè)典型的可視化自動化測試框架的特點(diǎn)羅列如下:
- 能夠?qū)⒉煌脑O(shè)備、瀏覽器和操作系統(tǒng),組合配置為一個(gè)測試套件,并添加到測試環(huán)境中。
- 支持設(shè)計(jì)良好、且高效的腳本語言,并能編寫出各種測試用例。
- 能夠通過SDK集成諸如React、Angular等應(yīng)用程序開發(fā)平臺,以及諸如Ember、Cypress等端到端的測試框架。
- 能夠在本地開發(fā)、測試和生產(chǎn)環(huán)境之間順利地同步各項(xiàng)工作。
- 能夠記錄帶有I/O和屏幕輸出的各種測試運(yùn)行會話。
- 能夠發(fā)現(xiàn)和記錄應(yīng)用程序版本之間的差異。
- 應(yīng)該具有輕量級和成本效益的特點(diǎn)。
https://www.browserstack.com/state-of-visual-testing-report
以下是實(shí)施自動化的可視化測試的關(guān)鍵優(yōu)勢:
- 分離的技術(shù)和業(yè)務(wù)級測試:通過可視化各個(gè)單獨(dú)的應(yīng)用程序版本之間的差異,您可以清楚地劃分運(yùn)行單元、集成、系統(tǒng)和驗(yàn)收測試的各項(xiàng)團(tuán)隊(duì)職責(zé)。同時(shí),通過將測試集成到CI/CD工作流中,您可以在每次應(yīng)用發(fā)布之前,提供一個(gè)無縫的業(yè)務(wù)驗(yàn)證層。
- 節(jié)省時(shí)間和資源:顯然,自動化可以減少甚至消除手動測試的需要,幫助您節(jié)省上文提到的時(shí)間和資源。而自動化的可視化測試還可以協(xié)助團(tuán)隊(duì)確保測試用例的正確運(yùn)行和一致性。
- 提高效率:自動化的可視化測試可以通過提供更可靠且一致性的結(jié)果,來提高測試的覆蓋率和準(zhǔn)確性。先進(jìn)的鏡像處理功能則提供了多種方法(如先進(jìn)的AI/ML技術(shù)),能夠更加精確地自動記錄問題,并發(fā)現(xiàn)其中的差異??梢哉f,一個(gè)“訓(xùn)練有素”的鏡像處理網(wǎng)絡(luò),絕對能勝過一支人類團(tuán)隊(duì)。
- 最少量的人為干預(yù):自動化核心分析既能夠減少人為錯(cuò)誤的可能性,又能夠在保留團(tuán)隊(duì)成員對于關(guān)鍵過程的控制權(quán)的基礎(chǔ)上,提供潛在問題的盡早反饋,以協(xié)助提高軟件的整體質(zhì)量。
Percy自動化的可視化測試
由BrowserStack推出的Percy,是一個(gè)一體化的可視化測試與審查分析的平臺。它能夠通過可視化整個(gè)回歸測試的過程,提供對于構(gòu)建、差異、快照、以及大量其他功能的訪問。
作為BrowserStack套件的一部分,Percy可與Live和Live Automate等其他工具聯(lián)合使用,為您的各種可視化測試需求,提供全面的覆蓋。下面讓我們來簡單了解其執(zhí)行的步驟:
- 首先,你需要在??Percy??處完成注冊。
- 接著,請?jiān)??Percy應(yīng)用儀表板??上創(chuàng)建項(xiàng)目。
- 請遵循適合您當(dāng)前編程框架的??集成指南??,并使用由其提供的可用于鏈接和驗(yàn)證帳戶的令牌。
- 根據(jù)指南在本地環(huán)境中安裝項(xiàng)目的依賴項(xiàng),以便向應(yīng)用執(zhí)行腳本寫入??Percy命令??,并制作快照。
- 構(gòu)建并運(yùn)行應(yīng)用程序,通過檢查日志,以獲取快照事件的更新。
- 在生成完畢后,您可返回??儀表板??處,并查看到自己的構(gòu)建列表。
- 只要您單擊任意條目,都將進(jìn)入review部分。在此,您可以看到瀏覽器與Percy儀表板的其他功能之間的區(qū)別。
在Percy的儀表板上預(yù)覽構(gòu)建
一旦在儀表板上出現(xiàn)了您的構(gòu)建,您便可以通過調(diào)整項(xiàng)目,來添加諸如webhook、slack、各種存儲庫集成,以及在快照中更換瀏覽器等更多功能。同時(shí),您可以添加團(tuán)隊(duì)成員,并針對生產(chǎn)環(huán)境進(jìn)行配置,以評估每個(gè)構(gòu)建的可視化差異,并讓團(tuán)隊(duì)針對審查開展協(xié)作。
在整個(gè)設(shè)置完成之后,您將獲得如下優(yōu)勢:
全面的可視化測試和針對審批的工作流程
- 易于集成
- 實(shí)時(shí)結(jié)果
- 跨瀏覽器支持
- 強(qiáng)大的分析工具
- 靈活定價(jià)
基于云端的測試是未來
基于云端的測試能夠給我們帶來各種好處。其中最重要的是由它提供的快速、成本效益、以及全面的覆蓋率。云端測試工具能夠讓企業(yè)通過提供與生產(chǎn)環(huán)境完全相同的、近乎真實(shí)測試環(huán)境,以節(jié)省大量的時(shí)間和資金。測試人員只需通過注冊,并選擇其用于測試的真實(shí)設(shè)備,便可開始標(biāo)記bug。
除了速度和成本效益,云端測試還能夠提供全面的覆蓋率。據(jù)此,測試團(tuán)隊(duì)和QA經(jīng)理可以更快地實(shí)現(xiàn)更高的準(zhǔn)確性、以及更小的投入等目標(biāo)。可以說,云端可視化測試不但簡單、快速、實(shí)用,而且能夠提高技術(shù)和業(yè)務(wù)方面的精確程度。就其目前的實(shí)際發(fā)展趨勢和本身的優(yōu)勢,我們可以有把握地說,未來各種業(yè)務(wù)關(guān)鍵型軟件的測試將主要是由基于云端的、高度自動化的可視化測試平臺來實(shí)現(xiàn)。
譯者介紹
陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識與經(jīng)驗(yàn)。
原文標(biāo)題:??Is Visual Comparison Testing the Future????,作者:Vivek Mannotr?