日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android的自動測試輸入生成:我們完成了嗎?

引用:S. R. Choudhary, A. Gorla, and A. Orso. Automated Test Input Generation for Android: Are We There Yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015.

尉犁網(wǎng)站建設公司創(chuàng)新互聯(lián),尉犁網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為尉犁近1000家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設要多少錢,請找那個售后服務好的尉犁做網(wǎng)站的公司定做!

摘要:

同所有軟件一樣,移動應用程序(Apps)必須進行全面的測試,以確保其具有開發(fā)者預期的行為和表現(xiàn)。因此,近年來,研究人員和從業(yè)人員都開始研究移動應用程序自動化測試的方法。特別是,由于Android的開源特性及其巨大的市場占比,已有大量針對Android應用程序測試輸入(通常是GUI事件,如點擊、滑動、輸入)生成工具的研究。目前,有許多這類工具,它們有著不同的測試輸入生成方式、測試策略以及不同的特定啟發(fā)式方法。為了更好地理解這些現(xiàn)有方法的優(yōu)點和缺點,并了解如何提升工具的效果,我們對Android現(xiàn)有的主要測試輸入生成工具進行了全面的比較。我們根據(jù)四個指標評估這些工具的有效性:易用性,多平臺兼容性,代碼覆蓋率以及檢測故障的能力。我們的結果清晰地展示了Android應用程序輸入生成的***技術,并確定了未來的研究方向,如果經(jīng)過適當?shù)匮芯?,可以為Android帶來更有效和高效的測試工具。

引言:

現(xiàn)有的許多自動化測試輸入生成技術,它們具有不同的輸入生成方式、測試策略,以及具體啟發(fā)式方法。然而,目前尚不清楚這些不同方法的優(yōu)點和缺點是什么,它們在一般情況下效果如何,以及它們是否需要改進,如何改進。

為了回答這些問題,我們提出了一個針對Android現(xiàn)有測試輸入生成技術的比較研究.1該研究有兩個目標。***個目標是評估這些技術(和相應的工具),對它們進行比較,評估其可能更適合于哪種測試環(huán)境(例如,應用類型)。我們的第二個目標是更好地理解Android測試輸入生成中涉及的一般權衡(tradeoffs),并確定可以進行改進的現(xiàn)有技術或定義新技術。

工具介紹:

Android測試輸入生成工具根據(jù)其不同的測試策略可以分為以下3類:

隨機測試策略:

基于隨機測試策略的輸入生成器的優(yōu)點是它們可以高效地生成事件,這使得它們特別適合于壓力測試。它們的主要缺點是隨機策略幾乎不能產(chǎn)生特定的輸入。此外,這些工具不知道已經(jīng)涵蓋了應用程序的多少行為,因此可能會產(chǎn)生冗余事件。***,它們沒有測試完成的停止標準,而是采用手動指定的超時。

使用此策略的工具:Monkey,Dynodroid,Null intent fuzzer,Intent Fuzzer,DroidFuzzer。

基于模型的測試策略:

一些Android測試工具構建并使用一個應用程序的GUI模型來生成事件并系統(tǒng)地測試應用程序的行為。這些模型通常是有限狀態(tài)機,應用程序的Activity作為狀態(tài),GUI事件作為轉(zhuǎn)換。一些工具通過區(qū)分Activity狀態(tài)來構建精確模型(例如,具有啟用和禁用按鈕的相同Activity將被表示為兩個單獨的狀態(tài))。大多數(shù)工具動態(tài)地構建這樣的模型,并且當生成的所有事件到達的都是已有狀態(tài)時停止測試。

使用此策略的工具:GUIRipper,ORBIT,A3E-Depth-First,SwiftHand,PUMA

系統(tǒng)的測試策略:

應用程序的部分行為只能由特定的輸入來觸發(fā),這就是為什么一些Android測試工具使用更復雜的技術(如符號執(zhí)行和進化算法)來指導測試之前未被覆蓋到的代碼。對于隨機策略無法觸發(fā)的應用程序行為,使用系統(tǒng)的測試策略具有明顯的優(yōu)勢。然而,與使用隨機策略的工具相比,這些工具的可擴展性要低得多。

使用此策略的工具:A3E-Targeted,EvoDroid,ACTEve,JPF-Android

表1. Android Apps測試輸入生成工具總覽。淺灰色行表示在本文實驗中研究的工具

實證研究:

實驗使用4個指標來評估測試輸入生成工具:易用性,多平臺兼容性,代碼覆蓋率以及檢測故障的能力。我們一共選用了68個Android移動應用程序,使用VirtualBox來提供實驗用的虛擬機,每個虛擬機配置為2核6GB RAM,并配置了三種Android版本的虛擬機,分別對應的SDK版本是:10 (Gingerbread),16 (Ice-cream sandwich)核19 (Kitkat)。對于每一個工具在每個應用程序上的一次運行,我們都會重置一次虛擬機,并重復10次,取實驗數(shù)據(jù)的均值。

對于每一次運行,我們使用Emma (http://emma.sourceforge.net/)收集代碼覆蓋率。我們通過收集虛擬機測試過程中的log(也稱為logcat)來獲取應用程序故障,并且我們會人工審核這些應用程序故障的真實性。

1.易用性和多平臺兼容性

表2報告該工具是否開箱即用(NO EFFORT),是否需要一些努力(LITTLE EFFORT),無論是正確配置還是修復小問題,或是否需要付出巨大努力(MAJOR EFFORT)。截至目前,我們只是報告我們安裝每個工具的經(jīng)驗。

表2. 各工具的易用性和在常用Android版本上的兼容性

2.代碼覆蓋率和故障檢測能力

從圖1中,我們可以看到,平均而言,Dynodroid和Monkey的表現(xiàn)優(yōu)于其他工具,其次是ACTEve。其他三個工具(即A3E,GUIRipper和PUMA)實現(xiàn)了相當?shù)偷母采w水平。盡管如此,即使那些平均達到低覆蓋率的工具也可以達到一些應用程序的非常高的覆蓋率(大約80%)。我們手動調(diào)查了這些應用程序,發(fā)現(xiàn)它們是最簡單的應用程序。

圖1. 各工具在各應用程序上運行10次的覆蓋率差異 圖2. 各工具覆蓋率隨時間的變化

圖2顯示所有工具在幾分鐘內(nèi)(5到10之間)達到***覆蓋范圍,唯一的例外是GUIRipper。 造成這種差異的可能原因是GUIRipper經(jīng)常從其初始狀態(tài)重新啟動測試,此操作比較耗時。 (這實際上是SwiftHand通過實施限制重啟次數(shù)的測試策略來解決的主要問題。)

圖3. 各工具觸發(fā)的故障分布

圖3顯示故障中只有少數(shù)涉及自定義異常(即,在測試中的應用程序中聲明的異常)。其中絕大多數(shù)導致標準Java異常,其中最常見的是空指針異常。

總結:

在本文中,我們提出了Android的主要現(xiàn)有測試輸入生成工具(和相應的技術)的比較研究。 我們根據(jù)四個標準評估了這些工具:易用性,Android框架兼容性,實現(xiàn)的代碼覆蓋率和故障檢測能力。根據(jù)這一比較結果,我們確定并討論了不同技術的優(yōu)缺點,并強調(diào)了該領域未來研究的潛在方向。

致謝

此文由南京大學軟件學院2018級碩士田元漢翻譯轉(zhuǎn)述。


分享題目:Android的自動測試輸入生成:我們完成了嗎?
網(wǎng)頁地址:http://www.dlmjj.cn/article/dpjpscc.html