Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166794
  • 博文数量: 48
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 640
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-22 15:54
文章分类
文章存档

2011年(2)

2010年(13)

2009年(30)

2008年(3)

我的朋友

分类: 项目管理

2009-02-19 17:36:31

桩模块就是用来代替被测模块所调用的模块。它的作用是返回被测试模块所需要的信息,而驱动模块的作用是用来模拟被测试模块的上级调用模块,它只完成接受测试数据,以及上级模块调用被测模块的格式驱动被测模块,接受被测模块的测试结果并输出.
 
桩模块:集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。
 
比如::(下面代码可能写的有错误,请大家原谅吧,但应该能说明我的意思)
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 ;
   }
}

其实我理解的桩函数就是:“他想要什么你就给他什么”。希望我说明白了。请高手指正!!
阅读(743) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~