(2016春) 作业8:单元测试练习(个人练习)
2016-05-09 21:07
351 查看
单元测试练习
0. 时间要求
截止日期:2016-5-171. 目的
单元测试训练 (Junit框架应用)测试用例的设计方法
2. 要求
[必做题1] 针对附录1给出的三角形判断Java 代码,应用等价类划分法设计测试用例,用表格形式列出设计的测试用例,写到博客中。(10分)测试用例 | ||
序号 | 测试输入:三条边(a,b,c) | 测试预言(Oracle:直角、等腰、等边三角形) |
1 | 输入(1,1,1) | 等边三角形 |
2 | 输入(****) | *** |
[必做题2] 模仿附录2给出的三角形判断Junit测试代码,设计单元测试脚本,测试 [必做题1]设计得到的测试用例。注意测试脚本中测试用例出现顺序与[必做题1]表格所列顺序一致。运行所得的测试脚本,截运行结果图,写到博客中,同时将源代码commit到你自己的github。(20分)
[必做题3] 心得体会。写下本次练习你收获的知识点(PS:测试用例设计方法和步骤;测试脚本设计步骤或主要内容)。(10分)
附录
附录1: 三角形类别判断程序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; } /** * 判断是否是三角形 * * 是返回true;不是返回false */ public boolean isTriangle(Triangle triangle) { boolean isTriangle = false; // 判断边界,大于0 小于或等于Long.MAX_VALUE,出界返回false 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)) { // 判断两边之差小于第三边 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; } /** * 判断三角形类型 * * 只有两条边相等的三角形返回字符串“等腰三角形”; 三边均相等的三角形返回字符串“等边三角形”; 三边均不等的三角形返回字符串“不等边三角形”; */ public String getType(Triangle triangle) { String strType = "Illegal"; // 判断是否是三角形 if (isTriangle(triangle)) { // 判断是否是等边三角形 if (triangle.lborderA == triangle.lborderB && triangle.lborderB == triangle.lborderC) { strType = "Regular"; } // 判断是否是不等边三角形 else if ((triangle.lborderA != triangle.lborderB) && (triangle.lborderB != triangle.lborderC) && (triangle.lborderA != triangle.lborderC)) { strType = "Scalene"; } // 三角形既非三边全部相等,又非全部不等,只能是部分相等即等腰三角形 else { strType = "Isoceles"; } } return strType; } /** * 计算两边之差的绝对值 * * */ public long diffOfBorders(long a, long b) { return (a > b) ? (a - b) : (b - a); } /** * 用于获取三角形的边长 */ public long[] getBorders() { long[] borders = new long[3]; borders[0] = this.lborderA; borders[1] = this.lborderB; borders[2] = this.lborderC; return borders; } }
附录 2:三角形类别判断的单元测试脚本示例:
import static org.junit.Assert.*; import org.junit.Test; public class TestTriangle{ @Test public void testIsTriangle1(){ Triangle t = new Triangle(-1,10,2); assertFalse(t.isTriangle(t)); } @Test public void testIsTriangle2(){ // according to the mutant, this test case should fail Triangle t = new Triangle(3,2,1); assertFalse(t.isTriangle(t)); } @Test public void testIsTriangle3(){ Triangle t = new Triangle(3,1,2); assertFalse(t.isTriangle(t)); } // 下面是添加你设计的测试用例 // ***** }
相关文章推荐
- Python----文件操作
- linux下常用命令
- 【NBUToj】1667 - Hkhv Loves Sequences(模拟,严格递增子串)
- 对话框程序:模式和非模式
- common lisp 下载设置入门
- poj2773 Happy 2006(二分+容斥)
- Java核心技术(五) —— 泛型程序设计(2)
- 2015百度之星之-IP聚合
- 第一章 JAVA入门(Main函数简介续)
- Android-UI 分辨率适配相关/dp/sp
- GeekBand c++學習筆記(friend的一點體悟)
- JS综合学习教程<一>
- Android Dev Intro - An OpenGL ES renderer based on the GLSurfaceView rendering framework
- 大话Android项目中的常用技巧
- 增强现实原理解析
- 搭建fedora开发环境 common lisp, c++, go
- 计算直线的交点数(set + 打表)
- 【c++】rapidjson实践
- rownum,rowid,row_number()及oracle分页查询.
- 构造对象与原型一