敏捷交付中的自動化測試 | IDCF

內(nèi)容來源:ThoughtWorks洞見 作者:郭泰瑜
在提及自動化測試的時候,很多人會把工具的使用等同于自動化測試。自動化測試應(yīng)該是一個策略性的系統(tǒng)化工程,不只有自動化工具。自動化測試要發(fā)揮其頻繁快速的質(zhì)量反饋作用,還需要團隊從文化和技術(shù)上去建設(shè)和學習。
持續(xù)集成工具 自動化測試 , 自動化的產(chǎn)品質(zhì)量反饋機制
自動化測試不只自動化工具

In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes.
自動化測試本身也是軟件 自動化測試基于預(yù)期結(jié)果進行斷言
Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate.
automated tests 而不是automated test,一個產(chǎn)品只有一種,或者某一層級上的自動化測試是無法達到整體質(zhì)量評估的,持續(xù)測試需要不同類型的自動化測試在交付的不同階段為產(chǎn)品的不同層級提供反饋。 delivery pipeline,immediate feedback,自動化測試一定是和交付流水線交合集成的,至少是同頻運行的,不是孤立的,只有這樣才能就團隊每一次的新變更對產(chǎn)品質(zhì)量的影響做出快速而及時的反饋。 business risks,持續(xù)測試廣義上來說包含交付中的所有質(zhì)量反饋行為,既要測試左移,質(zhì)量內(nèi)建,也要測試右移,實現(xiàn)產(chǎn)品質(zhì)量主動監(jiān)控,不然無法識別業(yè)務(wù)風險。
測試工具的選擇

支持不同的helper: WebDriver, Puppeteer, Protractor, Nightmare, Testcafe, 我在項目上選用的是Puppeteer。 支持web也支持mobile,當時項目上的第一個產(chǎn)品是有手機端版本的, 這也是選擇這個工具的一個考慮。 封裝良好的頁面元素操作方法,拿來即用,對于不擅長編碼的我來說,非常友好。 因為項目產(chǎn)品是和礦場上爆破緊密相關(guān)的,很多產(chǎn)品都有礦場地圖展示和設(shè)備可視化,CodeceptJS 提供了現(xiàn)成的codeceptjs-resemblehelper以實現(xiàn)視覺上的回歸測試。 最近發(fā)現(xiàn)它還支持API測試,包括REST和GraphQL的, 但是這部分特性尚未實踐。
選擇合適的時候做自動化

自動化測試和產(chǎn)品代碼一樣重要
為每套自動化測試編寫清晰的README, 保證團隊里除你以外其他的小伙伴,也都清楚明白如何運行自動化測試。 除了實用的README引導(dǎo)團隊如何運行測試,可視化良好的測試報告也非常必要。如下是我們項目上的測試報告:



讓UI測試更穩(wěn)定,請求開發(fā)把頁面的關(guān)鍵組件元素加上ID 屬性,用唯一的ID去定位元素就穩(wěn)定多了。 建議每個Dev提交代碼前,在本地自行運行測試腳本,保證自動化測試的及時性和正確性,并對新變更提供及時的質(zhì)量反饋。


持續(xù)測試還需要團隊具備DevOps相關(guān)技術(shù)
在容器里安裝puppeteer之前,需要手動下載Chromium包以及相關(guān)的依賴。? 在docker里面啟動puppeteer,要么配置一個puppeteer的user,要么選擇去掉默認的沙盒環(huán)境。 當時還遇到因為docker默認的64MB內(nèi)存空間不夠,Chrome渲染頁面崩潰。


最后用個比喻結(jié)束這篇文章

評論
圖片
表情

