}
}
return m.appendTail(sb).toString().toLowerCase();
图6 示例2运行结果
2、使用Junit框架对类Date和类DateUtil(参见附录)进行单元测试。
只对包含业务逻辑的方法进行测试,包括: 类Date中的
isDayValid(int year, int month, int day) isMonthValid(int month) isYearValid(int year)
类DateUtil中的
isLeapYear(int year) getDayofYear(Date date)
要求设计合理测试用例,用Junit进行测试,分析测试结果,并对错误代码进行修改。
3、(选做)使用 Junit框架对给出的工程进行单元测试。
该工程应用SSH框架实现。 必须测试的类:
javaMax.Customer.Service.Impl包中 类LoginCheck.java 类Register.java
javaMax.SystemAdmin.Service.Impl包中的 类InternalUserManagement.java 要求设计合理测试用例,用Junit进行测试,分析测试结果,并对错误代码进行修改。
五、实验要求
1、做好实验预习,掌握并熟悉本实验中所使用的测试环境及相应的测试软件。 2、写出实验报告,内容包括: ① 实验目的 ② 实验环境
完成实验内容2: ③ 给出测试用例 ④ 分析测试结果 ⑤ 给出改进后的代码
实验四 黑盒测试(2
学时)
实验类型:验证型(2学时) 实验目的
(1) 能熟练应用功能性测试技术进行测试用例设计; (2) 对测试用例进行优化设计;
背景知识
功能测试是指在对程序进行功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进行测试。进行功能测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。
一、 等价类测试
等价类测试方法是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。使用等价类划分方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
等价类的划分有两种不同的情况: ① 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。 ② 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
用等价类划分法设计测试用例步骤:
(1) 形成等价类表,每一等价类规定一个唯一的编号;
(2) 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;
(3) 设计一个新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖。
二、 边界值测试
1. 边界值分析
边界值分析是考虑边界条件而选取测试用例的一种功能测试方法。边界值分析关注输入空间的边界,以标识测试用例,因为错误更可能出现在输入变量的极值附近。
边界值分析的基本思想是:使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值。
2. 健壮性测试
健壮性是指在异常情况下,软件还能正常运行的能力。健壮性考虑的主要部分是预期输出,而不是输入。
健壮性测试是边界值分析的一种简单扩展。除了变量的5个边界分析取值还要考虑略超过最大值(max)和略小于最小值(min)时的情况。
3. 最坏情况测试
最坏情况测试将意味着更大工作量,n变量函数的最坏情况测试会产生5的n次方个测试用例,而边界值分析只产生4n+1个测试用例。
三、 基于决策表的测试
决策表适合描述不同条件集合下采取行动的若干组合的情况。使用决策表标识测试用例,则把条件解释为输入,行动解释为输出。有时条件最终引用输入的等价类,行为引用被测试软件的主要功能处理部分,规则解释为测试用例。
对于有限条目决策表,如果有n个条件,则必须有2条规则。如果不关心条目实际地表明条件是不相关的,则没有不关心条目的规则统计为1条规则,规则中每出现一个不关心条目,该规则数乘一次2。
实验设备
主流PC机一套,要求安装windows操作系统、Visual C++开发工具和OFFICE工具;
实验内容
题目一:电话号码问题
某城市电话号码由三部分组成。它们的名称和内容分别是:
地区码:空白或三位数字; 前 缀:非'0'或'1'的三位数字; 后 缀:4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。
题目二:三角形问题
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
题目三:日期问题
用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为 2004 年11月29日,则该程序的输出为2004年12月1日。
(1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。
(2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3) 根据 (1) 和 (2) ,画出简化后的决策表。
题目四:找零钱最佳组合
假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内 (P) , 求找给顾客最少货币个(张)数?(货币面值50元10 元,5 元,1元四 种 )
实验步骤
(1) 根据功能性测试技术设计测试用例,主要考虑等价类划分和边界值分析测试技术;
(2) 根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗
余性考虑),设计两套测试用例集;