摘要

本发明公开了一种基于Android多线程数据依赖的变异测试方法,能够准确生成多线程数据依赖相关的变异体,降低无效变异体的生成率,提高Android多线程变异测试效率。所述方法包括变异体生成和变异体测试两个阶段。在变异体生成阶段,对Android应用程序(下称APK文件)进行分析,获取数据流信息;对Android应用程序的源代码文件进行抽象语法树解析和符号类型解析,得到程序中多线程相关的触发位置;对触发位置的上下文代码进行数据流分析,得到可变异位置;对变异位置进行数据类型分析,并应用变异算子,生成多线程数据依赖的变异体。在变异体测试阶段,编译每一个变异体,运行生成的APK文件,筛选出合适的变异体程序;对有效的变异体APK文件,应用测试用例,记录测试结果。