11.28 測試行業大變革,人工智能引領下一代測試


測試行業大變革,人工智能引領下一代測試

經歷過移動互聯網繁榮時代,目前來看中國的移動應用生態已是非常龐大。從市場來看,多達上百個應用市場,APP相關產業已超千億美元規模;從構成來看,移動應用生態的組成,包括移動用戶、手機、開發商,以及超級APP和應用市場;從規模來看,移動用戶規模巨大,手機版本眾多,能統計到的開發者和真正有簽名的開發商已超百萬,還有其他未統計到的成千上萬的移動APP;這些一起組成了規模龐大的移動應用生態。

事物往往是兩面性的,我們在享受如此龐大的移動互聯網帶來的種種好處的同時也必須忍受與之相伴的不好的地方。因為整個移動應用市場是非常複雜的,就質量而言,雖然國內很多應用市場都號稱做了非常嚴格的審查,但事實上,很多APP的應用質量都不盡如人意,而且很多都存在著嚴重的問題,北京大學計算機科學技術系副主任郭耀教授在NCTS中國雲測試峰會上分享了目前移動應用市場的複雜性和麵臨一些問題:

  1. 中國移動應用生態很複雜;
  2. 國內的應用更新不及時,導致用戶在應用市場下載的應用很多版本都不是最新版;
  3. 虛假應用佔市場的平均比例是Google Play的20倍;
  4. 多達80%的應用過多申請了權限;
  5. 應用市場對惡意應用的審核具有延遲性。

那麼,對於此類問題如何處理呢?一是幫助用戶更好地理解應用到底怎麼用,二是對軟件進行測試,當然想要最高效的解決這些問題,還需要一個更高效的智能化測試平臺。

一、AI引領下一代測試,iTestin改寫測試未來

測試行業大變革,人工智能引領下一代測試

Testin雲測總裁徐琨

在剛剛過去的第二屆NCTS中國雲測試行業峰會上,Testin雲測總裁徐琨正式發佈了全新AI測試產品iTestin,作為Testin雲測人工智能戰略中的重要一環,iTestin融合了目前測試領域頂尖的自然語言處理、文本識別、圖標識別技術,全面提升測試產品的易用性和自動化效率,在提升腳本編寫效率一倍的同時,將腳本的維護成本降低了一倍。在現場的發佈環節,徐琨用自然語言在iTestin上現場演示AI+測試的真正能力,引起了現場觀眾的驚歎和稱讚。使用iTestin的測試人員只需在界面中輸入點擊、等待、檢查、長按、輸入等自然語言的文字描述,後臺的AI就能準確實時的在真機上進行完整無誤的操作和相關指令。

iTestin真正神奇之處在於,僅半個小時就能教會一個從來不懂程序代碼的人完整寫完他人生第一個程序。基於手機的操作基本都支持,這包括action,部分後臺的能力,等待,系統按鍵等等。這背後的操作依賴的是AI的識別能力;最重要的是OCR,OCR的準確度會直接影響到整個執行,因為本質上是看到界面,大部分操作是基於文字的,文字有不同類型的字體,不同樣式,還有遮擋等等。通過OCR的技術,能夠把熱點的文字全部篩選,在iTestin後臺可以像人一樣去操作各種文字按鈕,可以讀懂整個頁面的意思是什麼。這是iTestin把系統的按鍵內置到AI的後臺裡面。

測試行業大變革,人工智能引領下一代測試

Testin雲測用幾年的時間把整個人工智能的技術結合到測試上, iTestin的核心,第一部分是在語言的編寫部分,完全是基於自然語言,就是基於日常生活的點擊,登陸,向左劃,向右劃等等,這讓前端的操作會變得更簡單;另外,在後臺人工智能部分做了大量的工作,認識NLP語言,認識各種圖形,比如“點擊登陸”“向下滑動”這八個漢字,這也是iTestin自動化工具的兩條操作語句。

圖標這部分比較有意思,人類認識很多圖標,但是讓AI認識圖標是蠻困難的事。Testin雲測團隊收集了幾百萬的圖標,訓練出這個模型,讓它能認識通用的,近100種,隨著數據越來越多,還可以讓機器越來越聰明,計算機視覺可以把圖形做更多的識別,可以預見的是,基於圖像未來可以做很多很多的事情。

二、測試行業需要AI加持

對於軟件測試行業來講,移動互聯網的發展和興起為軟件測試的發展帶來了機遇的同時也帶來了巨大的挑戰。這不得不從本質問題說起,相對互聯網時代之前的傳統IT時代,軟件通常研發週期較長,軟件功能龐大,更新頻率較低,軟件是作為支撐企業業務發展的配套設施而存在的,之所以叫配套設施,也就是對於企業而言即使沒有它,業務發展依然可以進行,無非是管理效率可能會受到一些影響。而來到移動互聯網時代,從本質上來看,軟件本身就是企業的商業模式的核心競爭力,不再僅僅是一個配套設施,而是核心設施,核心能力,其直接決定了在複雜多變的商業環境中,企業是否具備核心競爭力。

但是在傳統的測試平臺中,諸如腳本和框選目標控件等工作仍需要大量的人工介入,這遠遠滿足不了目前的龐大的市場需求。在行業追求效率的引導下,以AI技術為核心的測試新模式成為了行業爭相討論和想突破的焦點,新技術、新方法、新思維、新未來成為了測試行業的變量。

目前來看,AI+測試已有成為業內共識的趨向,人工智能在測試行業的落地也誓將開啟整個測試行業的新時代。來自阿里、搜狗、京東、埃森哲、VIPKID、平安集團、汽車之家、餓了麼等眾多行業翹楚都在NCTS中國雲測試峰會上為大家分享了最新研究和測試實踐。

三、如何打造全流程AI測試平臺

北京大學計算機系博士李元春在做《強化學習在自動測試中的應用》時介紹了關於GUI測試相關的研究並指出,“將強化學習應用到GUI測試的難點主要是狀態的表示和獎勵函數的設計,即如何將交互界面中的圖像、文本等多模態特徵進行有效的編碼,以及如何將測試的目標轉化成對測試輸入的獎勵。”這其中包括基於深度學習的GUI測試和基於強化學習進行UI功能的測試的內容。

李元春提到雖然將深度學習和強化學習應用於測試有廣闊的前景,但是目前想要達到大規模使用還有很長的路要走。難點一:測試這個問題十分複雜,目前的深度學習主要是拿圖片或者文字作為輸入,而UI是更為複雜的一種信息,既有視覺信息又有文本信息,現在沒有特別好的模型或方法去捕捉UI上的特徵。二:強化學習算法成功的領域往往都是遊戲,例如強化學習可以把圍棋解決得很好,一個重要的原因是,在遊戲領域,Reward是比較明確的,但是在測試裡面,想評估一個測試用例是好是壞,沒有一個準確的指標,最後評估下來,每一個測試用例,不管是正確的還是錯誤的,得到的Reward都是非常相近的,這就導致強化學習模型很難區分正確和錯誤。要解決這些問題,一方面有研究挑戰,一方面也有很多工程問題要解決,還需要學術和產業界共同努力去解決。

四、企業如何進行DevOps轉型

顧宇在分享企業DevOps轉型的經驗時提到,“我不推薦企業在 DevOps 能力不足的情況下做微服務改造,因為企業在質量標準較低的情況下,縮短髮布週期,提升部署頻率是沒有意義的。”

目前來看很多企業在完成微服務改造之後,其測試成本都增加了。原因是從前是單體應用,後面改成分佈式應用,需要測試的點多了,服務和服務之間各種功能性測試和非功能性測試都要測試,特別是在SIT這部分,這部分增加成本會帶來延緩交付週期的結果。企業在 DevOps 能力不足的情況下做微服務改造是不推薦的,微服務應當是 DevOps 成熟度高之後的必然結果;否則很多質量問題會導致人力成本和時間成本的大幅增加。

DevOps需要解決兩個問題,第一是軟件交付效率,第二是交付質量。質量和效率都很重要。如何提升呢?這就需要以下幾點舉措:

  1. 準確定義Bug;
  2. 建立完善的需求文檔,減少對接成本;
  3. 打破DevOps組織牆,樹立正確的DevOps測試觀等。

五、360搜索業務構建全自動化測試平臺

360搜索測試總監彭興強分享了360搜索業務如何通過CI/CD全流程自動化、功能、性能、接口測試自動化,再加上業務監控、線上產品質量的自動化分析、AB實驗以及一套完善的數據分析系統來保障線上服務質量。

傳統軟件製作全流程是自發,自測,提測,冒煙測試;如果流程通不過就打回,冒煙測試結束就進入QA測試環節。而在全自動化測試的流程中,製作的驗證是其中的一個基本功能,另外的功能是迴歸,功能、接口、模塊,離線建庫,性能測試,DIFF測試,兼容性測試等,由於線上可能存在不同的版本,版本上線之後,對當前版本是支持的,對上下版本的兼容需要進行測試,因此所有環節都是在自動化的過程中實現的。

360團隊做的事情是將前面的所有部分抽象出來,都放在全自動化測試流程,編譯打包,提測,冒煙測試和自動化測試,所有都放到一個全自動化測試流程裡。

一個自動化測試平臺包含接口自動化,服務端自動化,前端自動化性能和測試自動化。在自動化測試平臺,針對每塊業務都是有數據定製化的,因此開發不用關心數據,只要選擇做什麼業務,選擇什麼樣的數據,點擊確認就可以。360研製的自動化測試平臺主要有以下幾大亮點功能:

數據上傳:有特定的數據去驗證,可以自己上傳需要的數據。

實時日誌:如果測試需要觀察實時數據的狀況,有些性能測試不需要把整個測試做完之後再看結果,比如10分鐘,20分鐘,發現問題了可以停止測試,去排查問題,一個自動化測試平臺是支持秒級的數據查看。

歷史任務管理:指標變化情況,都可以在平臺裡進行查看。

進程監控:在特定的任務裡面需要關注某些進程的情況,需要把進程名稱填進去,可以通過平臺察看。

六、AI在測試行業的應用和實踐

1. AI模型測試探秘

融360高級技術經理艾輝在做《AI模型測試探秘》主題演講時,分享了AI在金融科技的應用場景並指出,AI在金融行業的商業場景變現領域做的相對成熟,這主要得益於數據的質量,以及數據的豐富度,它們對模型的效果起著極其重要的作用。

模型測試的痛點都有哪些?第一是難,門檻很高,傳統工程測試的方法不能完全的複用,二是抽象,模型測試是黑盒和強數據相關的,體現在問題定位難和排查問題時數據關聯性強。

在打造AI產品質量體系分為線上和線下:線下三個模塊,模型質量、數據質量、工程質量。線上做各種模型效果的監控,特徵的監控,一致性監控的,覆蓋率的還有業務表現的監控等。

2. 如何對線下測試進行智能化建設

阿里巴巴測試開發專家潘家騰在做《阿里媽媽在線下測試域的智能化建設》主題演講時,分享了阿里媽媽在線下測試方面的實踐,包括業務的現狀與挑戰,進入智能化的邏輯,以及如何實現線下測試的智能化。

線下功能測試的發展歷程分為三個階段,第一是大航海時代,特點是以人工測試為主,自動化程度不高;第二個階段是工業革命時代,自動化程度非常高了,測試的框架也有了,加上持續集成的工具,比如阿里內部的一些平臺,共同組成了很高的自動化方式。但是,由於測試技術的門檻非常高,開發無法參與進來,大部分工作都由測試來進行。在阿里內部,有不少團隊還是處於高自動化的時代,但是還沒有進入智能化的時代;第三階段是智能化的時代,特點是產品化、可視化,以及部分的智能化,大大的提高效率。團隊嘗試著讓整個測試工作更簡單,通過降低門檻,讓開發、算法或者其他同學都能夠參與進來。這個階段主要是向測試平臺或者測試中臺的演進。

智能化技術非常重要,但是如何結合測試場景是更重要的事情。功能測試域主要分為三個部分,第一是case如何寫,就是用例生成,第二是用例迴歸,也就是說寫完case之後快速的迭代這些case,第三是一旦case測試失敗之後,怎麼去做智能排查,這三部分智能化都有所體現。除此之外智能化技術還有:用例智能推薦,數據智能推薦,智能冒煙迴流技術,智能迴歸技術,智能排查反饋等部分。

3. DevOps +AI

網易傳媒測試總監張濤分享了網易新聞在最近一年裡在DevOps方面的實踐,並指出,“DevOps落地的過程也是一個提升測試價值的過程,從關注服務可用性到關注系統的可測性和穩定性,在研發、測試和運維全流程中發揮中樞作用。”

張濤在分享DevOps提升迭代效率的思路和方法時,提出了傳統DevOps火車模式的明顯問題,那就是轉向班車模式,班車模式改變了集中需求收集和集中的研發測試的方法,有新的需求隨時去提交,隨時去評審,隨時做研發和測試;再之後就是評估時間週期是否合理,網易新聞的評估週期是固定三週一個迭代。

另一個就是聯合項目管理團隊一起做的OverMind平臺,其最大的作用就是從需求到研發,到上線,到測試,把各個環節常規所需要用到的一些平臺和工具都串聯打通。比如需求的管理,研發所使用的分支管理工具,以及測試的工具,上線的平臺,都進行串聯打通。網易新聞團隊測試時也把Testin雲測全新AI測試產品iTestin提供的自動化的能力集成到了整個的流程裡面。

通過機器學習測試加持,DevOps實現了對全鏈路的監控,另外在如何梳理服務的依賴關係和鏈路的追蹤方向上提供了方法,這一流程可以把整個請求的鏈路串聯起來。另外具備鏈路調用性能評估,可監測每一個請求的性能是怎樣的,這能夠快速的發現性能上的一些瓶頸;這些就是全鏈路監控整體的思路。

4. 利用AI快速定位Bug

餓了麼測試開發專家邱化峰在做《人工智能在Bug定位中的應用》主題演講時指出,“企業想獲得人工智能帶來的便利,首先要制訂相對應的標準,如果沒有這個標準,按照固定的算法,則很難實現。”

首先,有些人專門維護了所有關於java的Bug,這些Bug在修復裡時會生成一些數據,告訴你哪個方法在第幾層,哪個方法哪一行出現了什麼錯誤。如果想使用人工智能帶來的便利,首先要制訂一些相對應的標準,如果沒有這個標準,很難按照固定的算法來得到想要得到的東西。首先邱化峰對工具做了介紹,二是講解了Bug定位的原理和方法,第三,是使用這些工具之後應用從哪些方面做具體的落地。

眾所周知的八二法則在測試行業裡可以理解為,80%的Bug來自於20%的代碼,針對這個理論,需要對20%的代碼做case等級的分類。軟件迭代的版本越多,開發和測試不斷在維護自己自動化的腳本,包括單元測試的腳本,Bug就會慢慢的越積越多,需要用空間換時間看case執行的情況。除此之外,還可以用等級分類的方法把這些case標誌出來,可以減少一些空間或時間。

七、AI賦能測試行業

那麼AI時代,測試開發怎麼做技術的儲備和轉型呢?AI的學習,需要經歷從高數基礎到機器學習的過程。還有就是掌握數據分析和挖掘能力,做數據質量分析本質上就是做數據分析,大量相關的理論和工具都需要熟練的用到。這也需要測試行業的人員不斷去積累,而且對於深度學習,強化學習,複雜度就更高。

測試行業大變革,人工智能引領下一代測試

測試行業未來是AI

中國測試技術的轉型和革新也是中國互聯網飛速發展的縮影,從最初的人工手動測試,到後來的工具測試,到目前市面上主流的自動化測試,整個行業已經進入到了一個成熟和穩定的階段,尤其是雲測試模式的出現,將整個行業又推到了新的高度。再加上當前人工智能技術的發展速度,遠超出了我們想象。可以想象地到,在未來,測試產品會更智能,更簡單,更易用。

這一切的一切讓我相信,隨著AI技術的逐漸成熟,下一代測試正在到來。

【NCTS峰會回顧】北大郭耀:移動應用生態系統的現狀與挑戰https://developer.51cto.com/art/201911/606776.htm

【NCTS峰會回顧】Testin徐琨:AI引領下一代測試,iTestin改寫測試未來https://developer.51cto.com/art/201911/606770.htm

【NCTS峰會回顧】阿里巴巴潘家騰:阿里媽媽在線下測試域的智能化建設https://developer.51cto.com/art/201911/606771.htm

【NCTS峰會回顧】360搜索彭興強:360搜索質量保障體系介紹https://developer.51cto.com/art/201911/606778.htm

【NCTS峰會回顧】融360艾輝:AI模型測試探秘https://developer.51cto.com/art/201911/606775.htm

【NCTS峰會回顧】網易張濤:網易新聞DevOps實踐及在AI測試中的應用https://os.51cto.com/art/201911/606783.htm

【NCTS峰會回顧】顧宇:DevOps的交付質量從需求質量開始https://os.51cto.com/art/201911/606781.htm

【NCTS峰會回顧】北大李元春:強化學習在自動測試中的應用https://developer.51cto.com/art/201911/606772.htm

【NCTS峰會回顧】餓了麼邱化峰:人工智能在Bug定位中的應用https://developer.51cto.com/art/201911/606773.htm


分享到:


相關文章: