首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >突变检测、可达性、感染和繁殖

突变检测、可达性、感染和繁殖
EN

Stack Overflow用户
提问于 2015-11-25 06:32:16
回答 1查看 2.9K关注 0票数 2

嘿,伙计们,我有个关于突变测试的问题,这是样本代码

代码语言:javascript
复制
//Effects: If numbers null throw NullPointException
// else return LAST occurance of val in numbers[]
//If val not in numbers [] return -1
 
public static int findVal (int numbers[], int val)
{
 int findVal = -1;
for( int i = 0 ;  i < numbers.length ; i++)     // for( int i = 1 ;  i < numbers.length ; i++)
 
if( numbers[i] == val)
findVal = i;
return (findVal);
}

(a)如果可能的话,找一个没有到达突变体的测试输入。

(b)如有可能,为突变体寻找满足可达性但不受感染的测试输入。

(c)在可能的情况下,为突变体寻找满足感染但不繁殖的测试输入。

(d)如果可能,找一个杀死突变体的测试输入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 10:53:37

您的问题中没有包括可达性、感染和传播的定义--我假设如下:

  • 可达性:突变表达式的执行
  • 感染:变异表达式的值与原始(未突变)表达式的值不同。
  • 传播:感染状态(不同的表达值)导致可观察状态的感染。

还请注意,(d)不仅取决于输入,而且也取决于测试甲骨文-达到繁殖并不意味着杀死突变体。

以下输入满足您的要求:

(a)不存在这样的输入;对每个输入执行循环初始化器int i = 0,即使numbers为null,因此numbers.length将引发NullPointerException。请注意,只有不调用findVal方法的测试才不能到达突变体--调用findVal意味着满足此突变体的可达性。

(b)不存在这种输入;突变表达式独立于方法参数(任何输入的i=0 != i=1 ) --令人满意的可达性意味着对该突变体的满意感染。

(c) numbers是一个空数组;如果numbers.length为0,那么i的初始值(对于任何i>=0)并不重要,即使i的状态被感染了。为numbers传入null是另一个满足感染但不满足传播的例子。

(d) numbers是一个单元素数组,其元素值等于val.有许多输入满足传播,这意味着突变体可以被杀死--测试是否真的杀死突变体取决于测试是否对结果进行断言。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33909868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档