• 软件测试基础homework3


    //本次的作业为
    /**
    ***************************************************** * 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 (curPrime%primes[i]==0) { // 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

    一、画出控制流图

    二、设计一个t2=(n=5)比t1=(n=3)容易发现发现的错误

    数组越界的错误。

    三、写一个测试用例,使相应的测试路径访问连接while语句开始到fot语句得边,而不用通过while的循环体

    t:n=1

    四、例举每个节点覆盖,边覆盖和主路径覆盖的TR

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

    边覆盖需求:{(1,2),(2,3),(3,5),(5,6),(6,7),(7,8),(7,9),(9,6),(8,10),(6,10),(10,11),(10,12),(11,2),(12,2),(2,4),(4,13),(13,14),(14,15),(14,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,16),

    (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),

    (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),

    (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),

    }

    五、实现一个主路径覆盖的测试

    package example;
    
    /**
     * Created by Ev_Eraser on 2016/3/18.
     */
    public class Myclass {
        public String triangle(int a,int b,int c) {
            if(a + b < c || a + c < b || b+ c < a)
                return "notTriangle";
            if(a == b && b == c)
                return "isosceles";
            if(a == b || b == c || a == c)
                return "equilateral";
            else
                return "scalene";
        }
    }

    测试类用例:

    package example;
    
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junit.runners.Parameterized;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    
    import static org.junit.Assert.*;
    @RunWith(Parameterized.class)
    public class MyclassTest {
        private Myclass myClass;
        private int input1;
        private int input2;
        private int input3;
        private String expected;
    
        public MyclassTest(int input1, int input2,int input3,String expected){
            this.input1 = input1;
            this.input2 = input2;
            this.input3 = input3;
            this.expected = expected;
    
        }
        @Before
        public void setUp() throws Exception {
            myClass = new Myclass();
        }
    
    @Parameterized.Parameters
        public static Collection<Object[]> getData(){
        return Arrays.asList(new Object[][]{
                {2,2,2,"isosceles"},
                {2,2,3,"equilateral"},
                {2,4,3,"scalene"},
                {2,9,2,"notTriangle"}
        });
        }
    
    //    @After
    //    public void tearDown() throws Exception {
    //
    //    }
    
        @Test
        public void testTriangle() throws Exception {
            assertEquals(this.expected, myClass.triangle(input1,input2,input3));
        }
    }

  • 相关阅读:
    访问控制与封装
    构造函数
    定义抽象数据类型
    函数基础
    参数传递
    路径中 斜杠/和反斜杠 的区别
    【git】Github上面的开源代码怎么在本地编译运行
    IDEA及IDEA汉化包
    Java设计模式——工厂设计模式
    "/"程序中的服务器错误
  • 原文地址:https://www.cnblogs.com/eraserNut/p/5334774.html
Copyright © 2020-2023  润新知