软件质量保证与测试课后习题(第六章 JUnit)

第六章 JUnit

1. 简述 JUnit 单元测试步骤。 

(1)判断组件的功能:通过定义应用的整体需求,然后将系统划分成几个对象;

(2)设计组件行为:依据所处理的过程,可以通过一个正规或者非正规的过程实现组件行为的设计,可以使用UML或者其他文档视图来设计组件行为,从而为组件的测试打下基础;

(3)编写单元测试程序(或测试用例)确认组件行为:这个阶段应假定组件的编码已经结束而组件工作正常,需要编写单元测试程序来确定其功能是否和预定义的功能相同,测试程序需要考虑所有正常和意外的输入,以及特定的方法能产生的溢出;

(4)编写组件并执行测试:首先创建类及其所对应的方法标识,然后遍历每个测试实例,为其编写相应代码使其顺利通过,然后返回测试。继续这个过程直至所有实例通过;

(5)测试替代品:对组件行为的其他方式进行考虑,设计更周全的输入或者其他错误条件,编写测试用例来捕获这些条件,然后修改代码使得测试通过;

(6)重整代码:如果有必要,在编码结束时对代码进行重整和优化,改动后返回单元测试并确认测试通过;

(7)当组件有新的行为时,编写新的测试用例:每次在组件中发现故障,编写一个测试实例重复这个故障,然后修改组件以保证测试实例通过。同样,当发现新的需求或已有的需求改变时,编写或修改测试实例以响应此改变,然后修改代码;

(8)代码修改,重复测试:每次代码修改时,重复所有的测试以确保没有打乱代码。

2. 对下列代码进行单元测试。 

Triangle.java

public class Triangle

{

        //定义三角形的三边

        protected long lborderA = 0;

        protected long lborderB = 0;

        protected long lborderC = 0;

        //构造函数

        public Triangle(long lborderA,long lborderB,long lborderC)

        {

                this.lborderA = lborderA;

                this.lborderB = lborderB;

                this.lborderC = lborderC;

        }

/*

* 判断是否是三角形

*/

        public boolean isTriangle(Triangle triangle)

        {

                boolean isTrue = false;

                //判断边界是否大于 0 小于 200,出界返回 false

                if((triangle.lborderA>0&&triangle.lborderA<200)

                        &&(triangle.lborderB>0&&triangle.lborderB<200)

                        &&(triangle.lborderC>0&&triangle.lborderC<200))

                {

                        //判断两边之和是否大于第三边

                        if((triangle.lborderA<(triangle.lborderB+triangle.lborderC))

                                &&(triangle.lborderB<(triangle.lborderA+triangle.lborderC))

                                &&(triangle.lborderC<(triangle.lborderA+triangle.lborderB)))

                                        isTrue = true;

                }

                return isTrue;

        }

/*

* 判断三角形类型

*/

        public String isType(Triangle triangle)

        {

                String strType = "";

                // 判断是否是三角形

                if(this.isTriangle(triangle))

                {

                        //判断是否是等边三角形 

                        if(triangle.lborderA==triangle.lborderB

                                &&triangle.lborderB==triangle.lborderC)

                                strType = "等边三角形";

                        //判断是否是不等边三角形

                        else if((triangle.lborderA!=triangle.lborderB)&&

                                        (triangle.lborderB!=triangle.lborderC)&&

                                        (triangle.lborderA!=triangle.lborderC))

                                        strType = "不等边三角形";

                        else

                                strType="等腰三角形";

                }

                return strType;

        }

}

package triangle;

import org.junit.Assert;
import org.junit.Test;

public class TriangleTest {
    Triangle t=new Triangle(0, 0, 0);
    @Test
    public void testisTriangle() {
        Assert.assertTrue(t.isTriangle(new Triangle(100, 100, 100)));
        Assert.assertFalse(t.isTriangle(new Triangle(100, 100, 200)));
        Assert.assertFalse(t.isTriangle(new Triangle(100, 50, 50)));
        Assert.assertFalse(t.isTriangle(new Triangle(200, 101, 100)));
    }
    
    @Test
    public void testisType() {
        Assert.assertEquals("等边三角形",t.isType(new Triangle(100, 100, 100)));
        Assert.assertEquals("不等边三角形",t.isType(new Triangle(3, 4, 5)));
        Assert.assertEquals("等腰三角形",t.isType(new Triangle(100, 100, 110)));
        Assert.assertEquals("",t.isType(new Triangle(200, 100, 100)));
        
    }
}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值