Sapienz - Multi-objective Automated Testingfor Android Applications

Sapienz:安卓应用多目标自动化测试

www.fireknight.tech 个人博客,欢迎访问,CSDN不定期更新

  • 要点:遗传算法、安卓测试、测试套件、多目标优化、NSGA-II

  • 总结

    • 定义了遗传算法套件级别和测试用例级别
    • 定义了测试用例级别的两种基因,一种是原子操作 atomic genes,一种是在特定UI下的一系列操作 motif genes.
    • 还有遗传算法的适应度函数,虽然没有写具体func,但思路说是覆盖率 + 长度(越短越好)+ 检测到错误数
  • 摘要

    • Sapienz:安卓测试,基于多目标搜索,自动搜索和优化测试序列,最小化长度,最大化覆盖率和错误揭露
    • Sapienz:结合了随机模糊系统和基于搜索的探索、seeding、多级插桩
  • Intro

    • 探索性测试:测试工程师使用、探索应用,然后编写、执行测试
    • The key insight in our approach is that minimising test sequence
      length and maximising other objectives can be combined in
      a Pareto-optimal multi-objective search-based approach to
      Android testing.

      最小化测试序列,最大化别的目标通过帕累托优化多目标搜索

  • 相关工作

    • Monkey
    • Dynodroid: 基于反馈的monkey
    • AndroidRipper: 深搜测试
  • THE SAPIENZ APPROACH

    • 适用于白盒、灰盒、黑盒测试

    • two types of genes: the low-level atomic genes and the high-level motif genes

    • 基于测试的多目标搜索

      • 多目标:覆盖率、测试序列长度、崩溃数量

      • 优化方法:NSGA-II

      • 染色体表达

        • 种群:测试套件
        • 染色体:test sequences <T1, T2, …, Tm>
        • 基因:test events <E1, E2, …, En>
      • 交叉

        • 测试套件级别交叉
        • 测试用例级别交叉
      • 选择

        • rank选择
      • 适应度函数:

        • coverage, length of the test and number of revealed crashes
    • 探索策略

      • 两种基因的组合
    • 静态动态分析

      • 字符串种子

        • 从xml提取,便于在需要的时候输入,更有效
      • Multi-level instrumentation for skeleton and skin coverage

  • 结论

    • Sapienz的进化算法不断优化覆盖范围,序列长度和崩溃发现的数量,寻求揭示尽可能多的崩溃,同时最小化测试序列的长度。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值