• 第4章 白盒测试


    一、概述

    1.白盒测试

    2.控制流测试

    二、代码覆盖

    1.语句覆盖

    2.判定覆盖

    3.条件覆盖

    4.条件组合覆盖

    5.判定条件覆盖

    6.循环覆盖

    7.路径覆盖

    二、McCabe圈复杂度

    三、控制流测试练习

    ======================================================

    练习:

    1.白盒测试依据详细设计文档,利用不同的逻辑覆盖率达到某种程度的()。

    2.软件测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。()

    3.以下哪项不是白盒测试的缺点()。

    A.白盒测试投入较大,成本较高

    B.白盒测试不验证规格的正确性

    C.测试用例之间可能存在严重的冗余。

    D.无法检查代码中遗漏的路径和数据敏感性错误

    4.单元中的控制流,指的是程序中语句的()。

    5.代码覆盖率是软件测试中的一种度量,描述程序中()被测试的比例和程度。

    6.代码覆盖率包括()、判定覆盖、条件覆盖、条件组合覆盖、()、循环覆盖、路径覆盖。

    7.语句覆盖是选择足够的测试用例,使得被测代码中()都至少执行一次。

    8.判定覆盖是选择足够的测试用例,使得()的可能结果至少出现一次。

    9.条件覆盖是选择足够的测试用例,使得判定中的()可能取值至少满足一次。

    10.条件组合覆盖是选择足够的测试用例,使得每个判定中条件的()都至少出现一次。

    11.if(A>0) && (B<0),请问使用判定条件覆盖法,需要准备哪些测试数据?

    12.if(a or b) and c then,请问使用判定条件覆盖法,需要准备哪些测试数据?

    13.对于循环路径来说,测试循环()次、1次、最大次和最大次+1。

    14.对于带循环的函数来说,()覆盖是很困难的。

    15.路径覆盖能够保证条件组合覆盖。()

    16.已知一个简单的C#程序,代码如下。该程序接受一个整数输入,输出该整数的阶乘。(1)请设计测试用例,达到语句覆盖、分支覆盖、循环覆盖。(2)使用McCabe圈复杂度方法,设计测试用例。

    static void Main(string[] args)
    {
        int i, n, f;
        Console.Write("n=");
        n=Convert.ToInt32(Console.ReadLine());
        if(n<0)
        {
            Console.WriteLine("Invalid:{0}", n);
            n=-1;
         }
        else
        {
            f=1;
            for(i=1;i<=n;i++)
            {
                f *=i;
            }
           Console.WriteLine("{0}!={1}.", n, f);
         }
    }

    17.()用来度量基于控制流的程序单元复杂度。

    18.McCabe圈复杂度,需要绘制一个描述当前被测试单元的()来度量圈复杂度。

    19.McCabe圈复杂度的有向图中,节点代表入口、出口以及(),边代表()。

    20.McCabe高圈复杂度的模块本质上来说不容易出错,不容易回归。

    21.McCabe圈复杂度的数值等同于图中存在的(),也就是等同于你要想覆盖整个图所需要进行的测试次数。

    22.已知被测对象为一个简单的C#程序,代码如下,它把十六进制字符输入转换到相应的整型数。

    (1)使用语句、分支、条件、循环的全覆盖创建一套测试用例集合。

    (2)计算McCabe复杂性,写出基本路径,并创建基本测试。

     1             string input = Console.ReadLine();
     2             char[] values = input.ToCharArray();
     3             uint hexnum, nhex;
     4             hexnum = 0;
     5             nhex = 0;
     6             foreach (char letter in values)
     7             {
     8                 switch (letter)
     9                 {
    10                     case '0':
    11                     case '1':
    12                     case '2':
    13                     case '3':
    14                     case '4':
    15                     case '5':
    16                     case '6':
    17                     case '7':
    18                     case '8':
    19                     case '9':
    20                         /* Convert a decimal digit */
    21                         nhex++;
    22                         hexnum *= 0x10;
    23                         hexnum += Convert.ToUInt32(letter - '0');
    24                         break;
    25                     case 'a':
    26                     case 'b':
    27                     case 'c':
    28                     case 'd':
    29                     case 'e':
    30                     case 'f':
    31                         /* Convert a lower case hex digit */
    32                         nhex++;
    33                         hexnum *= 0x10;
    34                         hexnum += Convert.ToUInt32(letter - 'a' + 0xa);
    35                         break;
    36                     case 'A':
    37                     case 'B':
    38                     case 'C':
    39                     case 'D':
    40                     case 'E':
    41                     case 'F':
    42                         /* Convert a lower case hex digit */
    43                         nhex++;
    44                         hexnum *= 0x10;
    45                         hexnum += Convert.ToUInt32(letter - 'A' + 0xA);
    46                         break;
    47                     default:
    48                         /* Skip any non-hex characters */
    49                         break;
    50                 }
    51             }
    52             Console.WriteLine("Got {0} hex digits: {1:X}
    ", nhex, hexnum);
    53 
    54 
    55             Console.WriteLine("now is:{0}", hexnum);
    56         }
    57     }
  • 相关阅读:
    我这样来解决CSS的Bug
    JavaScript 获取客户端计算机硬件及系统信息
    asp.net Excel导入&导出
    C#编码好习惯
    解决ASP.NET“类型初始值设定项引发异常”
    使cookie在关闭浏览器后失效
    C# 实现Epson热敏打印机打印 Pos机用
    设计模式的主要设计原则简介
    string .format 生成类似20090409001的序号
    SEO中链接的微处理
  • 原文地址:https://www.cnblogs.com/meetyy/p/3762345.html
Copyright © 2020-2023  润新知