• 软件测试4


    Use the following method printPrimes() for questions a–d.

    题目代码如下:

    /******************************************************* 
         * 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 (isDivisable(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

    a.控制流图

    b.令MAXPRIMES=4,这样t2会测试出越界错误,t1不会。

    c.输入n=1

    d.

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

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

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

    一个主路径覆盖的例子

    import static org.junit.Assert.*;
    
    import org.junit.Before;
    
    
    public class Test {
        Statistics s;
        int a[];
        @Before
        public void setUp(){
             s=new Statistics();
             a= new int[]{1,2,3};
            }
    
        @org.junit.Test
        public void test() {
            assertEquals(1.0,s.calVar(a),0.001);
        }
    
    }
    Test,java
    public class Statistics {
        
        /**
         * 
         * @param numbers
         * @return the length of the array
         */
        public int calLength(int[] numbers) {
            int length = numbers.length;
            
            return length;
        }
    
        /**
         * 
         * @param numbers
         * @return the mean value of the array
         */
        
        public double calMean(int[] numbers) {
            int length = calLength(numbers);
            
            double sum;
            sum = 0.0;
            for (int i = 0; i < length; i++) {
                sum += numbers[i];
            }
            double mean = sum / (double) length;
            
            return mean;
        }
    
        /**
         * 
         * @param numbers
         * @return the var value of the array
         */
        public double calVar(int[] numbers) {
            int length = calLength(numbers);
            double mean = calMean(numbers);
            
            double varsum = 0.0;
            for (int i = 0; i < length; i++) {
                varsum = varsum + ((numbers[i] - mean) * (numbers[i] - mean));
            }
            double var = varsum / (length - 1.0);
            
            return var;
        }
    
    }
    Statistics.java

  • 相关阅读:
    C# 一个用到WPF 和 反射的例子.
    Html 效果之 A 标签.
    HttpModule 的权限管理
    C# 入门经典示例.
    CSS 圆角边框
    .NET 平台文件去除行号
    C#调用WinApi关闭电脑屏幕含自动监视有无输入活动检测
    还是XP好啊
    SQL执行效率测试语句
    自用SqlHelper
  • 原文地址:https://www.cnblogs.com/wh-tju/p/5335576.html
Copyright © 2020-2023  润新知