软件测试书上作业

/*******************************************************
     * 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循环的测试用例

n=1的时候就可以满足要求

问题四:要求找出点覆盖、边覆盖和主路径覆盖的所有TR

点覆盖:

{(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)}

边覆盖{(0,1),(1,2),(2,3,),(3,4),(4,5),(5,6),(6,7),

(7,8),(8,5),(5,9)(9,2),(9,10),(10,2),(2,11),

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

主路径覆盖:

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

(0,1,11,12,13,14),

(0,1,11,12,15),

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

(5,6,7,8,5),

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

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

问题五

对任意程序设计主路径覆盖的测试用例

public class Triangle {
    protected long lborderA = 0;

    protected long lborderB = 0;

    protected long lborderC = 0;

    // Constructor
    public Triangle(long lborderA, long lborderB, long lborderC) {

        this.lborderA = lborderA;

        this.lborderB = lborderB;

        this.lborderC = lborderC;

    }

    /**
     * check if it is a triangle
     *
     * @return true for triangle and false not
     */
    public boolean isTriangle(Triangle triangle) {
        boolean isTriangle = false;

        // check boundary
        if ((triangle.lborderA > 0 && triangle.lborderA <= Long.MAX_VALUE)
                && (triangle.lborderB > 0 && triangle.lborderB <= Long.MAX_VALUE)
                && (triangle.lborderC > 0 && triangle.lborderC <= Long.MAX_VALUE)) {

            // check if subtraction of two border larger than the third
            if (diffOfBorders(triangle.lborderA, triangle.lborderB) < triangle.lborderC
                    && diffOfBorders(triangle.lborderB, triangle.lborderC) < triangle.lborderA
                    && diffOfBorders(triangle.lborderC, triangle.lborderA) < triangle.lborderB) {
                isTriangle = true;
            }

        }
        return isTriangle;
    }

    /**
     * Check the type of triangle
     *
     * Consists of "Illegal", "Regular", "Scalene", "Isosceles"
     */
    public String getType(Triangle triangle) {
        String strType = "Illegal";

        if (isTriangle(triangle)) {
            // Is Regular
            if (triangle.lborderA == triangle.lborderB
                    && triangle.lborderB == triangle.lborderC) {
                strType = "Regular";
            }
            // If scalene
            else if ((triangle.lborderA != triangle.lborderB)
                    && (triangle.lborderB != triangle.lborderC)
                    && (triangle.lborderA != triangle.lborderC)) {
                strType = "Scalene";
            }
            // if isosceles
            else {
                strType = "Isosceles";
            }
        }

        return strType;
    }

    /**
     * calculate the diff between borders
     *
     * */
    public long diffOfBorders(long a, long b) {
        return (a > b) ? (a - b) : (b - a);
    }

    /**
     * get length of borders
     */
    public long[] getBorders() {
        long[] borders = new long[3];
        borders[0] = this.lborderA;
        borders[1] = this.lborderB;
        borders[2] = this.lborderC;
        return borders;
    }
}
import static org.junit.Assert.*;

import org.junit.AfterClass;
import org.junit.Test;

public class TriangleTest {

    @Test
    public void test() {
        long []str={2,2,3};
        Triangle t=new Triangle(2, 2, 3);
        Triangle t1=new Triangle(2, 2, 2);
        Triangle t2=new Triangle(2, 3, 4);
        Triangle t3=new Triangle(2, 2, 4);

        assertEquals(t.isTriangle(t), true);
        assertEquals(t.getType(t),"Isosceles" );
        assertEquals(t1.getType(t1),"Regular");
        assertEquals(t2.getType(t2),"Scalene" );
        assertEquals(t3.getType(t3),"Illegal" );
        assertEquals(t.diffOfBorders(2, 3), 1);
        assertArrayEquals(t.getBorders(), str);
    }

}

时间: 2024-10-24 13:18:32

软件测试书上作业的相关文章

[转] 如何把书上的字弄到电脑

研究生和上班族都学学吧,如何把书上的字弄到电脑!!!! 把书上的字快速弄到电脑上,我也会,哇哇...在工作中,我常常在想,要是能把纸上有用的文字快速输入到电脑中,不用打字录入便可以大大提高工作效率该有多好呀!随着科技的发展, 这个问题在不断的解决,例如,现在市场上的扫描仪就带有OCR软件,可以把扫描的文字转换到电脑中进行编辑.但是,对于我们平常人来说,大多数人都是即不想多花钱购买不常用的设备,又不想费力气打字录入,那我就给大家提供一个我刚刚发现的方法吧!现在数码相机很普遍,也很常用,我们就从这里

讲故事高手写的的谈判手册——Leo鉴书上64

正如本书名字所显示的"谈判无处不在",作者从不同角度分析了决定谈判成败的因素,同时具体地给出对策.书的排版不错,是那种适合车上读,读起来有收获又不太累的方式. 书能给读者不少启示,具体来说有三点:如何讲故事,如何区别对待对手,让自己变成一个具体的人而不是纸上的名字. 人人想成为讲故事的高手,认真看本书能学到如何讲.以我个人的经验来看,找到好素材.讲出好故事和把好故事写下来让读者笑完全是极困难的三件事,这其中有不同的逻辑.需要不同的能力,本书在这方面不是简单的做到,而是做得比较到位.刚翻

HW3书上习题

测试: 书上习题: a) b)比如循环测试错误:while(numPrimes < 3) c)n=1 d) 节点覆盖: {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14} 边覆盖: {(0,1), (1,2), (1,10), (2,3), (3,4), (3,7), (4,5), (4,6), (6,3), (5,7), (7,8), (7,9), (8,9), (9,1), (10,11), (11,12), (11,14), (12,13), (13,11)} 主路径

Java 初学 第一弹--编译并运行书上的简单程序(猜数字小游戏)

(博主原创) 首先说明一下,博主是大一上学期结束寒假时自己看的Java,然后我看的是Head First Java的中文版,因为大一学了c,所以里面的一些基本思想还是了解的,在看这本书时就浏览了一下(就是那种光看没有自己动手去敲代码的),然后看到书上的一个猜数字小游戏,就想手动敲一下,熟悉熟悉Java的语法,但是真正去做时,发现比看起来要困难一些. 首先是Java在建立一个源码文件之前要先建一个package,然后我用的Eclipse写的Java(感觉和pycharm风格差不多),再新建一个文件

书上的美来自生活

童年,是人生最美好的阶段. 一个人对生活审美感受的培养,最好的阶段,也是在童年.童年的世界,是五彩斑斓的,要投身于这五彩斑斓的世界中,并在心底里,深深地爱上它们.那么,五彩斑斓的光,投射到文字里,就会像梦幻一般,闪烁着童稚而纯朴的美. 也就是说,好的作文,要从生活中来. 这样,我们就必须要有一颗懂得观察生活的心.冰雪的融化,春草的发芽,小虫子的爬行,蚂蚁的决战,云的倏忽飞动,鸟的腾挪跌宕,等等,这一切都要留意观察.还有,雨后的蛙声,晚秋的蝉鸣,高枝上的莺啼,耕作的老牛的哞叫,你们都要留意,去听,

模仿之中也少不了创新——Leo鉴书上65

模仿不就是抄吗?这也需要创新? 答案是:不但需要,而且非常需要.<模仿的力量>从独特的角度全市了模仿的概念以及成功和失败的应用,还有就是如何才能成功模仿让好东西为我们所用,我理解--只有在充分理解原型的前提下.准确解码.加以足够的创新模仿才可能真正成功,才可能为大家带来价值. 书里给我印象最深的要算竞争者模仿西南航空的例子(从56页开始,后面多少都有涉及),有些竞争都模仿之后走向了衰亡,而有些竞争者模仿西南看航空之后让自己赢得了新的生命力."疯狂降低成本,节约.节约.再节约!&quo

ios通知使用 书上案例 简单易懂

/* The notification name */const NSString *ResultOfAppendingTwoStringsNotification =@"ResultOfAppendingTwoStringsNotification"; /* Keys inside the dictionary that our notification sends */const NSString*ResultOfAppendingTwoStringsFirstStringInfo

OK 开始实践书上的项目一:即使标记

OK 开始实践书上的项目一:及时标记 然而....又得往前面看啦! ----------------------我是分割线------------------------ 代码改变世界

课上作业。

<C语言程序设计>实验报告 学 号 160809229 姓 名 马寅武 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 机 器 号 时 间 2016年 10 月 13 日 6 周 周四 1.2 节 截至日期 2016.10.13 11:50 实验任务清单 1.实验3-1 分别使用while循环.do while循环.for循环求(即求1+2+3+ ……+100) 2.实验3-2分别使用while循环.do while循环.for循环