文章收藏-FAQ 位置:电脑学习网

谈谈关于测试覆盖举例介绍

    软件测试覆盖包括分支覆盖,语句覆盖以及条件覆盖,这是白盒测试中一个很基本的测试概念,但是最近和几位搞了多年测试的朋友谈及此事,大家都搞不大清楚。下面我通过一个例子来深入探讨一下这个问题:

    我们首先来看一下这几些测试覆盖的定义:

    定义一、语句覆盖:它要求被测程序的每一可执行语句在测试中尽可能都检验过;
    定义二、分支覆盖:要求程序中所有判定的分支尽可能得到检验;
    定义三、条件覆盖:当判定式中含有多个条件时,要求每个条件的取值均得到检验;
     从这些定义我们可以很容易理解到语句覆盖是把程序中的所有的语句都给覆盖到;分支覆盖是把程序中每个分支都给覆盖到;条件覆盖是把判断条件中所有的条件都给覆盖到。

    下面我们通过一个简单的例子来描述一下

    0:
    1:if ((a<150)||(b<200)){
    2: for (i=a;i<100;i++)
    3: {
    4: println(“A”);}
    5:}else{
    6:println (“B”);
    7:}


    分支覆盖:
    1)在0处设置a=120,b 任意
    将执行1,2,5
    2)在0处设置a=200,b=400
    将执行1,5,6,7
    这里所有的分支都走到,也就是说要达到分支覆盖率100%,要设计2组测试用例

     a          b
    120      任意
    200      400

    语句覆盖:
    1)在0处设置a=40,b 任意
    将执行1,2,3,4,5
    2)在0处设置a=200,b=400
    将执行1,5,6,7
    这里所有的语句都走到了,也就是说要达到语句覆盖率100%,要设计2组测试用例

    a                   b
    40                任意
    200              400

    而在分支覆盖中语句3,4没有走到

    条件覆盖:
    由于第一个条件是if ((a<150)||(b<200)) 所以需要设计测试用例

    a                    b                  备注
    40                  50                全部满足
    160                150              a不满足,b满足
    40                  250              a满足,b不满足
    150                250              a,b都不满足

    条件覆盖只要求把所有的条件都覆盖就可以了。

    这样一来我们就把这几个概念搞得很清楚了。

    顺便我在这里想说一句心里话,我们现在的不管是书籍还是网站上的文章都太倾向于理论了,而到实际运用上来就说不清楚了,我希望能够有更多又讲理论又讲实践的文章和书籍能够出现。

     [文章来源:“十万个为什么”电脑学习网]
     [网络地址:http://why100000.com]
     [版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
 

【字体:[大] [中] [小] 【加入收藏】 【发表评论】 【关闭本窗口】

Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com  QQ:9365822