软件测试技术 hw3

作业题目:教材49页第7题a到d,并基于Junit及Eclemma实现一个主路径覆盖的测试
一、Use the following method printPrimes() for questions a-f below

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

a.画出控制流图
解答:

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

解答:数组越界

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

解答:t:n=1

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

解答:

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

边覆盖需求:{(1,2),(2,3),(2,10),(3,4),(4,5),(4,8),(5,6),(5,7),(6,8),(7,4),(8,2),(8,9),(9,2),(10,11),(11,12),(11,13),(12,11)}

主路径覆盖需求:

{

(4,5,6,4)

(6,4,5,6)

(5,6,4,5)

(5,6,4,,8,,2,3)

(5,6,4,8,2,10,11,12,11)

(5,6,4,8,2,10,11,13)

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

(3,4,5,7,8,2,3)

(3,4,8,9,2,3)

(3,4,8,2,3)

(3,4,5,7,8,9,2,10,11,12)

(3,4,5,7,8,9,2,10,11,13)

(3,4,5,7,8,2,10,11,12)

(3,4,5,7,8,2,10,11,13)

(3,4,8,2,10,11,13)

(3,4,8,2,10,11,12)

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

(4,5,7,8,2,3,4)

(4,8,9,2,3,4)

(4,8,2,3,4)

(1,2,3,4,8)

(1,2,3,4,5,6)

(1,2,3,4,5,7,8,9)

(1,2,10,11,12)

(1,2,10,11,13)

(11,12,11)

(12,11,12)

(12,11,13)

}

二.实现一个主路径覆盖的测试

使用第一次上机判断三角形的程序:

package zjz;

public class triangle {

    private static int result=0;
    public void TypeOfTriangle(int a,int b,int c) {
        if(a + b <= c || a + c <= b || b+ c <= a && a<=0 && b <= 0 && c <=0){
            result = 1; //不是三角形

            if(a == b && a == c)
                result = 2;//等腰

            if(a == b || b == c || a == c)
                result = 3;//等边
            else
                result = 4;//普通
        }

    }

    public int getResult(){
        return result;
    }
       public void clear(){
         result = 0;
}

测试类用例:

package zjz;
import static org.junit.Assert.*;
import org.junit.Test;
public class TestCalculator {
    private static Calculator cal = new Calculator();
    @Test
    public void testTriangle(){

    cal.triangle(2, 2, 2);
    assertEquals(3, cal.getReuslt());//等边三角形
    cal.triangle(3, 3, 5);
    assertEquals(2, cal.getReuslt());//等腰三角形
    cal.triangle(3, 4, 5);
    assertEquals(1, cal.getReuslt());//普通三角形
    cal.triangle(1, 2, 3);
    assertEquals(0, cal.getReuslt());//不能构成三角形
    }

}

覆盖率截图:

时间: 2024-10-11 07:13:39

软件测试技术 hw3的相关文章

软件测试技术树

软件测试技术树,今天翻论文,发现一张图[1],分享给大家: 实际上,软件测试,简单分类,可以分为功能测试,非功能测试,性能测试,其他测试. 1.功能测试 黑盒测试.白盒测试 2.非功能测试 安装测试.安全测试.兼容性测试等 3.性能测试 负载测试.压力测试.容量测试 4.其他测试 文档测试.UI测试 而软件测试的周期是:测试计划.设计测试用例.开发测试脚本.执行(手动.自动).评估.共五部. 参考文献 [1]单锦辉, 姜瑛, 孙萍. 软件测试研究进展[J]. 北京大学学报: 自然科学版, 200

软件测试技术

性能测试: 性能测试如果进行得太晚,会给项目带来巨大的挑战,在大并发用户访问的情况下系统崩溃,需要重新调整系统的架构设计,大量的代码需要重构,并会带来大量功能上的不稳定和大量的bug.所以性能测试不应该只是一个后期的测试活动,应该贯穿整个软件的生产过程,从单元测试就开始:代码的效率评估和数据库的优化. 网站响应时间和用户的接受时间: 响应时间在4秒以内,大部分用户可以接受:在4-9秒,30%的用户会选择离开:8-9秒,60%的用户选择离开:超过10秒,90%的用户会离开. 业务数据量的估算,在一

软件测试技术入门

软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求.预先定义的不一致性. 简介 软件测试技术-软件测试的分类 1.从是否需要执行被测试软件的角度分类(静态测试和动态测试). 2.从测试是否针对软件结构与算法的角度分类(白盒测试和黑盒测试). 3.从测试的不同阶段分类(单元测试.集成测试.系统测试.验收测试). 2主要步骤 1.测试计划 2.测试设计与开发 3

软件测试技术的未来【转】

"测试已死"的观点在业内仍然存在着争议,很多公司缩减了测试人员,开发测试比屡创新高.本文旨在通过介绍软件测试的新趋势和新技术来展示软件测试行业面临的机遇与挑战,为软件测试工程师的职业规划提供参考. 安全测试 从孟加拉国银行8100万美元被黑客成功盗取到美国民主党邮件泄露事件可以看出,网络安全事件已经被推到了风口浪尖.随着物联网逐步普及,智能家居.汽车电子等设备的网络化水平大幅提升.但物联网的安全却不容乐观,很多中小企业往往忽视安全防护.开源软件的源代码公开,黑客可以通过阅读源代码更容易

软件测试技术第一周课堂随笔记录

写在前,这是软件测试技术的课堂随笔,记录了一些在课上所阐述的内容. 一.由于是第一周课,免不了讲起软件测试的定义:什么是软件测试. 软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求.预先定义的不一致性.-----------------百度百科. 个人的理解暂时就是:1.找bug.2.找出需求与实际的差别. 二.软件测试常见测试方法: 从测试是否针对软件结

软件测试技术好学吗?

软件测试就是在现有软件中寻找缺陷的过程.在规定的条件下对程序进行操作,目的是在用户使用之前发现错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程,它是软件开发过程中重要的一环,下面小编就和大家介绍下软件测试工程师要学哪些知识,这些知识好不好学.一名合格的软件测试工程师需要学习的知识还是很多的,十大测试工具和五大测试方法都需要学习,有:LoadRunner.JMeter.Selenium.Appium.Postman.Fiddler等测试工具和功能.web自动化.移动自动化.接口.性能等测

面向对象的软件测试技术

相关知识点-面象对象(=Object Oriented)技术 1. 对象和类 l 面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息 l 类是一种新的数据类型,是设计的核心,是通过抽象数据类型的方法来实现的一种数据类型 l 类是对某一对象的抽象,对象是某一类的实例,两者密切相关 2. 封装.继承和多态性 (1) 封装:把数据和操作结合一体,使程序结构更加紧凑,避免了数据紊乱带来的调试与维护的困难 (2) 继承:可以从一个类派生到另一个类,派生类继承了父类和祖先类的数据成员和函数,增

软件测试技术-张彩霞老师讲

张彩霞老师 人生并非非黑即白,还有灰的部分. 说话不要太直,说话不要太生硬. 软件测试: 测试的目的: 组员间用的软件一致,便于集成. 每一个阶段都有阶段评审.评审是不要太谦虚.过分谦虚就是没自信. 评审前组员间要做内部检测,保证评审间不出错. 白盒测试: 测试需要了解程序内部结构和处理过程 黑盒测试: 又称功能测试.数据驱动测试或基于规格说明的测试,也可称用户测试 黑盒测试方法: 等价类划分法 边界值分析法(最大数,最小数) 注意:<与<=的区别 数据类型的边界 数组的边界 错误推测法,又称

软件测试技术(五)——Software Review

本周的测试课上进行了一次同行评审的演练,大家讨论的很热烈,不过我也发现了一些不太理解的过程,如如何进行计划活动,走读.技术评审.正规检视是基于什么目的,并应该在何时进行.我做了一下详细的研究. 首先,Peer Review(同行评审)作为Software review的一部分,与之并列的还有Software Management reviews 和 Software audit reviews,三者的大致概念如下: Software peer reviews,由作者及同事去评价技术内容and/o