【摘要】? ? 本文介紹了移動(dòng)多端自動(dòng)化測(cè)試平臺(tái)的建設(shè)思路,該平臺(tái)實(shí)現(xiàn)了對(duì)國(guó)內(nèi)移動(dòng)政務(wù)服務(wù)應(yīng)用的自動(dòng)化真機(jī)在線測(cè)試和智能化測(cè)試結(jié)果在線分析,替代傳統(tǒng)人工測(cè)試。提供給各級(jí)政府在政務(wù)服務(wù)APP、H5、支付寶小程序、微信小程序等移動(dòng)渠道研發(fā)、上線、運(yùn)維過(guò)程中,對(duì)功能、性能、兼容性、穩(wěn)定性、安全性等全維度測(cè)試的能力,并提高軟件質(zhì)量和市場(chǎng)競(jìng)爭(zhēng)力。文章對(duì)自動(dòng)化測(cè)試平臺(tái)進(jìn)行概述,分析了自動(dòng)化平臺(tái)結(jié)構(gòu)設(shè)計(jì)理念,闡述了自動(dòng)化平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)思路。
【關(guān)鍵詞】? ? 自動(dòng)化? ? 在線測(cè)試? ? 軟件質(zhì)量? ? 市場(chǎng)競(jìng)爭(zhēng)力
一、測(cè)試平臺(tái)需要解決的問(wèn)題
目前市場(chǎng)上有部分移動(dòng)政務(wù)APP應(yīng)用在安裝、啟動(dòng)、卸載時(shí)存在耗時(shí)較長(zhǎng),使用過(guò)程中出現(xiàn)閃退、卡死等常見(jiàn)的問(wèn)題;同時(shí),一些軟件病毒、惡意插件、漏洞和敏感數(shù)據(jù)也在嚴(yán)重影響用戶(hù)信息安全。因此用戶(hù)對(duì)移動(dòng)政務(wù)服務(wù)應(yīng)用在兼容性、性能、穩(wěn)定性、安全性上面提出了更高的要求。自動(dòng)化云測(cè)平臺(tái)可以協(xié)助人工提供這方面的測(cè)試能力,很好的彌補(bǔ)了當(dāng)前測(cè)試階段存在幾個(gè)典型的痛點(diǎn):
1.人工測(cè)試為主,效率低下:目前政務(wù)服務(wù)App質(zhì)量團(tuán)隊(duì)的測(cè)試手段依然以手工測(cè)試為主,人工成本較高。
2.缺乏安全滲透測(cè)試技術(shù):政務(wù)服務(wù)領(lǐng)域內(nèi)研發(fā)團(tuán)隊(duì)主要以面向政務(wù)業(yè)務(wù)為主,缺乏自動(dòng)化安全測(cè)試的專(zhuān)業(yè)技術(shù)。
3.適配機(jī)型復(fù)雜:傳統(tǒng)測(cè)試方式下,無(wú)法覆蓋市面上眾多的手機(jī)型號(hào)。
二、測(cè)試平臺(tái)功能矩陣
為了解決移動(dòng)政務(wù)服務(wù)應(yīng)用在“性能”、“安全性”、“穩(wěn)定性”、“兼容性”以及功能上的問(wèn)題,規(guī)范建設(shè)者們?cè)谝苿?dòng)政務(wù)應(yīng)用建設(shè)前、中、后期的專(zhuān)項(xiàng)測(cè)試標(biāo)準(zhǔn),讓不同技術(shù)實(shí)力的開(kāi)發(fā)者所開(kāi)發(fā)的移動(dòng)政務(wù)應(yīng)用均按統(tǒng)一標(biāo)準(zhǔn)進(jìn)行測(cè)試,為全國(guó)移動(dòng)政務(wù)應(yīng)用開(kāi)發(fā)領(lǐng)域的健康發(fā)展提供規(guī)范化、自動(dòng)化的品控服務(wù)。測(cè)試平臺(tái)主要功能矩陣如下:
2.1性能測(cè)試
在APP的安裝啟動(dòng)卸載過(guò)程中,檢測(cè)APP的安裝卸載時(shí)長(zhǎng),啟動(dòng)時(shí)長(zhǎng);在APP運(yùn)行過(guò)程中,實(shí)時(shí)檢測(cè)APP的前端性能數(shù)據(jù),例如:FPS,流量,電量,內(nèi)存,CPU,上行流量,下行流量等性能。測(cè)試人員拿到獲取到的性能可以實(shí)時(shí)的分析此款A(yù)PP在測(cè)試過(guò)程中可能會(huì)存在的哪些問(wèn)題,例如:內(nèi)存泄漏,加載時(shí)長(zhǎng)過(guò)長(zhǎng),流暢度較差,加載圖片過(guò)大等一系列問(wèn)題。移動(dòng)終端應(yīng)用,不管是Native還是WebView的應(yīng)用,對(duì)性能要求都非常高,主要是卡頓、耗電、速度這幾個(gè)常見(jiàn)關(guān)鍵性的指標(biāo),而這類(lèi)測(cè)試重復(fù)性強(qiáng),指標(biāo)路徑固定,自動(dòng)化測(cè)試可以更快捷地完成性能測(cè)試任務(wù)。
2.2兼容性測(cè)試
不同的業(yè)務(wù)可能會(huì)有不同的適配要求,一般情況下平臺(tái)能提供幾百甚至上千臺(tái)機(jī)器進(jìn)行測(cè)試,包括在不同操作系統(tǒng)(android、ios、鴻蒙,每個(gè)還包含多個(gè)版本)、不同廠家手機(jī)(華為、小米和蘋(píng)果等)、不同屏幕尺寸和不同帶寬等方面的測(cè)試。
2.3穩(wěn)定性測(cè)試
APP的穩(wěn)定性一般通過(guò)閃退率、卡頓等可用性指標(biāo)來(lái)衡量。需要通過(guò)一定時(shí)間內(nèi)的持續(xù)使用或暴力測(cè)試來(lái)發(fā)現(xiàn)問(wèn)題。
提到穩(wěn)定性測(cè)試大家都會(huì)想到用系統(tǒng)自帶的Monkey工具進(jìn)行測(cè)試,此工具既易上手也實(shí)用,但運(yùn)用起來(lái)有非常多的講究和技巧,簡(jiǎn)單的Monkey工具不一定能完成使命,不能完全測(cè)試出應(yīng)用的穩(wěn)定性情況。很多時(shí)候,需要測(cè)試開(kāi)發(fā)人員按照一定規(guī)則自定義智能探索腳本,最大限度覆蓋APP的功能,保證穩(wěn)定性測(cè)試的全面性。
2.4功能測(cè)試
功能測(cè)試一般會(huì)通過(guò)運(yùn)行自動(dòng)測(cè)試用例來(lái)檢測(cè)功能是否符合預(yù)期。往往測(cè)試結(jié)果是和業(yè)務(wù)緊密相關(guān)的。
關(guān)于功能測(cè)試的爭(zhēng)議比較多,因?yàn)楫a(chǎn)品都需要快速迭代,而腳本的穩(wěn)定性、實(shí)現(xiàn)時(shí)間等成本開(kāi)銷(xiāo)大,真正發(fā)揮作用也需要不斷地打磨,并且還有很多后期維護(hù)成本,所以比較折中的辦法是做一些BVT測(cè)試和持續(xù)集成配合,在開(kāi)發(fā)編譯新的build后直接運(yùn)行這些核心的BVT用例,以免出現(xiàn)嚴(yán)重的Regression/Block問(wèn)題,日常的工作中選定較小范圍的用例及適合的框架一般就可以解決問(wèn)題。
2.5安全測(cè)試
隨著互聯(lián)網(wǎng)的發(fā)展,手機(jī)移動(dòng)端的普及,移動(dòng)APP風(fēng)險(xiǎn)漏洞也逐漸暴露出來(lái)。
所謂的風(fēng)險(xiǎn)漏洞一般來(lái)說(shuō)是應(yīng)用代碼編寫(xiě)過(guò)程中出現(xiàn)的安全漏洞、編碼隱患、甚至業(yè)務(wù)邏輯上的缺陷。APP風(fēng)險(xiǎn)漏洞往往帶來(lái)很多危害,諸如應(yīng)用內(nèi)信息泄露、本地拒絕服務(wù)等多種安全問(wèn)題,嚴(yán)重的可能影響應(yīng)用正常運(yùn)行,更為嚴(yán)重的是用戶(hù)信息泄漏、業(yè)務(wù)數(shù)據(jù)被篡改等。
針對(duì)以上可能存在的安全問(wèn)題,APP客戶(hù)端內(nèi)部進(jìn)行了一系列的安全處理機(jī)制,用于保障APP的安全使用,保護(hù)用戶(hù)的個(gè)人信息,保證業(yè)務(wù)委托的安全可靠。
自動(dòng)化測(cè)試平臺(tái)對(duì)APP進(jìn)行基礎(chǔ)信息、數(shù)據(jù)、代碼、組件四個(gè)維度的安全測(cè)試,可多緯度發(fā)現(xiàn)APP的安全問(wèn)題。
2.6線上監(jiān)控測(cè)試
線上監(jiān)控測(cè)試通過(guò)對(duì)全網(wǎng)渠道的各類(lèi)APP進(jìn)行盜版仿冒、惡意違規(guī)等唯獨(dú)的監(jiān)測(cè),分析采集的數(shù)據(jù),精確識(shí)別出有問(wèn)題的應(yīng)用。
這塊測(cè)試方向不應(yīng)該直接歸屬于傳統(tǒng)的自動(dòng)化測(cè)試范疇,因?yàn)樗恍枰R?guī)情況下提到的自動(dòng)化測(cè)試框架支持,也不需要開(kāi)發(fā)測(cè)試用例腳本,這里主要是對(duì)線上測(cè)試數(shù)據(jù)的監(jiān)控,并且利用大數(shù)據(jù)分析進(jìn)行“自動(dòng)化”測(cè)試,在互聯(lián)網(wǎng)產(chǎn)品中極為適用而且能非常直接地體現(xiàn)產(chǎn)品的質(zhì)量。舉個(gè)簡(jiǎn)單的例子,通過(guò)瀏覽器的網(wǎng)頁(yè)瀏覽功能,可以監(jiān)控用戶(hù)在瀏覽網(wǎng)頁(yè)時(shí)有多少個(gè)404的頁(yè)面;出現(xiàn)瀏覽失敗的網(wǎng)站的地域/DNS是什么等。如此層層過(guò)濾,縮小問(wèn)題排查范圍,提高安全防范效率。
三、系統(tǒng)架構(gòu)
移動(dòng)多端自動(dòng)化測(cè)試平臺(tái)系統(tǒng)架構(gòu)由以下幾部分組成:
1.機(jī)柜層:為平臺(tái)提供必要的硬件支撐,由若干PC主機(jī)連接多臺(tái)手機(jī)設(shè)備組成。
2.環(huán)境配置層:手機(jī)和物理主機(jī)使用USB接口進(jìn)行連接,通信過(guò)程中依賴(lài) JDK環(huán)境和SDK環(huán)境,完成對(duì)手機(jī)的調(diào)試工作。
3.框架工具層:Appium是一個(gè)移動(dòng)端自動(dòng)化測(cè)試底層框架,可以測(cè)試原生應(yīng)用以及移動(dòng)端web項(xiàng)目,該框架是跨平臺(tái)的,可以運(yùn)行在osx、windows以及l(fā)inux桌面系統(tǒng)上。
4.基礎(chǔ)服務(wù)層:基于Pycharm腳本語(yǔ)言封裝了一系列的基礎(chǔ)服務(wù)組件,如“服務(wù)日志”、“文件儲(chǔ)存”、“數(shù)據(jù)儲(chǔ)存”等基礎(chǔ)服務(wù),為上層應(yīng)用提供能力支撐。
5.能力框架層:該層統(tǒng)一管理自動(dòng)化測(cè)試用戶(hù)腳本,實(shí)現(xiàn)了多機(jī)并行操作,并監(jiān)控手機(jī)的空閑狀態(tài),通過(guò)智能遍歷腳本運(yùn)行獲取過(guò)程指標(biāo),然后經(jīng)過(guò)實(shí)時(shí)計(jì)算輸出業(yè)務(wù)層需要的結(jié)果數(shù)據(jù)。
6.業(yè)務(wù)能力層:業(yè)務(wù)能力層包括性能測(cè)試、兼容性測(cè)試、功能測(cè)試、安全測(cè)試、穩(wěn)定性測(cè)試、線上監(jiān)控測(cè)試,另外該層向上提供相關(guān)能力的openAPI,自動(dòng)生成詳細(xì)的可視化測(cè)試報(bào)告。
四、應(yīng)用場(chǎng)景
移動(dòng)多端自動(dòng)化測(cè)試平臺(tái)被應(yīng)用的場(chǎng)景有很多,覆蓋政企、金融、教育、電商等多個(gè)行業(yè)。其中自動(dòng)化成為大家共性的需求,安全性測(cè)試視安全等級(jí)要求而定,一般金融行業(yè)要求比較高,會(huì)涉及到要求人為滲透測(cè)試,并借助三方的一些加固工具進(jìn)行加固。
可以預(yù)見(jiàn)未來(lái)移動(dòng)多端自動(dòng)化測(cè)試平臺(tái)應(yīng)用的場(chǎng)景通常解決用戶(hù)的需求包括:
4.1用戶(hù)挑戰(zhàn)
· 手工測(cè)試無(wú)法完成量級(jí)龐大的測(cè)試內(nèi)容;
· 缺乏有效的測(cè)試管理流程以及測(cè)試效果的把控;
· 缺乏實(shí)用易讀的測(cè)試報(bào)告以及圖形化的管理工具;
· 每次發(fā)布要執(zhí)行的回歸案例量巨大,投入成本高;
· 手機(jī)設(shè)備沒(méi)有有效的管理;
· 客戶(hù)需要一套移動(dòng)端自動(dòng)化測(cè)試用例體系。
4.2用戶(hù)收益
· 通過(guò)客戶(hù)端自動(dòng)化測(cè)試工具,提升測(cè)試效率,增加測(cè)試覆蓋率;
· 降低大量重復(fù)的人力,將有限的精力放在重要的功能測(cè)試上;
· 持續(xù)的本地化服務(wù),使得服務(wù)質(zhì)量提升;
· 隨著測(cè)試需求的復(fù)雜度的提升及測(cè)試范圍的擴(kuò)大,可快速完成完整的功能性測(cè)試執(zhí)行。
五、結(jié)束語(yǔ)
綜上,本文對(duì)移動(dòng)多端自動(dòng)化測(cè)試平臺(tái)的建設(shè)背景、相關(guān)的功能矩陣及系統(tǒng)架構(gòu)做了簡(jiǎn)要的介紹。隨著互聯(lián)網(wǎng)的快速發(fā)展,移動(dòng)化的普及,以及各種應(yīng)用場(chǎng)景的訴求提出,自動(dòng)化測(cè)試平臺(tái)的建設(shè)將在用戶(hù)不斷的摸索和實(shí)踐過(guò)程中得到不斷的優(yōu)化和提升,最終發(fā)揮重要的作用。
參? 考? 文? 獻(xiàn)
[1] 《軟件自動(dòng)化測(cè)試開(kāi)發(fā)》,2017年1月電子工業(yè)出版社出版;作者鄒輝
[2] 《高效自動(dòng)化測(cè)試平臺(tái):設(shè)計(jì)與開(kāi)發(fā)實(shí)戰(zhàn)》,2020年6月電子工業(yè)出版社出版;作者徐德晨,茹炳晟
[3] 《Python自動(dòng)化測(cè)試實(shí)戰(zhàn)》,2019年電子工業(yè)出版社出版;作者無(wú)涯
[4] 《全棧自動(dòng)化測(cè)試實(shí)戰(zhàn)――基于TestNG、HttpClient、Selenium和Appium》,2020年4月電子工業(yè)出版社出版;作者盧家濤
[5] 《軟件性能測(cè)試、分析與調(diào)優(yōu)實(shí)踐之路》,2020年7月1日清華大學(xué)出版社出版;作者張永清
王知明(1975.06),男,漢族,江蘇鹽城,大學(xué)本科,研究方向:自然語(yǔ)音處理,數(shù)據(jù)挖掘,深度學(xué)習(xí);自動(dòng)化測(cè)試技術(shù)。