天天看點

MQC功能測試大揭秘(1) - 從Android自動化測試談起

in software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. test automation is critical for continuous delivery and continuous testing. —— wikipedia

維基上對自動化測試的定義簡單來說,就是通過軟體來替代人來執行測試用例,并得到測試結果的過程。當然,對于自動化測試來說,包含的範圍十分大的,對于服務端接口與代碼接口來說,通常采用非ui自動化的測試方法,如:unit test、api test等等;對于包含ui元素的完整app、gui程式來說,ui自動化的測試方法有:mock、功能測試等等。

對于安卓自動化測試來說,功能測試是最基本也是最常用的方案,那麼功能測試到底能做什麼?有什麼優點?以及如何做好功能測試? mqc 團隊推出系列文章,為大家講解 appium 技術幹貨以及 mqc 功能測試服務。

功能測試如何幫助改善産品品質

對于大多數靈活開發團隊來說,要完成對一款大型産品各個方面進行全方面的測試是十分困難的。一方面,我們需要根據每次變更有針對性的測試重點子產品,那麼必然會遺漏對其它子產品的測試;另一方面,很多子產品的測試工作是機械性的,如回歸測試、性能測試、機型适配等等,全部交給人工測試将大大增加人工成本。

功能測試可以将測試開發從繁瑣的重複勞動中解放出來,把精力集中到重點子產品,同時有餘力設計編寫完善的測試用例,并通過功能測試提高測試覆寫率,降低隐患。

功能測試的用例不是萬能的

對于測試開發來說,追求100%的測試覆寫率是無可厚非的,但是事實上很多的測試工作是機器難以完成的,比如文字驗證碼識别。優先設計完成穩定子產品的用例來保證今後功能不斷回歸的工作,之後再考慮時間成本、人力成本的前提下再去考慮更多複雜問題的用例設計。

另一方面,對于頻繁發生變化的子產品,用例也應當适應這種變化不停疊代,進而快速的在各個機型上進行功能驗證。

功能測試無法發現新問題

我們在編寫和調試用例的時候,或許能夠發現一些功能性問題,而用例在進行回歸後,發現問題的可能性就很低了。功能測試其實就是一個用例不斷重複的過程,功能測試本身應當是一個“守護者”而非“探索者”,它可以幫助我們更加确定應用沒有問題或者發現一些回歸性的問題,而不是新問題。mqc 在探索問題的方向上自主研發了一款相容性測試工具 ripper,在達到高覆寫率的同時保證較高的 bug 檢出率,有興趣的小夥伴歡迎試用 mqc 相容性測試。

功能測試是需要成本的

我們通過功能測試用例來保證産品的品質,同時需要專業的工程師來保證用例的品質。設計開發一個合格的用例也是需要不斷的調試、疊代與維護的,這就需要一個好的平台系統來幫助完成相關工作。mqc為開發者提供了完善的用例庫管理功能,同時,為測試開發團隊打造了專業的一站式測試協作平台,幫助團隊進行應用管理、協同工作、任務分發、報告統計。

通過以上幾點内容,相信大家對功能測試的概念已經有了一定的了解。mqc 在 android 功能測試上選擇使用了 appium 測試架構,其開源社群較為活躍,相容性好、功能豐富,相信能滿足絕大部分功能測試的需求;在腳本開發方面,mqc 提供了線上真機錄制、雲端真機回放等多種服務,來幫助提高用例腳本的開發、調試效率;最後,平台提供了 app 用例管理、用例曆史報告檢視、編輯腳本、上傳腳本等功能,幫助使用者通過平台來完成功能測試的疊代維護需求。更多服務,歡迎來阿裡雲移動品質中心進行體驗。

繼續閱讀