码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-06 20:43:46      阅读:636      评论:0      收藏:0      [点我收藏+]

标签:ali   ota   软件   目的   变化   研发   获取   需要   方法   

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

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

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

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

 

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 变异测试工具

 

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

标签:ali   ota   软件   目的   变化   研发   获取   需要   方法   

原文地址:https://www.cnblogs.com/wasi-991017/p/11628266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!