自動化介面測驗在餓了么的實踐之路54頁PPT
集成測驗復雜度的挑戰
1. 餓了么使用面向服務的架構(Service-oriented architectures, SOA)
和Thrift 來構建基礎的服務
2. SOA 和Thrift間相互呼叫
隨著模塊的增加,這些測驗分支的組合,將會呈現幾何級的增長
3.異地多活
復雜的路由規則
專案中人員之間溝通復雜度的挑戰
1.開發跟測驗之間的介面變動挑戰
2.前段開發工程師跟后端開發工程師的介面變動挑戰
3.相互依賴的專案之間的介面變動挑戰
4.各業務線各自測驗,Mock提供方的介面
5.多路由規則的挑戰
專案中人員之間溝通復雜度的解決方案
1.即時的掃描代碼,把介面的變動通知給測驗,開發和前端
2.自動的回歸相關原始碼變動的APP,回歸完后將結果通知本專案中的所有人員
3.回歸專案中有相互介面依賴的所有的APP,回歸完后將結果通知本專案及涉及專案的所有人員
主要的策略,將變動通過郵件的方式,由之前的沒有變動提醒,變為主動推送讓專案中的人員及時的了解介面的變化
測驗人員的效率的挑戰
1.黑盒測驗人員做不了白盒測驗人員的事情
2.好的白盒人員市場上很難招聘到
3.測驗人員很難及時跟上開發的變動,對介面進行全面的回歸
4.介面的覆寫場景是否全面
5.不同專案間的測驗人員的溝通和交流
6.缺少自動化的工具來輔助測驗人員測驗多路由
7.缺少對介面的等級劃分
測驗人員的效率的解決方案
1.讓黑盒人員可以做白盒測驗人員的事情(可視化的API的測驗工具)
2.針對介面測驗引入代碼覆寫率,來衡量API的接入質量
3.將開發撰寫的檔案,自動化掃描介面,讓測驗人員可以明確的知道每一個API的用途,及每一個引數的意義
4.提供手工組裝API的Case,和通過HAR批量的生成Case的功能
5.提供了基于Log批量生成SOA介面的功能
6.舊有的Case移植的問題,通過提供SDK,讓有代碼撰寫能力的,繼續撰寫代碼進行測驗
7.提供SOA和Thrift的可視化測驗工具且不需要他們撰寫代碼,像業務人員錄入訂單一樣,只需要填入引數便可進行介面測驗
8.盡可能多的移除業務上Mock,多增加分層系統的Mock
9. 80 20 法則,80%的問題出在20%的代碼上,如果識別這20%的代碼對應的介面上
API的接入步驟-手工組裝
API的接入步驟-批量生成
如何動態的測驗SOA-SOA設計
基于Log的 SOA介面-批量生成
如何動態的測驗Thrift
通過日志生成Case的可復用率
如何提高通過日志生成Case的可復用率
隨機測驗的流程
通過代碼覆寫率來評定測驗用例
1.類的覆寫率,方法的覆寫率,陳述句的覆寫率,分支的覆寫率
2.比較覆寫率
通過代碼覆寫率來篩選有效Case
代碼覆寫率跟bug的關系
如何識別關鍵介面-被依賴
如何識別關鍵介面-依賴其它應用
靜態工具和動態的工具結合
1.Swagger
2.Jacoco
多樣化的完善和補充介面方法
1.隨機測驗
2.基于ELK的日志測驗
隨機測驗的理論和方法
1.蒙特卡羅方法或演算法
Monte Carlo algorithm will return an answer that is not necessarilycorrect within a reasonable amount of time
2.拉斯維加斯
Las Vegas algorithm may take infinite time to compute an answer, butthe answer is guaranteed to be correct.
隨機測驗
隨機測驗的工具
1.JCrasher https://code.google.com/archive/p/jcrasher/
2.Jartege http://www.eecs.ucf.edu/~leavens/JML//index.shtml
http://www.openjml.org/documentation/
3.Eclat
4.Randoop https://randoop.github.io/randoop/manual/index.html
5.QuickCheck https://github.com/nick8325/quickcheck
6.AutoTest https://github.com/autotest
7. TestEra
8. Korat
基于ELK的日志測驗
1. https://github.com/SkeltonThatcher/event-tracing-demo
安全性的挑戰
1.系統部署了多少埠,多少個的服務
2.測驗人員是否進行過安全性的測驗
流程的標準化
1.有無統一的Case管理和維護流程
2.有無統一的作業流程
3.有無統一的測驗賬號管理工具
4.有無統一的測驗資料生成工具
5.有無統一的專案提測流程
自動化
1.自動化的回歸
2.自動化的分發和執行
3.自動化的報告
框架的發展及規劃
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299875.html
標籤:其他
