白盒测试方法-覆盖

白盒测试方法-覆盖

ID:11563658

大小:168.00 KB

页数:6页

时间:2018-07-12

白盒测试方法-覆盖_第1页
白盒测试方法-覆盖_第2页
白盒测试方法-覆盖_第3页
白盒测试方法-覆盖_第4页
白盒测试方法-覆盖_第5页
资源描述:

《白盒测试方法-覆盖》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、白盒测试方法逻辑覆盖一、语句覆盖二、判定覆盖三、条件覆盖四、判定-条件覆盖五、路径覆盖逻辑覆盖结构测试是依据被测程序的逻辑结构设计测试用例,驱动被测程序运行完成的测试。结构测试中的一个重要问题是,测试进行到什么地步就达到要求,可以结束测试了。这就是说需要给出结构测试的覆盖准则。以下给出的几种逻辑覆盖测试方法都是从各自不同的方面出发,为设计测试用例提出依据的。IF((A>1)AND(B=0))THENX=X/AIF((A=2)OR(X>1)THENX=X+1其中“AND”和“OR”是两个逻辑运算符。图1给出了它的流程图。a、b、c、d和e是控制流上的若干程序点。一、语句覆盖

2、语句覆盖的含意是,在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。这时所谓“若干个”,自然是越少越好。在上述程序段中,我们如果选用的测试用例是:A=2B=0………………CASE1X=3则程序按路径ace执行。这样该程序段的4个语句均得到执行,从而作到了语句覆盖。但如果选用的测试用例是:A=2B=1………………CASE2X=3程序按路径abe执行,便未能达到语句覆盖。从程序中每个语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面地检验每一个语句。但它也绝不是完美无缺的。假如这一程序段中两个判断的逻辑运算有问题,例如,第一个判断

3、的运算符“AND”错成运算符“OR”或是第二个判断中的运算符“OR”错成了运算符“AND”。这时仍使用上述前一个测试用例CASE1,程序仍将按路径ace执行。这说明虽然也作到了语句覆盖,却发现不了判断中逻辑运算的错误。此外,我们还可以很容易地找出已经满足了语句覆盖,却仍然存在错误的例子。如有一程序段:…IF(I≥0)THENI=J…如果错写成:…IF(I>0)THENI=J…假定给出的测试数据确使执行该程序段时I的值大于0,则I被赋予J的值,这样虽然作到了语句覆盖,然而掩盖了其中的错误。实际上,和后面介绍的其它几种逻辑覆盖比较起来,语句覆盖是比较弱的覆盖原则。作到了语句覆

4、盖可能给人们一种心理的满足,以为每个语句都经历过,似乎可以放心了。其实这仍然是不十分可靠的。语句覆盖在测试被测程序中,除去对检查不可执行语句有一定作用外,并没有排除被测程序包含错误的风险。二、判定覆盖按判定覆盖准则进行测试是指,设计若干测试用例,运行被侧程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。仍以上述程序段为例,若选用的两组测试用例是:A=2B=0………………CASE1X=3A=1B=0………………CASE3X=1则可分别执行路径ace和abd,从而使两个判断的4个分支c、e和b、d分别得到覆盖。当然,我

5、们也可以选用另外两组测试用例:A=3B=0………………CASE4X=3A=2B=1………………CASE5X=1分别路径acd及abe,同样也可覆盖4个分支。我们注意到,上述两组测试用例不仅满足了判定覆盖,同时还做到语句覆盖。从这一点看似乎判定覆盖比语句覆盖更强一些,但让我们设想,在此程序段中的第2个判断条件X>1如果错写成X<1,使用上述测试用例CASE5,照样能按原路径执行(abe),而不影响结果。这个事实说明,只作到判定覆盖仍无法确定判断内部条件的错误。因此,需要有更强的逻辑覆盖准则去检验判断内的条件。以上仅考虑了两出口的判断,我们还应把判定覆盖准则扩充到多出口判断(

6、如CASE语句)的情况。三、条件覆盖条件覆盖是指,设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。在上述程序段中,第一个判断应考虑到:A>1,取真值,记为T1A>1,取假值,即A≤1,记为F1B=0,取真值,记为T2B=0,取假值,即B≠0,记为F2第2个判断应考虑到:A=2,取真值,记为T3A=2,取假值,即A≠2,记为F3X>1,取真值,记为T4X>1,取假值,即X≤1,记为F4我们给出3个测试用例:CASE6,CASE7,CASE8,执行该程序段所走路径及覆盖条件是:从这个表中可以看到,3个测试用例把4个条件的8种情况均作了覆盖。进

7、一步分析上表,覆盖了4个条件的8种情况的同时,把两个判断的4个分支b、c、d和e似乎也被覆盖。这样我们是否可以说,做到了条件覆盖,也就必然实现了判定覆盖呢?让我们来分析另一情况,假定选用两组测试用例是CASE9和CASE8,执行程序段的覆盖情况是:这一覆盖情况表明,覆盖了条件的测试用例不一定覆盖了分支。事实上,它只覆盖了4个分支中的两个。为解决这一矛盾,需要对条件和分支兼顾。四、判定-条件覆盖判定-条件覆盖要求设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。例中两个判断各

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。