Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Efficiently, Effectively Detecting Mobile App Bugs With AppDoctor

论文下载

Abstract

  • APP doctor 一个测试app bug的系统
  • 用approximate execution来加快运行速度,比如long click,不需等待,而是直接运行回调函数。但这可能出现问题,如果本来即使长按也不会触发回调函数的话,就会出错
  • 用action slicing加速对bug的判断,触发一个bug可能需要一长串actions,但有些是不必要的。这里用一个特殊的法则来切掉不必要的actions,提高速度。

app bug 原因 1. 程序员没有处理好activity的生命周期,没有保存状态的情况下进程被系统杀掉 2. 用户的胡乱操作

例子

同monkey相比:

  1. 加速触发事件,比如直接调用activity的finish而不是等待自己finish
  2. 可以监听时间完成
  3. 不做多余动作

同appCrawler相比:

  1. 能够有效减少approximate execution带来的错误

Detail

Fig

approximate execution

actions 共3类,第一类 快速模式速度比普通快;第二类一样快;第三类只能快速模式

  • 第一类:longclick,setEditText,setNumberPicker,ListSelect,pauseResume,StopStart,Relaunch
  • 第二类:click,keypress(手机功能键),moveseekbar,slide,retate(横竖屏)
  • 第三类:(和测试APP无关,与环境相关)intent,network,storage

  • explore:四种模式:深度优先,广度优先,设置优先级,random

  • diagnosis:所有bug分四类: 确定bug;确定是误报;可能是bug;可能是误报 不确定的人工判断。。

Action Slicing

Fig

Fig

Evaluation

  • 64 apps from googleplay 找到72个bugs
  • 覆盖率:平均每个app覆盖了66.7%的activity
  • 速度与准确率

Fig