MQC 功能測(cè)試大揭秘(1) - 從 Android 自動(dòng)化測(cè)試談起
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
維基上對(duì)自動(dòng)化測(cè)試的定義簡單來說,就是通過軟件來替代人來執(zhí)行測(cè)試用例,并得到測(cè)試結(jié)果的過程。當(dāng)然,對(duì)于自動(dòng)化測(cè)試來說,包含的范圍十分大的,對(duì)于服務(wù)端接口與代碼接口來說,通常采用非Ui自動(dòng)化的測(cè)試方法,如:Unit Test、API Test等等;對(duì)于包含Ui元素的完整App、GUI程序來說,Ui自動(dòng)化的測(cè)試方法有:mock、功能測(cè)試等等。
對(duì)于安卓自動(dòng)化測(cè)試來說,功能測(cè)試是最基本也是最常用的方案,那么功能測(cè)試到底能做什么?有什么優(yōu)點(diǎn)?以及如何做好功能測(cè)試? MQC 團(tuán)隊(duì)推出系列文章
維基上對(duì)自動(dòng)化測(cè)試的定義簡單來說,就是通過軟件來替代人來執(zhí)行測(cè)試用例,并得到測(cè)試結(jié)果的過程。當(dāng)然,對(duì)于自動(dòng)化測(cè)試來說,包含的范圍十分大的,對(duì)于服務(wù)端接口與代碼接口來說,通常采用非Ui自動(dòng)化的測(cè)試方法,如:Unit Test、API Test等等;對(duì)于包含Ui元素的完整App、GUI程序來說,Ui自動(dòng)化的測(cè)試方法有:mock、功能測(cè)試等等。
功能測(cè)試如何幫助改善產(chǎn)品質(zhì)量
對(duì)于大多數(shù)敏捷開發(fā)團(tuán)隊(duì)來說,要完成對(duì)一款大型產(chǎn)品各個(gè)方面進(jìn)行全方面的測(cè)試是十分困難的。一方面,我們需要根據(jù)每次變更有針對(duì)性的測(cè)試重點(diǎn)模塊,那么必然會(huì)遺漏對(duì)其它模塊的測(cè)試;另一方面,很多模塊的測(cè)試工作是機(jī)械性的,如回歸測(cè)試、性能測(cè)試、機(jī)型適配等等,全部交給人工測(cè)試將大大增加人工成本。
功能測(cè)試可以將測(cè)試開發(fā)從繁瑣的重復(fù)勞動(dòng)中解放出來,把精力集中到重點(diǎn)模塊,同時(shí)有余力設(shè)計(jì)編寫完善的測(cè)試用例,并通過功能測(cè)試提高測(cè)試覆蓋率,降低隱患。
功能測(cè)試的用例不是萬能的
對(duì)于測(cè)試開發(fā)來說,追求100%的測(cè)試覆蓋率是無可厚非的,但是事實(shí)上很多的測(cè)試工作是機(jī)器難以完成的,比如文字驗(yàn)證碼識(shí)別。優(yōu)先設(shè)計(jì)完成穩(wěn)定模塊的用例來保證今后功能不斷回歸的工作,之后再考慮時(shí)間成本、人力成本的前提下再去考慮更多復(fù)雜問題的用例設(shè)計(jì)。
另一方面,對(duì)于頻繁發(fā)生變化的模塊,用例也應(yīng)當(dāng)適應(yīng)這種變化不停迭代,從而快速的在各個(gè)機(jī)型上進(jìn)行功能驗(yàn)證。
功能測(cè)試無法發(fā)現(xiàn)新問題
我們?cè)诰帉懞驼{(diào)試用例的時(shí)候,或許能夠發(fā)現(xiàn)一些功能性問題,而用例在進(jìn)行回歸后,發(fā)現(xiàn)問題的可能性就很低了。功能測(cè)試其實(shí)就是一個(gè)用例不斷重復(fù)的過程,功能測(cè)試本身應(yīng)當(dāng)是一個(gè)“守護(hù)者”而非“探索者”,它可以幫助我們更加確定應(yīng)用沒有問題或者發(fā)現(xiàn)一些回歸性的問題,而不是新問題。MQC 在探索問題的方向上自主研發(fā)了一款兼容性測(cè)試工具 Ripper,在達(dá)到高覆蓋率的同時(shí)保證較高的 Bug 檢出率,有興趣的小伙伴歡迎試用 MQC 兼容性測(cè)試。
功能測(cè)試是需要成本的
我們通過功能測(cè)試用例來保證產(chǎn)品的質(zhì)量,同時(shí)需要專業(yè)的工程師來保證用例的質(zhì)量。設(shè)計(jì)開發(fā)一個(gè)合格的用例也是需要不斷的調(diào)試、迭代與維護(hù)的,這就需要一個(gè)好的平臺(tái)系統(tǒng)來幫助完成相關(guān)工作。MQC為開發(fā)者提供了完善的用例庫管理功能,同時(shí),為測(cè)試開發(fā)團(tuán)隊(duì)打造了專業(yè)的一站式測(cè)試協(xié)作平臺(tái),幫助團(tuán)隊(duì)進(jìn)行應(yīng)用管理、協(xié)同工作、任務(wù)分發(fā)、報(bào)告統(tǒng)計(jì)。
通過以上幾點(diǎn)內(nèi)容,相信大家對(duì)功能測(cè)試的概念已經(jīng)有了一定的了解。MQC 在 Android 功能測(cè)試上選擇使用了 Appium 測(cè)試框架,其開源社區(qū)較為活躍,兼容性好、功能豐富,相信能滿足絕大部分功能測(cè)試的需求;在腳本開發(fā)方面,MQC 提供了在線真機(jī)錄制、云端真機(jī)回放等多種服務(wù),來幫助提高用例腳本的開發(fā)、調(diào)試效率;最后,平臺(tái)提供了 App 用例管理、用例歷史報(bào)告查看、編輯腳本、上傳腳本等功能,幫助用戶通過平臺(tái)來完成功能測(cè)試的迭代維護(hù)需求。更多服務(wù),歡迎來阿里云移動(dòng)質(zhì)量中心進(jìn)行體驗(yàn)。
