关闭

集成测试例子

发表于:2013-5-21 10:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:信息来源:51Testing软件测试网采编

  需求描述

  被测试段代码实现的功能是:如果a>b,则返回a,否则返回a/b

  被测试段代码由两个函数实现,分别是

  ---int  max (int a, int b, char *msg)

  ---void divide (int *a, int *b)

  divide函数实现a/b功能,max函数实现其他对应功能,并进行结果输出

  int  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,*/

  ;                  /*什么也不做*/

  else

  divide (&a, &b);

  sprintf (dsp, ”%s %d”,msg,a);

  printf (dsp);

  return  a;

  }

  void divide (int *a, int *b)

  {

  (*a)=(*a)/(*b);

  return ;

  }

  画出结构图为:

  集成测试操作步骤

  确定集成测试策略

  ---采用自底向上的测试策略

  确定集成测试粒度

  ---函数

  选定测试用例设计方法

  ---等价类划分、边界值等

  编写测试用例

  ---因为测试策略是自底向上,所以先测试divide( int *a, int *b)函数

  构造驱动(其中m和n是测试用例输入)

  int  test ( )

  {

  int a=m;

  int b=n;

  divide( &a, &b);

  }

  依次执行测试用例,完成测试

  发现并跟踪处理bug

  本例子中的程序都存在什么缺陷呢?

  程序存在的缺陷

  没有对b不能为0的情况进行限制

  当字符串msg的长度加上a整数的位数超过20时,会使dsp数组溢出

  当msg的值(指针的值)为NULL时,sprintf函数将出现问题

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号