51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5233|回复: 19
打印 上一主题 下一主题

[原创] 乡亲们;使用基本路径法测试后,还要使用逻辑覆盖法测试吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-12-30 08:55:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,单元白盒测试的方法主要有逻辑覆盖法和基本路径法,基本路径法使用的比较多一些,那么采用基本路径法测试完之后,还要再用逻辑覆盖法测试一遍吗?
   注:偶是新人,也是测试部门唯一的测试人员,处境十分尴尬,还请大家多多赐教,关于单元测试还想多多听一下大家的经验,来吧 同志们!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-12-30 08:56:16 | 只看该作者
我顶
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-12-30 08:56:42 | 只看该作者
我顶{:4_84:}
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-12-30 08:56:59 | 只看该作者
我再顶!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-12-30 09:27:03 | 只看该作者
可以用其他方法验证下,以防遗漏
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-12-30 11:18:41 | 只看该作者
回复 5# zllphoenix

楼上好像没看懂我的意思啊,我的意思是,对于一个函数,对它进行白盒测试时,是必须要用逻辑覆盖和基本路径法都进行测试,还是可以任选一种呢?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2011-1-1 16:22:15 | 只看该作者
楼主应该没有系统地学过测试吧?路径覆盖既然不能包括逻辑覆盖,那么就肯定是侧重的方面不一样。所以,还是做一下逻辑覆盖的好
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2011-1-1 20:48:55 | 只看该作者
回复 1# liuwenxiang6948 [/
楼主似乎不知道基本路径测试和逻辑覆盖测试的区别在哪儿。基本路径测试仅仅是测试程序的基本路径,说白了就是设计测试用例,使得程序的所有路径都跑一遍,但程序的逻辑是否正确,这个方法是看不出来的,如果程序的逻辑是错的,那么你的基本路径也就谈不上是正确的了。这就像做性能测试,你得首先保证程序的功能是正确的,然后你的性能测试才是有意义的。逻辑覆盖测试主要是验证程序的逻辑判断条件是否正确,所以这两种方法一般都会做,当然,如果你的逻辑覆盖方法的逻辑覆盖率很高,基本路径可以不去做。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2021-6-9 14:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2011-1-2 15:10:02 | 只看该作者
    比较一下两者的优缺点,再研究一下两者适用的情况。然后估计也就有答案了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2011-1-4 16:50:21 | 只看该作者
    回复 8# wangsc_testing

    前辈的意思是逻辑覆盖法一定要做,基本路径法可以不做喽?刚开始学测试,有点焦头烂额,想问一下,前辈是怎么进行单元测试的呢?我现在的思路是:先进行代码走读,代码走读完成后,由开发人员设计测试用例,然后由测试人员执行测试。这里有个问题,每个函数都要设计测试用例吗?我们是做嵌入式的,用的是C语言。一个模块的函数有至少100多个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2011-1-4 17:02:13 | 只看该作者
    回复 8# wangsc_testing

    前辈的意思是逻辑覆盖法一定要做,基本路径法可以不做喽?刚开始学测试,有点焦头烂额,想问一下,前辈是怎么进行单元测试的呢?我现在的思路是:先进行代码走读,代码走读完成后,由开发人员设计测试用例,然后由测试人员执行测试。这里有个问题,每个函数都要设计测试用例吗?我们是做嵌入式的,用的是C语言。一个模块的函数有至少100多个
        再补充一下,项目的时间并不是十分充裕,在这种情况下,如何高质量的完成测试呢?前辈多多指教
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2011-1-4 22:32:43 | 只看该作者
    回复 10# liuwenxiang6948
    基本路径覆盖测试类似于逻辑判断覆盖中的语句覆盖,语句覆盖式要求程序的每个语句有得到执行,而基本路径覆盖是要求程序的所有路径得到执行,且每个路径中不能包含重复的路径。单元测试不一定需要对每个函数进行单元测试,可以把某个类当做一个测试单元,一个程序中所包含的函数太多了,没有必要对每个函数设计单元测试,除非你的系统是军事系统或航天系统。单元测试一般由开发人员自行测试,毕竟代码是开发人员写的,他们自己更熟悉。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-1-5 10:35:59 | 只看该作者
    你可以根据你的实际情况进行选择,每种方法都有它的缺点和优点,测试之前先做好方案和计划,合理规划自己的测试任务,我觉得才是首要的,至于用什么方法和工具,反倒是次要的。所以不要纠结于是用基本路径还是逻辑覆盖,没有必要。
    个人愚见,仅供参考
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2011-1-5 14:49:19 | 只看该作者
    回复 8# wangsc_testing

    那么,如果采用逻辑覆盖法进行测试,覆盖的标准一般是什么呢?也就是一般最常用哪种覆盖方法?分置覆盖还是条件覆盖,还是其他?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2011-1-5 14:55:42 | 只看该作者
    回复 13# sakuna

    可怜的是我们并没有什么测试计划,更谈不上方案了,现实是就是这么残酷,一大堆代码就这么被放到你的面前,经理说:“你要配合开发人员做好测试,尽量把测试做好,具体细节你来定”。然而开发人员也不会测试...我急啊!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2011-1-5 14:59:16 | 只看该作者
    回复 12# wangsc_testing

    我们用的是C语言,好像没有‘类’这一说吧?另外,据说白盒测试最常用的方法是基本路径法啊,我也感觉貌似这样方法比较好用,前辈是侧重逻辑覆盖法吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2011-1-5 17:12:54 | 只看该作者
    回复 15# liuwenxiang6948


        虽然你介入比较晚,但是计划和方案还是要做的,我所说的并不是要你写一个多么正式的文档,你甚至可以不用写文档,大致思考一下的时间我想应该还是有的,我的时间有多少,我的资源有多少,我能做多少事情,我可以采用什么策略,心里应该还是要有个数的,这些工作不做的话,后续的困难会接踵而来。还是那句话不要纠结用哪种方法,单元测试的方法多了去了,选择哪种方法应该根据你项目的情况来考量,而不是看别人怎么做的,即便要看也只能参考
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2011-1-6 08:56:25 | 只看该作者
    回复 17# sakuna


        多谢!~看来我要先好好想一下了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2011-1-7 11:53:44 | 只看该作者
    回复 14# liuwenxiang6948
    白盒测试的方法很多,有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。逻辑覆盖法有语句覆盖(SC)、判定覆盖 (DC)、条件覆盖 (CC)、条件判定组合覆盖 (C DC)、多条件覆盖(MCC)、修改条件判定覆盖 (MCDC)。我觉得你应该先搞懂这些逻辑覆盖方法的概念,然后你会知道采用什么方法的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2011-1-7 12:04:44 | 只看该作者
    回复 16# liuwenxiang6948
    Z路径测试方法是挺好用,但是有弊端啊,比如下面的程序
    if(a && b)
        system.out.print(......)
    else
        system.out.print(......)
    很显然,程序要求当a和b都为真的时候才执行上面的输出语句,都为假的时候执行下面的语句。
    那么如果开发人员写成了下面这样,你还继续使用路径测试就有漏洞
    if(a || b)
        system.out.print(......)
    else
        system.out.print(......)
    当a为真或b为真,系统就执行上面的了,a和b同时为假的时候,系统执行了下面的语句。
    这两个路径都测试了,但你测试不出开发人员把(a && b)写成了(a || b)。所以一般先进行逻辑覆盖测试,后进行路径测试
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-28 02:33 , Processed in 0.087615 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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