《开发者测试》第四章 程序插桩和变异测试

目的:为了提高软件测试的有效性,可以对源程序做一些小的修改,以更快、更有效地获取充分地测试信息。

两类主要的程序修改方法:

  ·程序插桩:为了获得程序执行过程中的内部信息,并可以进行相关检查;

  ·程序变异:度量测试用例的缺陷检测能力,强制出现特定条件以便执行测试和程序调优。

4.1 程序插桩


4.1.1 程序插桩概述

  ·向源程序添加一些额外的语句来检测程序状态的变化情况;

  ·可在测试过程中加入输出语句和断言语句,用来判断变量的取值或者程序的状态是否符合预期;

  ·插桩前考虑的问题:

    ①需要获取的信息是什么;

    ②程序插桩的位置在哪里;

    ③程序插桩的数目是多少;

    ④插桩语句的类型是什么。

4.1.2 程序插桩示例

4.1.3 程序插桩工具

4.2 变异测试


4.2.1 变异测试概述

  ·一种对测试数据集的有效性、充分性进行评估的技术,能为研发人员开展需求设计、单元测试、集成测试提供有效的帮助;

 

4.2.2 变异测试方法

  ·程序变异:基于预先定义的变异操作对程序进行修改,进而得到源程序变异程序(变异体)的过程;

  ·程序变异须在变异算子的指导下完成;

  ·在产生变异体后,分别在源程序和变异体上运行测试用例:

    ·二者的结果相同,表示该变异体是存活的(Alive);

    ·二者的结果不同,表示该变异体是被杀死的(Killed) ;

  ·等价变异体:在语义上和原程序保持一致,无法被杀死的变异体。

  ·变异得分:评价测试用例集错误检测有效性的度量指标

    ·SCORE(mutation) = NUM(killed) / (NUM(total) - NUM(equivalent));

    ·NUM(killed) 表示被杀死的变异程序的数目;

    ·NUM(total) 表示所有变异程序的数目;

    ·NUM(equivalent) 表示等价变异程序的数目;

    ·SCORE(mutation) 表示变异得分,介于0和1之间,数值越高表明被杀死的变异程序越多。

 

4.2.3 变异测试工具

猜你喜欢

转载自www.cnblogs.com/wasi-991017/p/11628266.html