google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

预期结果到底如何判断呢,笔误的情况,测试用例能判断出来吗

预期结果到底如何判断呢,笔误的情况,测试用例能判断出来吗


bool fun(int n)
{
   if(n > 0) // 若写代码笔误,实际应该为n < 0
   {
   ...;
    return true;
   }

   return false;
}

但我们测试时不知道笔误,
采用路径方法判断时
fun(100), 预期结果为true,和返回结果一致
fun(-1),预期结果false,返回结果false,一致

这样岂不是判断不出bug来吗
新手,感觉很困惑

TOP

怎么会一致?

如果正确的判断条件是 n<0
fun(100) 预期当然应该是 false
fun(-1) 预期应该是 true

TOP

这个是需求实现的问题了,从代码上来说,它没有错。
但是从该函数要实现的功能上来说错了。
应该是代码实现的问题了。这类代码的测试不能光看源码,要看所实现的功能了吧。要只看代码也很容易疏忽。
楼主自己把自己也搞晕了:)
用以下用例就可以测试出问题来的:
fun(10) 预期:false  实际:true
fun(-1)  预期:true  实际:false

TOP

引用:
Originally posted by snappyboy at 2-8-2005 16:05:
这个是需求实现的问题了,从代码上来说,它没有错。
但是从该函数要实现的功能上来说错了。
应该是代码实现的问题了。这类代码的测试不能光看源码,要看所实现的功能了吧。要只看代码也很容易疏忽。
代码本身无所谓对错 只有如何优化的问题
测试阶段的代码至少是能通过编译的

测试本来就是要检查程序的implementation是否符合specification

TOP

谢谢各位了,了解了

TOP

1、笔误也是单元测试的内容,想发现笔误和测试用例的设计相关,还是楼主提到的例子,如果笔误是将n<0错写成n<=0了,这样楼主提到的两个用例是测试不出来的。可以考虑通过边界值法补充一些用例。
2、楼主提到的是采用路径覆盖的方法,其实不管是路径覆盖还是其它覆盖都由其局限性,往往要综合使用。不要认为覆盖率100%就没有问题了。
3、单元测试时不一定需要通过动态方式,也就是通过用例的设计和执行,也可以通过静态的方式,比如代码走读等,关键是尽快发现问题。
我不想不想长大
长大后就没树爬
我不想不想长大
长大后就没牙刷
我只想做一只快乐的koala。。。。。。

TOP

 
当前时区 GMT+8, 现在时间是 2008-12-5 18:21Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹