《开发者测试》第四章 程序插桩和变异测试
Posted wasi-991017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《开发者测试》第四章 程序插桩和变异测试相关的知识,希望对你有一定的参考价值。
目的:为了提高软件测试的有效性,可以对源程序做一些小的修改,以更快、更有效地获取充分地测试信息。
两类主要的程序修改方法:
·程序插桩:为了获得程序执行过程中的内部信息,并可以进行相关检查;
·程序变异:度量测试用例的缺陷检测能力,强制出现特定条件以便执行测试和程序调优。
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 变异测试工具
以上是关于《开发者测试》第四章 程序插桩和变异测试的主要内容,如果未能解决你的问题,请参考以下文章
测试工具Jtest:用于代码优化和测试——《软件工程综合实践专题》第四次个人博客