51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3108|回复: 5
打印 上一主题 下一主题

单元测试的困惑,请大侠指点一下,谢谢

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-8-1 17:39:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在在做白盒测试,看了书上的方法,现在采用基本路径方法测试

请问如果有这样一个函数
BOOL A_Fun(HANDLE hMn, BOOL Redraw)
{
  if (!hMn)
  {
    return (FALSE);
  }

  ...;
  ...;
  ...; // 很多逻辑操作

    if (!B_Fun(hMn, (XXX*)hMn->uiItmIdx, fgRedraw))
   {
      Assert(0);          // 开发人员断定不应该进入此路径
      return(FALSE);
   }

   ...;
   return TRUE;
}

XXX为一结构体

测试用例1: bRet = A_Fun(NULL, TRUE); 预期结果FALSE,这种非常简单并且明了的路径需要进行判断吗???也就是说,针对这个路径,需要写测试用例吗

测试用例2: 传入一个正确的句柄,bRet = A_Fun(hMn, TRUE); 由于多个逻辑调用以及B_Fun函数,我也不能断定是否进入Assert(0)或者是到return TRUE; 请问这个预期结果应该填什么呢,是我必须把B_fun理解透? 若B_fun又调用了多个函数呢

应该还有个测试用例3

有点困惑,刚刚做测试,不大懂
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2005-8-2 14:26:43 | 只看该作者
Originally posted by ljan at 1-8-2005 17:39:
测试用例2: 传入一个正确的句柄,bRet = A_Fun(hMn, TRUE); 由于多个逻辑调用以及B_Fun函数,我也不能断定是否进入Assert(0)或者是到return TRUE; 请问这个预期结果应该填什么呢,是我必须把B_fun理解透? 若B_fun又调用了多个函数呢



用 symbolic execution 的技术可以判断在怎样的 test input 的情况下可以进入 Assert(0) 所在的 branch

既然 B_Fun 是另外一个函数 那就是 integration testing 了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-8-4 20:15:44 | 只看该作者
可一般我们测试一个函数时,基本都会调用到其他接口,那都称为集成测试吗
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-8-5 12:48:29 | 只看该作者
Originally posted by ljan at 4-8-2005 20:15:
可一般我们测试一个函数时,基本都会调用到其他接口,那都称为集成测试吗


在unit testing阶段用stub和driver来解决调用和被调用的问题
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-8-9 10:00:06 | 只看该作者
楼主提到:
请问这个预期结果应该填什么呢,是我必须把B_fun理解透? 若B_fun又调用了多个函数呢

正如Kapok所说的,如果是对A_Fun进行单元测试,B_fun通过stub也就是桩来替代,这样就不存在B_fun还调用其它函数的问题了。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-8-12 12:05:45 | 只看该作者
晕倒,单元测试用例怎么能这么设计啊!代码都已经摆这里了,还装模作样的去给定输入和预期输出,最终执行结果能不对吗?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-9 04:50 , Processed in 0.070880 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表