博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件测试作业3
阅读量:5821 次
发布时间:2019-06-18

本文共 5032 字,大约阅读时间需要 16 分钟。

软测作业三

Using the following method printPrimes() for questions a-d below

package com.twt.test;public class Prime {    private static final int MAXPRIMES = 20;    /*******************************************************     * Finds and prints n prime integers     * Jeff Offutt, Spring 2003     ******************************************************/    public String 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.        StringBuilder builder = new StringBuilder();        for (int i = 0; i <= numPrimes - 1; i++)        {            builder.append(i);            builder.append(" ");        }        return builder.toString();    } // end printPrimes}

控制流图

943738-20180325152923010-140324728.jpg

问题b

Consider test cases t1=(n=3) and t2=(n=5). Although these tour the same prime paths in ptinrPrimes(), they do not necessarily find the same faults. Design a simple fault that t2 would be more likely to discover than t1 would.

当MAXPRIMES = 3或4时,t2 =(n = 5)将溢出并且t1 =(n = 3)不会。

问题c

For printPrimes(), find a test case such that the corresponding test path visits the edge that connects the beginning of the while statement to the for statement withtout going through the body of the while loop.

当n = 1时,满足要求的边(2,12)。

问题d

Enumerate the test requirements for node coverage, edge coverage, amd prime path coverage for the graph fpr printPrime().

节点覆盖

TR = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

边覆盖

TR = {(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)};

主路径覆盖

TR = {[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,12,13,14,15], [1,2,12,13,16],

[2,3,4,5,6,8,9,10,11,2], [3,4,5,6,8,9,10,11,2,3], [4,5,6,8,9,10,11,2,3,4], [5,6,8,9,10,11,2,3,4,5],

[6,8,9,10,11,2,3,4,5,6], [8,9,10,11,2,3,4,5,6,8], [9,10,11,2,3,4,5,6,8,9], [10,11,2,3,4,5,6,8,9,10],

[11,2,3,4,5,6,8,9,10,11],

[2,3,4,5,6,8,9,11,2], [3,4,5,6,8,9,11,2,3], [4,5,6,8,9,11,2,3,4], [5,6,8,9,11,2,3,4,5],

[6,8,9,11,2,3,4,5,6], [8,9,11,2,3,4,5,6,8], [9,11,2,3,4,5,6,8,9], [11,2,3,4,5,6,8,9,11],

[2,3,4,5,9,10,11,2], [3,4,5,9,10,11,2,3], [4,5,9,10,11,2,3,4], [5,9,10,11,2,3,4,5],

[9,10,11,2,3,4,5,9], [10,11,2,3,4,5,9,10], [11,2,3,4,5,9,10,11],

[2,3,4,5,9,11,2], [3,4,5,9,11,2,3], [4,5,9,11,2,3,4], [5,9,11,2,3,4,5], [9,11,2,3,4,5,9],

[11,2,3,4,5,9,11],

[13,14,15,13], [14,15,13,14], [15,13,14,15],

[5,6,7,5], [6,7,5,6], [7,5,6,7],

[3,4,5,9,11,2,12,13,16], [3,4,5,9,10,11,2,12,13,16], [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,6,8,9,11,2,12,13,14,15],

[3,4,5,6,8,9,10,11,2,12,13,14,15],

[6,7,5,9,11,2,3,4], [6,7,5,9,10,11,2,3,4], [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],

[7,5,6,8,9,11,2,3,4], [7,5,6,8,9,10,11,2,3,4], [7,5,6,8,9,11,2,12,13,14,15],

[7,5,6,8,9,10,11,2,12,13,14,15], [7,5,6,8,9,11,2,12,13,16], [7,5,6,8,9,10,11,2,12,13,16],

[8,9,11,2,3,4,5,6,7], [8,9,10,11,2,3,4,5,6,7],

[14,15,13,16] };

测试样例以及覆盖率

package com.twt.test;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import java.util.Arrays;import java.util.Collection;import static org.junit.Assert.*;@RunWith(Parameterized.class)public class TestPrime {    private String expected = "";    private Prime testPrime;    private int n;    public TestPrime(int num, String expec) {        n = num;        expected = expec;    }    @Before    public void init() {        testPrime = new Prime();    }    @Test    public void test() {        assertEquals(this.expected, testPrime.printPrimes(this.n));    }    @Parameterized.Parameters    public static Collection
getData() { return Arrays.asList(new Object[][]{// {2, "2 3 "},// {3, "2 3 5 "} {4,"2 3 5 7"} }); }}

通过参数化测试来进行多组数据的测试

当仅有 {2, "2 3 "}的时候
代码覆盖率不能达到100%
943738-20180325153509459-272249736.png

加入更多的测试样例

{2, "2 3 "},                {3, "2 3 5 "},                {4,"2 3 5 7"}

943738-20180325153559873-910409934.png

转载于:https://www.cnblogs.com/retrox/p/8644911.html

你可能感兴趣的文章
Online Patching--EBS R12.2最大的改进
查看>>
Binary Search Tree Iterator leetcode
查看>>
uva-317-找规律
查看>>
Event事件的兼容性(转)
查看>>
我的2014-相对奢侈的生活
查看>>
zoj 2412 dfs 求连通分量的个数
查看>>
Java设计模式
查看>>
一文读懂 AOP | 你想要的最全面 AOP 方法探讨
查看>>
Spring Cloud 微服务分布式链路跟踪 Sleuth 与 Zipkin
查看>>
ORM数据库框架 SQLite 常用数据库框架比较 MD
查看>>
华为OJ 名字美丽度
查看>>
微信公众号与APP微信第三方登录账号打通
查看>>
onchange()事件的应用
查看>>
Windows 下最佳的 C++ 开发的 IDE 是什么?
查看>>
软件工程师成长为架构师必备的十项技能
查看>>
python 异常
查看>>
百度账号注销
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
BIEE Demo(RPD创建 + 分析 +仪表盘 )
查看>>
Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程
查看>>