桩模块就是用来代替被测模块所调用的模块。它的作用是返回被测试模块所需要的信息,而驱动模块的作用是用来模拟被测试模块的上级调用模块,它只完成接受测试数据,以及上级模块调用被测模块的格式驱动被测模块,接受被测模块的测试结果并输出.
桩模块:集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。
比如::(下面代码可能写的有错误,请大家原谅吧,但应该能说明我的意思)
void main(void)
{
int a , b , x;
scanf("%d,%d,%d",&a,&b,&x);
if (a>1 && b=0)
{
x=x/a;
if (x>1)
{
x=x-1;
x=abs(x);
}
else
{
x=x+1;
x=abs(x);
}
}
else
{
x=abs(x);
}
}
abs(int m)
{
if(m>=0)
{
return m;
}
else
return -m;
}
在测试main()时,其中abs()这个函数是要被调用的;所以为了保证abs()所返回的值是正确无误的(因为可能main()函数无错,但abs()有错,导致测试结果认为main()是有错的可能),所以要写桩来代替abs(),来保证测试main()不会得出错误结论。
如,设计用例:
case1: 输入 a = 2 , b = 0 , x = 4
case2: 输入 a = 2 , b = 0 , x = 2
case3: 输入 a = 1 , b = 1 , x = 1
所以代替abs()的桩函数应该是:
stub_abs()
{
if (a= 2 && b= 0 && x = 4)
{
return x = 1 ;
}
if (a= 2 && b= 0 && x = 2)
{
return x = 2 ;
}
if (a= 1 && b= 1 && x = -1)
{
return x = 1 ;
}
}
其实我理解的桩函数就是:“他想要什么你就给他什么”。希望我说明白了。请高手指正!!
阅读(772) | 评论(0) | 转发(0) |