软件测试作业3

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

 1 /*******************************************************
 2      * Finds and prints n prime integers
 3      * Jeff Offutt, Spring 2003
 4      ******************************************************/
 5     public static void printPrimes (int n)
 6     {
 7         int curPrime; // Value currently considered for primeness
 8         int numPrimes; // Number of primes found so far.
 9         boolean isPrime; // Is curPrime prime?
10         int [] primes = new int [MAXPRIMES]; // The list of prime numbers.
11
12         // Initialize 2 into the list of primes.
13         primes [0] = 2;
14         numPrimes = 1;
15         curPrime = 2;
16         while (numPrimes < n)
17         {
18             curPrime++; // next number to consider ...
19             isPrime = true;
20             for (int i = 0; i <= numPrimes-1; i++)
21             { // for each previous prime.
22                 if (curPrime%primes[i]==0)
23                 { // Found a divisor, curPrime is not prime.
24                     isPrime = false;
25                     break; // out of loop through primes.
26                 }
27             }
28             if (isPrime)
29             { // save it!
30                 primes[numPrimes] = curPrime;
31                 numPrimes++;
32             }
33         } // End while
34
35         // Print all the primes out.
36         for (int i = 0; i <= numPrimes-1; i++)
37         {
38             System.out.println ("Prime: " + primes[i]);
39         }
40     } // end printPrimes

(a) Draw the control flow graph for the printPrimes() method.

Answer:

(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.

Answer:

When MAXPRIMES = 4, t2=(n=5) is overflow, but t1=(n=3) has not error.

(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.

Answer:

When n = 1, the program will run through edge (2, 12) without running into while loop.

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

Answer:

1.Node Coverage

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

2.Edge Coverage

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

3.Prime Path Coverage

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

Quetion2:基于Junit及Eclemma(jacoco)实现一个主路径覆盖的测试

测试代码:

package st_hw3;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class PrimesTest {
    Primes prime;
    @Before
    public void setUp() throws Exception {
        prime = new Primes();
    }

    @Test
    public void test() {
        prime.printPrimes(5);
    }

}

测试结果:

EclEmma覆盖测试:

时间: 2024-10-13 10:09:42

软件测试作业3的相关文章

软件测试作业——Junit使用

软件测试作业--Junit使用 [TOC] 题目要求 Install Junit(4.12),Hamcrest(1.3) with Eclipse Install Eclemma with Eclipse Write a javaprogram for the triangle problem and test the program with Junit. Description oftriangle problem:Functiontriangle takes three integers

软件测试作业——三

作业见<软件测试基础>中文版49页第7题.英文版63页 a) b) 令MAXPRIMES = 4,t1不能检查出错误,t2发生数组越界,使得t2比t1更容易发现. c)t3=(n=1) d)节点覆盖: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),(6,8),(8,5),(6,7),(7,9), (5,9),(9,10),(10,11),(9,11),(12,13)

软件测试--作业四

<软件测试>第四次作业 1.某公司网站的后台管理有一个用户注册的功能需要测试,该测试为黑盒测试,请用表格的方式给出该功能的测试用例(参考课本P107页).用户注册功能描述如下: (1)       管理员必须先登录,方可进入网站后台管理,进入后台管理界面后可以进行用户注册(假设用户注册的URL地址为http://www.fengt.com/Admin/UserRegister.jsp) (2)       用户注册要求输入用户名.密码.密码确认.邮箱,这4项内容均不能为空 (3)      

第五次软件测试作业

构建指法心得体会 这是一次很特别的作业,对一本书做出的自己的心得体会,这是一本什么样的书本,对我而言,我也不太清楚,毕竟从开学到现在我大概就打开它两三次,也说不出这本书哪里好,但是所先,我拿起这本书,我习惯性看了这本书的目录,一览目录,觉得都是知识.都是新鲜的IT软件知识,关键我对IT感兴趣吗?如果我可以不打代码,我相信我会对IT之类的书本很感兴趣,有的人可以从打代码,做工程中得到成功的兴趣,而有的人只会这样说,总算好了,这个项目,这样就决定我自己是如何看待这本书了,不过知识毕竟是无价之宝,多一

软件测试作业四

<软件测试>第四次作业 软金3班      陈小燕       3137102311 1.某公司网站的后台管理有一个用户注册的功能需要测试,该测试为黑盒测试,请用表格的方式给出该功能的测试用例(参考课本P107页).用户注册功能描述如下: (1)       管理员必须先登录,方可进入网站后台管理,进入后台管理界面后可以进行用户注册(假设用户注册的URL地址为http://www.fengt.com/Admin/UserRegister.jsp) (2)       用户注册要求输入用户名.密

软件测试作业三-printPrimes()

作业内容: private static void printPrimes(int n) { int curPrime; int numPrimes; boolean isPrime; int MAXPRIMES=50; int [] primes = new int [MAXPRIMES]; primes [0] = 2; numPrimes = 1; curPrime = 2; while (numPrimes < n) { curPrime++; isPrime = true; for (

软件测试作业1--描述Error

记忆犹新的错误: 上个学期选修了可视化这门课程,最后大作业用d3实现,在使用d3读取csv数据的时候出现了以下Error: 我先是在代码中读取了某csv格式的数据,并且将其存入变量root中,然后对root进行遍历,然后进行统计,最后将一些统计得来的结果存入了另一个变量temp.而且这个temp声明是在读取csv数据之前的.最后我在读取csv数据这段后面又输出了temp.发现temp居然是空的,也就是没有被赋值. 很郁闷的是我先声明变量,读取文件,进行处理,将结果存入了事先声明的变量中去,最后输

软件测试作业2 — 软件测试中的错误Failure, Error, Fault的区别

软件测试中的错误Failure, Error, Fault的区别: Failure: External, incorrect behavior with respect to the requirements or other description of the expected behavior(预期行为出错或与其他的外部行为描述不符).指软件在运行时出现的功能的丧失,类似于看病时病人发病的症状. Fault: A static defect in the software(软件中的静态缺陷

软件测试作业三

作业内容: Use the following method printPrimes() for questions a–f below. 代码如下: 1. /** ***************************************************** 2. * Finds and prints n prime integers 3. * Jeff Offutt, Spring 2003 4. *****************************************

软件测试作业--开发项目时遇到的问题

在完成web大作业时,经常会遇到两个问题,一类是string类型在判断是否相等时发生错误:另一类是当分情况讨论或运用循环时出现空指针报错. 1.判断两个string是否相等,不能直接用==或!=,需要用equals()判断,相等则返回1.Java中字符串用==比较引用,equal比较值,其中不同的声明方法对字符串的直接比较也有影响. 例如:  String str1=new String("a");           String str2=new String("a&qu