@rg070836rg
2015-09-17T16:01:22.000000Z
字数 920
阅读 1528
软件测试
题目要求:
一、请构造一个尽可能简单的数值计算小程序P和两个测试用例t1和t2以及两个Fault(F1, F2)满足以下要求:
1、在P中注入F1得到程序P1,使得t1 fail;
2、在P中注入F2得到程序P2,使得t2 fail;
3、在P中注入F1和F2得到程序P3,使得t1和t2都pass。
分析:设计一个累加正数的程序,读到正数就累加,最后输出
#include<iostream.h>
/*
* 程序用来求4个数中 大于0部分的和,下面是正确程序
* 用例1: {-1,-2,1,2} 结果3
* 用例2: {-7,-1,8,0} 结果8
*/
void main()
{
int a[4];
int s=0;
for(int i=0;i<4;i++)
{
cin>>a[i];
if(a[i]>0)
s+=a[i];
}
cout<<s<<endl;
}
测试截图:
/*
* 程序用来求4个数中 大于0部分的和,下面是fault1程序,修改if部分小于号
* 用例1: {-1,-2,1,2} 结果-3 错误
* 用例2: {-7,-1,8,0} 结果-8 错误
*/
void main()
{
int a[4];
int s=0;
for(int i=0;i<4;i++)
{
cin>>a[i];
if(a[i]<0)
s+=a[i];
}
cout<<s<<endl;
}
/*
* 程序用来求4个数中 大于0部分的和,下面是fault2程序,修改累加部分符号
* 用例1: {-1,-2,1,2} 结果-3 错误
* 用例2: {-7,-1,8,0} 结果-8 错误
*/
void main()
{
int a[4];
int s=0;
for(int i=0;i<4;i++)
{
cin>>a[i];
if(a[i]>0)
s-=a[i];
}
cout<<s<<endl;
}
/*
* 程序用来求4个数中 大于0部分的和,fault1 fault2 全改
* 用例1: {-1,-2,1,2} 结果3
* 用例2: {-7,-1,8,0} 结果8
*/
void main()
{
int a[4];
int s=0;
for(int i=0;i<4;i++)
{
cin>>a[i];
if(a[i]<0)
s-=a[i];
}
cout<<s<<endl;
}