做一个聪明的勤劳人,悠悠的。。。 温馨提醒:少喝奶茶;不吃刚烤的面包;远离充电电源;白天多喝水晚上少喝; 一天不喝多于两杯咖啡,少吃油多的食物;最佳睡眠为晚上十点至早上六点; 晚上五点后少吃大餐’ 每天喝酒不多过一杯; 不用冷水服胶囊; 睡前半小时服药忌立刻躺下; 睡眠不足八小时人会变笨; 有午睡的习惯人不易老; 手机电池剩一格时不要打电话,剩一格时辐射是平时的一千倍, 还要记得用左耳接电话,用右耳会直接伤害到大脑。

驱动模块和桩模块

上一篇 / 下一篇  2008-03-19 16:15:50 / 个人分类:软件测试

驱动模块是调用被测对象,桩是被测对象调用的虚拟块

虚拟块也是有测试人员写的一个模块,就是那个所谓的桩

驱动模块是为了驱动被测模块而编写的模拟块,而桩模块相当于被测模块要调用的块的虚拟。

驱动模块主要完成以下事情:

1、接受测试输入;

2、对输入进行判断;

3、将输入传给被测单元,驱动被测单元执行;

4、接受被测单元执行结果,并对结果进行判断;

5、将判断结果作为用例执行结果输出测试报告。

被测单元用什么语言,驱动就用什么语言写。

总而言之,写驱动和桩不需要太高深编程知识。如果有模板或框架作为参考的话,差不多就成了一个体力活。

一个简单例子:

/*被测程序*/

int Fun(int in)

{

   if (in >= 0)

   {

       return 1;

   }

   else

   {

       return -1;

   }

}

那么通过TCL进行扩展指令编写时,针对该被测函数,驱动如下:

/*用户自己扩展的用户指令,用来驱动被测函数*/

int Ex_TestFun(ClientData clientData,Tcl_Interp * interp,int argc, char* argv[])

{

    int i;

    int retiExceptedRet;

   //打开测试结果记录文件

   FILE * out;

   out = fopen("D:\\result.txt","a");

   //第一步:检查用户输入参数个数是否正确

   if (3 != argc)

   {

       fputs("Parameters error",out);

       fflush(out);

               return TCL_ERROR;

   } 

  //第二步:取出用户输入参数

   if (TCL_OK != Tcl_GetInt(interp,argv[1],&i))

  {

             return TCL_ERROR;           

  }

  if (TCL_OK != Tcl_GetInt(interp,argv[2],&iExceptedRet))

  {

       return TCL_ERROR;

  }

  //第三步:将参数传递给被测函数

  ret = Fun(i);

  //第四步:将被测函数执行结果和输入的期望结果进行比较,根据比较结果作为用例执行结果输出到测试报告中

 if (ret != iExceptedRet)

  {

       fputs("test fail",out);

       fflush(out);

  }

  else

  {

       fputs("test success",out);

       fflush(out);

  }

  return TCL_OK;

}


TAG: 软件测试

eileen_li的个人空间 引用 删除 eileen_li   /   2011-03-31 10:45:53
5
 

评分:0

我来说两句

Open Toolbar