自動化測試框架選型和落地實踐路徑

老_张發表於2024-06-14

有同學問了我這樣一個問題:我想學習並且在工作中落地介面自動化測試,我該學Java還是Python,用哪個測試框架和工具更好?有什麼推薦的學習資料和測試框架嗎?

又是一個很典型的問題,也是新手最容易糾結的點。這篇文章分享一些我的經驗和思考。

自動化測試框架選型

其實關於測試框架選型,要考量的無非是如下幾點:

  • 個人技術基礎如何,框架的學習難易曲線;
  • 框架功能是否豐富,官方文件是否詳細,框架生態是否成熟;
  • 框架本身的擴充套件性如何,是否支援多語言,開源還是商業的;

如果個人技術基礎比較薄弱,建議選擇功能豐富開箱即用,且學習曲線比較平滑的。有些框架入門簡單,但是進階和落地難度就會特別高;有些框架入門難度稍微高點,但整體的學習難易曲線比較平滑,適合不斷打怪升級,這點需要看個人適配程度和喜好。

第二點,功能豐富意味著落地實踐階段二次開發封裝的成本投入較低。詳細的官方文件可以幫助新手更快的入門,且其中也會有不少的案例。所謂的生態就是用這個框架的人多不多,用的多自然遇到的問題多,解決問題的方法也有更多人在前面趟坑。

至於第三點,就是選型後落地方面的考量。支援多語言,意味著和研發團隊的技術棧以及被測應用更為匹配;開源意味著更低的直接成本,擴充套件性則是是否支援團隊級別的定製化選項。

自動化測試落地實踐路徑

自動化測試框架和工具都很成熟了,落地實踐的案例也不少,但具體落地過程肯定會遇到各種各樣的問題,解決問題的過程需要考量具體的業務特性,基礎設施建設,專案迭代頻次等很多因素,很難說有普適性的通用案例可以參考。

我想換個角度,從自動化測試相關的面試題來聊聊它的落地路徑,也許你能收穫不一樣的思路和方法。當然,下面列舉的面試問題是由淺及深的,且會列出考察點和回答問題的邏輯,希望能對大家有所幫助。

1、自動化測試是如何做的?

回答思路:從問題出發,要解決什麼問題,採用了什麼工具/框架,原因是什麼?自動化測試的流程,重點是哪些方面,要面臨哪些挑戰,如何解決的,是否有更好的方式。

2、選擇自研框架和開源框架?

回答思路:這個問題考察兩方面,一方面是對開源/商用框架優缺點的瞭解程度,以及和自身團隊及業務的匹配性;另一方面則是自研框架和團隊及業務的是配性更強,但成本更高。

3、自動化測試主要投入和產出是什麼?

回答思路:同樣考察兩方面,一方面是前期的產出和效果肯定是低於成本投入的,自動化需要長期持續建設且專案相對穩定,才能在大後期收益覆蓋成本。

另一方面則要表達出自己對自動化測試的理解,比如自動化就是用來輔助測試,解決重複性高的執行工作,如果最開始奔著提升效率,那大機率最後會不了了之。

4、如何管理自動化測試資料?

回答思路:分階段用不同的方法。單人或者剛開始落地,以簡單易懂為主,比如Excel;規模稍微起來或者參與自動化測試工作的人多了,就要考慮配置檔案或者函式生成方式;大規模覆蓋階段則要考慮造數工廠方式。

測試資料管理是自動化測試中特別重要的一環。特別是團隊擴大,業務複雜度上升之後,如何高效合理管理測試資料,需要很深入的思考和大量的實踐。 重要的是要有持續迭代和最佳化的做事方式,而不是從一開始就求大而全

5、自動化測試如何融入CICD交付流水線?

回答思路:單純的做自動化測試,產出和價值並不高,自動化測試如果不能持續整合,融入到持續交付流水線中,那隻能說是測試用例自動化執行。更好的方式是讓自動化測試成為整個研發交付流程的一部分,為研發交付提供輔助和支撐。

當然,CICD的交付流水線是整個技術團隊要發力做的事情,需要解決很多前置問題,比如編碼規範、程式碼分支命名規範、版本管理、完善監控,也需要技術團隊內部各團隊協同配合。

回答這個問題,可以從推動和參與CICD流水線建設來講,解決了哪些問題,最終達成了什麼效果。

6、如果讓你來負責整體的質量保障工作,你會從哪些方面入手?

回答思路:這個問題看似和自動化測試沒有直接關聯,但實際上很考驗測試工程師的全域性思維和技術視野,以及對業務和技術關係的理解。

在質量保障體系中,流程建設、需求/風險/進度管理、質量門禁、團隊賦能、工具提效、人員培養、知識庫沉澱等多個方面都需要進行建設,自動化測試是質量門禁、工具提效輔助和團隊賦能的重要抓手。

7、從零開始從零開始落地自動化測試,你會如何做?列舉重要的幾個方面。

  • 前期摸底:業務情況、團隊的技術基礎設施、團隊成員的技術能力等。
  • 調研對比:商用&開源&自研框架的優劣勢,做demo,拿到資料支撐結論,然後出落地方案。
  • 分階段落地:不同階段的重點是什麼,要解決什麼問題,採用什麼方法和手段,需要的資源和麵臨的挑戰。
  • 更進一步思考:能否為測試團隊賦能,怎麼做?能否推動整個研發交付流水線流程,有什麼好的想法和思路。

以上就是我在面試候選人時,關於自動化測試經常問的幾個問題。至於自動化測試的落地路徑,答案都在上面的幾個問題中包含了。從我的角度來說,無論是面試回答問題,還是技術工程落地,注意如下幾點即可。

  • 事前-分析和思考:邏輯清晰條理明確。
  • 事中-推動解決問題:合理的方法,以拿結果為導向。
  • 事後-持續覆盤改進:跟隨業務和團隊的變化,不斷改進,使之更符合團隊需要。

相關文章