软件测试作业三

作业内容:

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

代码如下:

1. /** ***************************************************** 2. * Finds and prints n prime integers 3. * Jeff Offutt, Spring 2003 4. ********************************************************* */ 5. private static void printPrimes (int n) 6. {
introtest CUUS047-Ammann ISBN 9780521880381 November 8, 2007 17:13 Char Count= 0
64 Coverage Criteria
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 (isDivisible (primes[i], curPrime)) 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 ?ow graph for the printPrimes() method.

(b) Considertestcasest1=(n=3)andt2=(n=5).Althoughthesetourthe same prime paths in printPrimes(), they do not necessarily ?nd the same faults.Designasimplefaultthat t2would bemorelikelytodiscover than t1 would.

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

(d) Enumerate the test requirements for node coverage, edge coverage, and prime path coverage for the graph for printPrimes().

个人答案:

a):

b.将MAXPRIMES设置为4时,t2会发生数组越界错误,但t1不会发生错误。

c.令numPrimes=1.

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

边覆盖:{(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)}

主路径覆盖:{(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)}

第二部分:用junit和eclemma测试

eclemma测试结果:

Junit测试:

时间: 2024-12-15 07:09:05

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

软件测试作业——三

作业见<软件测试基础>中文版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)

软件测试作业三-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 (

软件测试作业三 尝试使用JUnit

写一个判断三角形种类的代码,对其进行测试. 判断三角形代码: package 测试1; public class sjx { public String f(int a,int b,int c) { if(a<=0||b<=0||c<=0||a+b<=c||a+c<=b||b+c<=a) return "不是三角形"; if(a == b&&b == c) return "等边三角形"; else if(a ==

Software Testing (软件测试作业三) HW3 prin

The source code: 源代码: /******************************************************* * Finds and prints n prime integers * Jeff Offutt, Spring 2003 ******************************************************/ public static void printPrimes (int n) { int curPrim

软件测试 作业三 《软件测试基础》2.3节第7题

Use the following method printPrimes() for questions a–d. 原书:<Introduction to Software Testing>BY Paul Ammann and Jeff Offutt 题目为书中2.3小节第7题. 题目代码如下: /** ***************************************************** * Finds and prints n prime integers * Jeff

機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 Q18-20 C++实现

大家好,我是Mac Jiang,今天和大家分享Coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三 Q18-20的C++实现.虽然有很多大神已经在很多博客中给出了Phython的实现,但是给出C++实现的文章明显较少,这里为大家提供一条C++实现的思路!我的代码虽然能够得到正确答案,但是其中可能有某些思想或者细节是错误的,如果各位博友发现,请及时留言纠正,谢谢!再次声明,博主提供实现代码的原因不是为了让各位通过测试,而是为学习有困难的同学提供

機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 Q13-15 C++实现

大家好,我是Mac Jiang,今天和大家分享Coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三 Q6-10的C++实现.虽然有很多大神已经在很多博客中给出了Phython的实现,但是给出C++实现的文章明显较少,这里为大家提供一条C++实现的思路!我的代码虽然能够得到正确答案,但是其中可能有某些思想或者细节是错误的,如果各位博友发现,请及时留言纠正,谢谢!再次声明,博主提供实现代码的原因不是为了让各位通过测试,而是为学习有困难的同学提供一

機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 课后习题解答

今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三的习题解答.笔者在做这些题目时遇到很多困难,当我在网上寻找答案时却找不到,而林老师又不提供答案,所以我就想把自己做题时对题目如何思考的写下来,为大家提供一些思路.当然,我对题目的理解不一定是正确的,如果各位博友发现错误请及时留言联系,谢谢!再次提醒:请不要以此博客作为通过考试的用途,还是更好学习.理解课程的途径!希望我的博客对您的学习有所帮助! 本文出处:http://blog

20165301 预备作业三:Linux安装及命令入门

预备作业三:Linux安装及命令入门 VirtualBox虚拟机的安装 在进行安装之前,原本以为有了娄老师的安装教程会是一件很容易的事情.万万没想到,在自己实际动手操作中,还是遇到了许多困难.通过与同学进行讨论和搜索百度引擎,最终顺利解决了大部分问题.(以下所有问题仅针对于win10系统) 首先遇到的问题是我新建虚拟机时,只能选择32位,而没有64位 百度后发现要在安装虚拟机前要检查电脑是否虚拟化 打开任务管理器-性能-CPU 如未虚拟化,需进行设置. 重启电脑按del进入电脑的BIOS界面,并