51Testing软件测试论坛

标题: 乡亲们;使用基本路径法测试后,还要使用逻辑覆盖法测试吗? [打印本页]

作者: liuwenxiang6948    时间: 2010-12-30 08:55
标题: 乡亲们;使用基本路径法测试后,还要使用逻辑覆盖法测试吗?
如题,单元白盒测试的方法主要有逻辑覆盖法和基本路径法,基本路径法使用的比较多一些,那么采用基本路径法测试完之后,还要再用逻辑覆盖法测试一遍吗?
   注:偶是新人,也是测试部门唯一的测试人员,处境十分尴尬,还请大家多多赐教,关于单元测试还想多多听一下大家的经验,来吧 同志们!
作者: liuwenxiang6948    时间: 2010-12-30 08:56
我顶
作者: liuwenxiang6948    时间: 2010-12-30 08:56
我顶{:4_84:}
作者: liuwenxiang6948    时间: 2010-12-30 08:56
我再顶!
作者: zllphoenix    时间: 2010-12-30 09:27
可以用其他方法验证下,以防遗漏
作者: liuwenxiang6948    时间: 2010-12-30 11:18
回复 5# zllphoenix

楼上好像没看懂我的意思啊,我的意思是,对于一个函数,对它进行白盒测试时,是必须要用逻辑覆盖和基本路径法都进行测试,还是可以任选一种呢?
作者: vipwork    时间: 2011-1-1 16:22
楼主应该没有系统地学过测试吧?路径覆盖既然不能包括逻辑覆盖,那么就肯定是侧重的方面不一样。所以,还是做一下逻辑覆盖的好
作者: wangsc_testing    时间: 2011-1-1 20:48
回复 1# liuwenxiang6948 [/
楼主似乎不知道基本路径测试和逻辑覆盖测试的区别在哪儿。基本路径测试仅仅是测试程序的基本路径,说白了就是设计测试用例,使得程序的所有路径都跑一遍,但程序的逻辑是否正确,这个方法是看不出来的,如果程序的逻辑是错的,那么你的基本路径也就谈不上是正确的了。这就像做性能测试,你得首先保证程序的功能是正确的,然后你的性能测试才是有意义的。逻辑覆盖测试主要是验证程序的逻辑判断条件是否正确,所以这两种方法一般都会做,当然,如果你的逻辑覆盖方法的逻辑覆盖率很高,基本路径可以不去做。
作者: 千里    时间: 2011-1-2 15:10
比较一下两者的优缺点,再研究一下两者适用的情况。然后估计也就有答案了
作者: liuwenxiang6948    时间: 2011-1-4 16:50
回复 8# wangsc_testing

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

前辈的意思是逻辑覆盖法一定要做,基本路径法可以不做喽?刚开始学测试,有点焦头烂额,想问一下,前辈是怎么进行单元测试的呢?我现在的思路是:先进行代码走读,代码走读完成后,由开发人员设计测试用例,然后由测试人员执行测试。这里有个问题,每个函数都要设计测试用例吗?我们是做嵌入式的,用的是C语言。一个模块的函数有至少100多个
    再补充一下,项目的时间并不是十分充裕,在这种情况下,如何高质量的完成测试呢?前辈多多指教
作者: wangsc_testing    时间: 2011-1-4 22:32
回复 10# liuwenxiang6948
基本路径覆盖测试类似于逻辑判断覆盖中的语句覆盖,语句覆盖式要求程序的每个语句有得到执行,而基本路径覆盖是要求程序的所有路径得到执行,且每个路径中不能包含重复的路径。单元测试不一定需要对每个函数进行单元测试,可以把某个类当做一个测试单元,一个程序中所包含的函数太多了,没有必要对每个函数设计单元测试,除非你的系统是军事系统或航天系统。单元测试一般由开发人员自行测试,毕竟代码是开发人员写的,他们自己更熟悉。
作者: sakuna    时间: 2011-1-5 10:35
你可以根据你的实际情况进行选择,每种方法都有它的缺点和优点,测试之前先做好方案和计划,合理规划自己的测试任务,我觉得才是首要的,至于用什么方法和工具,反倒是次要的。所以不要纠结于是用基本路径还是逻辑覆盖,没有必要。
个人愚见,仅供参考
作者: liuwenxiang6948    时间: 2011-1-5 14:49
回复 8# wangsc_testing

那么,如果采用逻辑覆盖法进行测试,覆盖的标准一般是什么呢?也就是一般最常用哪种覆盖方法?分置覆盖还是条件覆盖,还是其他?
作者: liuwenxiang6948    时间: 2011-1-5 14:55
回复 13# sakuna

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

我们用的是C语言,好像没有‘类’这一说吧?另外,据说白盒测试最常用的方法是基本路径法啊,我也感觉貌似这样方法比较好用,前辈是侧重逻辑覆盖法吗?
作者: sakuna    时间: 2011-1-5 17:12
回复 15# liuwenxiang6948


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


    多谢!~看来我要先好好想一下了
作者: wangsc_testing    时间: 2011-1-7 11:53
回复 14# liuwenxiang6948
白盒测试的方法很多,有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。逻辑覆盖法有语句覆盖(SC)、判定覆盖 (DC)、条件覆盖 (CC)、条件判定组合覆盖 (C DC)、多条件覆盖(MCC)、修改条件判定覆盖 (MCDC)。我觉得你应该先搞懂这些逻辑覆盖方法的概念,然后你会知道采用什么方法的
作者: wangsc_testing    时间: 2011-1-7 12:04
回复 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)。所以一般先进行逻辑覆盖测试,后进行路径测试




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2