無AI不測試:人工智慧時代背景下,如何發展與應用自動化測試?
背景
從電腦科學誕生開始,其主要目標一是計算(用計算機對大量資料進行處理),二是自動化(用計算機代替機械重複的人工勞動)。在半個多世紀後的今天,我們驚訝地發現,引導電腦科學發展的仍然是這兩個範疇:大資料和人工智慧(AI)。
而自動化測試,是人工智慧領域下的一個應用方向,和無人駕駛、機器人等一樣,都是AI技術的應用場景。從技術的發展角度看,自動化測試一共經歷了四代發展變化。從最早提出自動化測試思想,到如今將AI引入自動化測試,貫穿其發展的核心訴求就是希望能有效的解決自動化測試中的時間與人力成本問題。
在過去很長一段時間內,自動化測試都侷限於傳統的測試指令碼驅動。無論是遊戲開發人員使用的Lua介面,還是類似Xcode的UI Test,抑或是透過ADB/minicap對Android裝置進行簡單操控的Python Script,其本質都是人為定義規則的自動化操作模擬。傳統方式儘管工作量大,但實現門檻較低,容易上手,容易除錯,也容易修改,在很長一段時間裡都是自動化測試的主流方案。相關主流方案的差異通常也只限於自動化指令碼介面或規則定義形式的不同。
然而,這種人工定義規則的方案都存在一些很明顯的問題:版本迭代頻繁。每次版本變化往往需要重新修改、調整指令碼。對於較為複雜或具有一定隨機性(例如遊戲對局)的場景,難以透過簡單的指令碼調整對其提供支援。實際上,對於隨機性極強的遊戲產品,通常不會對遊戲對局過程進行太多測試。
部分測試指令碼需要產品本身提供對應的操作介面,用於獲取遊戲內部資料。而這種專用測試介面通常不會在正式釋出版本中提供,因此對於真正上線的產品,難以用自動化指令碼進行測試,只能靠人工測試。這一點可以說是導致自動化測試工具至今無法大規模商業化、產品化的核心原因。
AI與自動化測試
從20世紀50年代到20世紀70年代初,人工智慧的研究處於“推理期”。1981年,Werbos提出了多層感知器,引入了反向傳播(BP)演算法,此後,神經網路得到了快速發展;1986年,決策樹的機器學習演算法被J.R.Quinlan提出,也就是ID3演算法;1995年,Vapnik和Cortes提出了支援向量機(SVM),其被作為一種能使機器學習取得重大進展的方法而得到推廣;2005年,三層的NN模型強勢崛起,諸多專家在理論和實踐上徹底啟用了深度學習。2012年,Hinton課題組首次參加ImageNet影像識別比賽,透過CNN網路——AlexNet奪得冠軍,CNN網路吸引了眾多研究者關注;2015年,深度殘差網路(ResNet)被提出,在眾多比賽中表現突出;2016年,由谷歌旗下的DeepMind公司研發的阿爾法圍棋(AIphaGo)戰勝了當時的圍棋世界冠軍李世石,成為第一個擊敗人類職業圍棋選手、第一個戰勝圍棋世界冠軍的人工智慧機器人,引起世界輿論的譁然。越來越多的技術領域開始嘗試結合AI技術進行開發。至今,AI技術已經在影像處理、語音識別、藝術創作、自動駕駛等許多方面有了成熟的技術與穩定的應用。
在2015年和2016年Google DeepMind發表多篇遊戲自動控制的論文,以及AlphaGo在棋類遊戲上有了戰勝人類的先例之後,騰訊互動娛樂事業群的TuringLab團隊開始思考如何利用最新的AI技術解決上述問題,並將其融入自動化測試工具中。從2017年到今天,透過多個產品的實驗和騰訊內部多個部門的協作,TuringLab團隊成功地開發出一套基於深度學習的自動化AI測試框架,並應用在多款世界知名遊戲產品的日常測試上。
AI技術的核心思想是利用已有的歷史資料,訓練出一個較好的AI網路,透過已經訓練好的AI網路來處理當下的輸入資料。與傳統的程式設計方法不用,透過AI演算法訓練出來的網路模型通常會有更好的泛化性。而在傳統的自動化測試中,專案測試的維護成本很高,只要版本更新或功能發生變動,就有可能產生大量的維護工作。引入AI技術後,其帶來的泛化性可以有效地減少自動化測試的維護成本,在AI模型中程式設計可以不做改動,或者直接增加訓練資料就可以很好的完成測試需求。
2020年,TuringLab團隊基於深度學習的自動化AI測試框架基礎,將其開發與應用經驗詳細整理成了《AI自動化測試:技術原理、平臺搭建與工程實踐》一書,與讀者分享騰訊遊戲是如何將AI技術與自動化測試相結合完成測試需求的。
主創團隊
騰訊互動娛樂事業群TuringLab團隊
由美國歸國技術專家領頭組建,成員包括多點陣圖像識別處理和機器學習領域的博士,以及多位專注於工程技術的專家。目前,實驗室開發的AI SDK自動化測試平臺已經成功接入騰訊公司的幾十款在正式運營的商業遊戲,並同時服務於WEST產品、即通手Q產品,以及各遊戲工作室的多個產品。
[主編]
張力柯
騰訊TuringLab實驗室負責人,資深 AI系統設計專家; 美國德克薩斯大學聖安東尼奧分校電腦科學博士,曾先後在美國微軟、BCG、Uber及矽谷其他創業公司擔任研發工程師及專案負責人等;
[聯合作者]
周大軍:騰訊TuringLab實驗室AI工程組負責人,有10年以上工程技術開發經驗,負責開發的GAPS(壓測大師)獲騰訊公司首屆最佳工具獎,申請及參與提交工程、無人機、AI相關專利70餘項;
黃超:資深AI演算法研究員,先後在國內外重要的期刊和會議上發表20餘篇論文,並提交AI相關專利25項;
李旭冬:資深AI演算法研究員,在國內外重要會議和期刊上發表學術論文15篇,申請AI相關專利10項;
申俊峰:資深軟體工程師,有10年以上工程技術開發經驗,先後提交相關技術專利10項;
王潔梅:騰訊高階工程師,先後提交發明專利23項,其中國際檢索2篇;
楊夏編:騰訊高階工程師,先後提交發明專利26項
書籍簡介
《AI自動化測試:技術原理、平臺搭建與工程實踐》一書共分了三個部分。
第一部分是原理篇,重點介紹影像識別演算法、基於值函式和策略梯度的強化學習、模仿學習的研究現狀與在自動化測試中的運用等相關的AI演算法原理,還詳細講解了Android裝置除錯相關問題,為後續學習具體工具的落地應用打下基礎。
第二部分是平臺篇,將用長達117頁的詳細介紹為工程師們講解騰訊遊戲AI自動化開發工具的設計與實現,包括和Android裝置的對接、資料標註流程、AI演算法在遊戲自動化中的具體實現、AI SDK平臺二次開發等。
第三部分是最佳實踐篇,將透過不同需求場景下的實踐案例,為工程師們展示在實際遊戲產品的測試如何使用本書介紹的測試平臺完成各類不同的需求,並可嘗試在此基礎上實現定製化功能。
結語
AI作為近些年的技術熱門話題詞,有不少企業行業打出“人工智慧”的標籤製造噱頭,吸引大眾的眼球。在自動化測試技術多種多樣的背景下,與AI技術結合的自動化測試方法卻已經在諸多適當的場景達到了提高生產效率,節省企業的人力成本的效果。
從目前騰訊公司的AI自動化測試實踐來看,多解析度手機的相關測試如相容性、效能、迴歸等節省的成本是最明顯且有效的。現在,TuringLab團隊將AI測試平臺免費開源開放,如果使用者覺得已有的演算法或者功能不能滿足測試需求,可以自己開發一些更適合自己業務的功能與演算法。《AI自動化測試:技術原理、平臺搭建與工程實踐》一書也將更好的為你指引AI+自動化測試的開發方向。 現在 點選購買,還可享受限時8折特惠!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31420651/viewspace-2706043/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python 桌面應用自動化測試Python
- 手工測試用例與自動化測試用例的區別
- 自動化裝置測試與自動化測試的區別
- 自動化測試如何管理測試資料
- 自動化測試系列 —— UI自動化測試UI
- 如何做自動化測試?什麼是自動化測試?
- Flutter應用進行自動化測試Flutter
- 如何將人工智慧技術應用到自動化測試上?人工智慧
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- 自動化測試|Eolink Apikit 如何儲存、使用測試用例API
- Docker與自動化測試及其測試實踐Docker
- 自動化測試在國際軟體測試中的應用
- 功能測試如何快速轉向自動化測試?
- 測試開發之自動化篇-自動化測試框架設計框架
- 軟體自動化測試與AI結合 - modernanalystAINaN
- 自動化測試:Monkey工具實踐應用~
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 軟體測試:自動化測試
- 如何處理不穩定的自動化測試?
- 【自動化測試入門】自動化測試思維
- 何時適合進行自動化測試?(下)
- 【編測編學】自動化測試面試必背(下)面試
- 採用自動化測試的情形及自動化測試的優缺點
- 自動化測試系列(三)|UI測試UI
- 手工測試和自動化測試 BattleBAT
- 小程式自動化測試--測試3
- 移動應用的測試策略與測試架構架構
- 滲透測試與自動化安全測試工具比較
- 測試面試題集錦(五)| 自動化測試與效能測試篇(附答案)面試題
- 功能測試、自動化測試、效能測試的區別
- 請問自動化測試應該測試非法資料嗎
- 2023年好用的自動化測試框架有哪些?如何提高自動化測試效果?框架
- 沒有介面文件的情況下如何開展介面自動化測試?
- AI測試101:測試AI系統的實用技巧&ML和AI自動化工具AI
- 自動化測試面試點面試
- 網際網路時代,自動化測試勢不可擋,你還在討論如何做好功能測試?
- 如何實現高度自動化測試?
- API自動化測試API