• Proj. THUIoTFuzz Paper: Testing Java Exceptions an instrumentation


    Abstract

    本文认为一般测试工具只会试着覆盖正常执行路径,本文则会尝试引发已经标明可能出现的异常,由此,测试人员就能观察到程序如何处理这些异常,同时,也能增加覆盖率

    Intro

    本文工作:

    实现了一个能够对Java源码自动插桩的工具,能够自动执行程序的exception相关路径,且能够和现有的测试工具一起使用

    AN INSTRUMENTATION TECHNIQUE TO EXERCISE EXCEPTIONS
     A. VerifyEx类
    VerifyEx有个exception方法,传入参数是用于区别异常的标签
    功能:
    1. 标识异常执行顺序
    2. 协助reboot-可以从程序任何位置重新启动,这样就不需要每次都从main启动,或者每次都把所有的异常路径都走一遍
    B. 插桩
    Step 1:查找exception的activation/deactivation
       本文认为:1. 有throws某个异常这个行为的方法,且这个方法中没有一个被调用的被测函数throw这个异常的,那么这个方法就是activation
                         2. try block对于其catch语句所标明的异常类型来说是activation
       首先,本文创建一个程序的抽象模型,里面只包含exception相关语句和exception objects的控制流图
      
    Step 2. 确定插桩位置
     
    位置分别是:
    1. throw 命令前面
    2. 会丢出异常的method的第一行
    3. try block的第一行
    Step3: 插桩
    具体指令是通过VerifyEx实际执行得到的。
    此外,还会插入Reboot相关指令。
  • 相关阅读:
    事以密成,能者低调
    时间过得真快,一晃三年过去了
    读书随记2011111
    Makefile
    ubuntu 7 下 tftp 的配置
    uboot移植到nano2410
    ubuntu 7.04 Feisty Fawn 安装手记之五:安装常用软件
    移植linux2.6.18到arm9
    移植busybox 1.4.2
    UBoot中SMDK2410的NAND Flash驱动。
  • 原文地址:https://www.cnblogs.com/xuesu/p/13914022.html
Copyright © 2020-2023  润新知