• 【软件测试】(homework3)覆盖问题


    使用方法printPrimes()完成(a)~(f)题:

    代码如下:

     1 /******************************************************* 
     2      * Finds and prints n prime integers 
     3      * Jeff Offutt, Spring 2003 
     4      ******************************************************/ 
     5     public static void printPrimes (int n) 
     6     { 
     7         int curPrime; // Value currently considered for primeness 
     8         int numPrimes; // Number of primes found so far. 
     9         boolean isPrime; // Is curPrime prime? 
    10         int [] primes = new int [MAXPRIMES]; // The list of prime numbers. 
    11         
    12         // Initialize 2 into the list of primes. 
    13         primes [0] = 2; 
    14         numPrimes = 1; 
    15         curPrime = 2; 
    16         while (numPrimes < n) 
    17         { 
    18             curPrime++; // next number to consider ... 
    19             isPrime = true; 
    20             for (int i = 0; i <= numPrimes-1; i++) 
    21             { // for each previous prime. 
    22                 if (isDivisible(primes[i], curPrime)) 
    23                 { // Found a divisor, curPrime is not prime. 
    24                     isPrime = false; 
    25                     break; // out of loop through primes. 
    26                 } 
    27             } 
    28             if (isPrime) 
    29             { // save it! 
    30                 primes[numPrimes] = curPrime; 
    31                 numPrimes++; 
    32             } 
    33         } // End while 
    34         
    35         // Print all the primes out. 
    36         for (int i = 0; i <= numPrimes-1; i++) 
    37         { 
    38             System.out.println ("Prime: " + primes[i]); 
    39         } 
    40     } // end printPrimes

    (a) 控制流图:

    (b) 考虑测试用例 t1=(n=3) 和 t2=(n=5),当一个错误是数组越界错误时,t2比t1更容易发现错误。

    (c) 当numPrimes < n时,会通过while循环体,所以当n=1时,可以不通过while循环。

    (d)

    节点覆盖:{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}

    边覆盖:{(1,2),(2,3),(2,12),(3,4),(4,5),(5,6),(5,9),(6,7),(6,8),(7,5),(8,9),(9,10),(9,11),(10,11),(11,2),(12,13),(13,14),(14,15),(15,13),(13,16)}

    主路经覆盖:

    {(1,2,3,4,5,6,7),

    (1,2,3,4,5,6,8,9,10,11),

    (1,2,3,4,5,6,8,9,11),

    (1,2,3,4,5,9,10,11),

    (1,2,3,4,5,9,11),

    (1,2,12,13,14,15),

    (1,2,12,13,16),

    (2,3,4,5,6,8,9,10,11,2),

    (2,3,4,5,6,8,9,11,2),

    (2,3,4,5,9,10,11,2),

    (2,3,4,5,9,11,2),

    (3,4,5,6,8,9,10,11,2,12,13,14,15),

    (3,4,5,6,8,9,11,2,12,13,14,15)

    (3,4,5,6,8,9,10,11,2,12,13,16)

    (3,4,5,6,8,9,11,2,12,13,16),

    (3,4,5,9,10,11,2,12,13,14,15),

    (3,4,5,9,11,2,12,13,14,15),

    (3,4,5,9,10,11,2,12,13,16),

    (3,4,5,9,11,2,12,13,16),

    (5,6,7,5),

    (6,7,5,9,10,11,2,12,13,14,15),

    (6,7,5,9,11,2,12,13,14,15),

    (6,7,5,9,10,11,2,12,13,16),

    (6,7,5,9,11,2,12,13,16),

    (14,15,13,16),

    (13,14,15,13),}

    *实现主路经覆盖的例子:

  • 相关阅读:
    [sql]mysql启停脚本
    [sh]函数+条件表达式
    【Qt开发】QT中显示图像数据
    【Qt开发】QT中显示图像数据
    【Qt开发】如何将内存图像数据封装成QImage V1
    【Qt开发】如何将内存图像数据封装成QImage V1
    【Qt开发】将内存图像数据封装成QImage V2
    【Qt开发】将内存图像数据封装成QImage V2
    【Qt开发】Qt中图像的显示与基本操作
    【Qt开发】Qt中图像的显示与基本操作
  • 原文地址:https://www.cnblogs.com/rosel/p/5338779.html
Copyright © 2020-2023  润新知