
《集成测试小实例》PPT课件.ppt
9页集成测试小实例需求描述n被测试段代码实现的功能是:如果a>b,则返回a,否则返回a/b n被测试段代码由两个函数实现,分别是Øint max (int a, int b, char *msg) Øvoid divide (int * a, int * b) ndivide函数实现a/b功能,max函数实现其他对应功能,并进行结果输出nint max (int a, int b, char *msg){char dsp[20]; /*声明一个大小为20的char型数组*/ if (a<0 || b<0) /*如果a和b中有一个数不是正数*/ return -1; /*则直接返回*/if (a>b) /*如果a大于b,*/; /*什么也不做*/elsedivide (&a, &b); sprintf (dsp, ”%s %d”,msg,a);printf (dsp); return a;}nvoid divide (int *a, int *b){(*a)=(*a)/(*b); return ;}画出结构图为:集成测试操作步骤 n确定集成测试策略Ø采用自底向上的测试策略 n确定集成测试粒度Ø函数 n选定测试用例设计方法 Ø等价类划分、边界值等集成测试操作步骤 n编写测试用例Ø因为测试策略是自底向上,所以先测试divide( int *a, int *b)函数 IDint *aint *b预期结果132767132767213276703030430出错集成测试操作步骤n构造驱动(其中m和n是测试用例输入)int test ( ){int a=m;int b=n;divide( &a, &b);} 集成测试操作步骤n依次执行测试用例,完成测试n发现并跟踪处理bugn本例子中的程序都存在什么缺陷呢?本例子中的程序都存在什么缺陷呢?程序存在的缺陷n没有对b不能为0的情况进行限制 n当字符串msg的长度加上a整数的位数超过20时,会使dsp数组溢出 n当msg的值(指针的值)为NULL时,sprintf函数将出现问题 。





![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)






