zoukankan      html  css  js  c++  java
  • 软件测试(四)主路径覆盖hw3

    原题中代码

    /******************************************************* 
         * Finds and prints n prime integers 
         * Jeff Offutt, Spring 2003 
         ******************************************************/ 
        public static void printPrimes (int n) 
        { 
            int curPrime; // Value currently considered for primeness 
            int numPrimes; // Number of primes found so far. 
            boolean isPrime; // Is curPrime prime? 
            int [] primes = new int [MAXPRIMES]; // The list of prime numbers. 
            
            // Initialize 2 into the list of primes. 
            primes [0] = 2; 
            numPrimes = 1; 
            curPrime = 2; 
            while (numPrimes < n) 
            { 
                curPrime++; // next number to consider ... 
                isPrime = true; 
                for (int i = 0; i <= numPrimes-1; i++) 
                { // for each previous prime. 
                    if (isDivisible(primes[i], curPrime)) 
                    { // Found a divisor, curPrime is not prime. 
                        isPrime = false; 
                        break; // out of loop through primes. 
                    } 
                } 
                if (isPrime) 
                { // save it! 
                    primes[numPrimes] = curPrime; 
                    numPrimes++; 
                } 
            } // End while 
            
            // Print all the primes out. 
            for (int i = 0; i <= numPrimes-1; i++) 
            { 
                System.out.println ("Prime: " + primes[i]); 
            } 
        } // end printPrimes

    控制流图

    b:数组越界即可,当MAXPRIMES == 4时,n=5会引发越界

    c:

    n= 1时,不满足numPrimes<n,所以指向12

    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),(13,16),(14,15),(15,13)}

    主路径覆盖{(1,2,3,4,5,6,7),  (1,2,3,4,5,6,8,9,11),   (1,2,3,4,5,6,8,9,10,11),   (1,2,3,4,5,9,11),   (1,2,3,4,5,9,10,11),   (1,2,12,13,14,15),   (1,2,12,13,16),   (3,4,5,6,8,9,11,2,12,13,14,15), (3,4,5,6,8,9,10,11,2,12,13,14,15),   (3,4,5,6,8,9,11,2,12,13,16),   (3,4,5,6,8,9,10,11,2,12,13,16),   (3,4,5,9,11,2,12,13,14,15),   (3,4,5,9,10,11,2,12,13,14,15), (3,4,5,9,11,2,12,13,16),   (3,4,5,9,10,11,2,12,13,16),   (6,7,5,9,11,2,12,13,14,15),   (6,7,5,9,10,11,2,12,13,14,15),  (6,7,5,9,11,2,12,13,16),  (6,7,5,9,10,11,2,12,13,16), (14,15,13,16),  (13,14,15,13),   (5,6,7,5),   (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)
    }

    设计主路径覆盖

    第一次试验中的三角形已完成完全覆盖

    Tri类

    package stlab1;
    
    public class Tri {
        public static String isTri(double a,double b,double c)
        {
            if (b >= a && b >= c)
            {
                double temp = b;
                b = a;
                a = temp;
                
            }
            if (c >= a && c >= b)
            {
                double temp = c;
                c = a;
                a = temp;            
            }
            if (b + c <= a)
                return "不是三角形";
            if (a == b && b == c)
                return "等边三角形";
            if (a == b || b == c || a == c)
            {
                return "等腰三角形";
            }
                
            if (a * a == b * b + c * c)
                return "直角三角形";
            return "一般三角形";
        }
    }

    test类

    package stlab1;
    
    import static org.junit.Assert.*;
    
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    public class TriTest {
    
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
        }
    
        @AfterClass
        public static void tearDownAfterClass() throws Exception {
        }
    
        @Before
        public void setUp() throws Exception {
        }
    
        @After
        public void tearDown() throws Exception {
        }
    
        @Test
        public void test() {
            Tri tri = new Tri();
            assertEquals("等边三角形",tri.isTri(1, 1, 1));
            assertEquals("不是三角形",tri.isTri(0, 1, 2));
            assertEquals("直角三角形",tri.isTri(3, 4, 5));
            assertEquals("等腰三角形",tri.isTri(3, 3, 5));
            assertEquals("一般三角形",tri.isTri(4, 6, 7));
            assertEquals("等腰三角形",tri.isTri(4, 4, 2));
            assertEquals("等腰三角形",tri.isTri(3, 2, 2));
            
        }
    
    }

  • 相关阅读:
    二进制回复操作
    日志和备份介绍
    mraiadb查
    mraiadb增三删改
    mardb基本操作
    redis搭建主从和多主
    ldd 查看符号找不到
    一个声明指定了多个类型
    word中为选定文本加边框和底纹
    ue配置lua语法高亮
  • 原文地址:https://www.cnblogs.com/Durandal/p/5339726.html
Copyright © 2011-2022 走看看