使用等价类划分法为NextDate函数设计测试用例
软件测试-NextDate函数

边界值分析法
输入 测试用例 month Test Case 1 Test Case 2 Test Case 3 Test Case 4 Test Case 5 Test Case 6 Test Case 7 Test Case 8 Test Case 9 Test Case 10 Test Case 11 Test Case 12 Test Case 13 Test Case 14 Test Case 15 Test Case 16 Test Case 17 Test Case 18 Test Case 19 Test Case 20 -1 0 1 2 11 12 13 6 6 6 6 6 6 6 6 6 6 6 6 6 day 15 15 15 15 15 15 15 -1 0 1 2 30 31 32 15 15 15 15 15 15 year 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 1911 1912 1913 2049 2050 2051 month不在1~12中 month不在1~12中 2000年1月16日 2000年2月16日 2000年11月16日 2000年12月16日 month不在1~12中 day不在1~31中 day不在1~31中 2000年6月2日 2000年6月3日 2000年7月1日 不可能的输入日期 day不在1~31中 year不在1912~2050中 1912年6月16日 1913年6月16日 2049年6月16日 2050年6月16日 year不在1912~2050中 期望输出
返回
Test Case 5
Test Case 6 Test Case 7 Test Case 8
NextDate函数的等价类测试用例[试题]
![NextDate函数的等价类测试用例[试题]](https://img.taocdn.com/s3/m/eca58e60f56527d3240c844769eae009581ba20e.png)
NextDate函数的等价类测试用例NextDate是一个三变量函数,即月份、日期和年,这些变量的有效值区间定义如下:M1={月份:1≤月份≤12}D1={日期:1≤日期≤31}Y1={年:1812≤年≤2012}无效等价类:M2={月份:月份<1}M3={月份:月份>12}D2={日期:日期<1}D3={日期:日期>31}Y2={年:年<1812}Y3={年:年>2012}由于有效类的数量等于独立变量的个数,因此只有弱一般等价类测试用例出现,并且与强一般等价类测试用例相同:用例ID 月份日期年预期输出WN1,SN1 6 15 1912 1912年6月16日用例ID 月份日期年预期输出WR1 6 15 1912 1912年6月16日WR2 -1 15 1912 月份不在有效值域1..12中WR3 13 15 1912 月份不在有效值域1..12中WR4 6 -1 1912 日期不在有效值域1..31中WR5 6 32 1912 日期不在有效值域1..31中WR6 6 15 1811 年不在有效值域1812..2012中WR7 6 15 2013 年不在有效值域1812..2012中强健壮等价类测试用例集合:用例ID 月份日期年预期输出SR1 -1 15 1912 月份不在有效值域1..12中SR2 6 -1 1912 日期不在有效值域1..31中SR3 6 15 1811 年不在有效值域1812..2012中SR4 -1 -1 1912 月份不在有效值域1..12中日期不在有效值域1..31中SR5 6 -1 1811 日期不在有效值域1..31中年不在有效值域1812..2012中SR6 -1 15 1811 月份不在有效值域1..12中年不在有效值域1812..2012中SR7 -1 -1 1811 月份不在有效值域1..12中日期不在有效值域1..31中年不在有效值域1812..2012中。
2、根据边界值分析法为三角形问题编写测试用例。

老师第一题没装编程的软件先做了后面的俩个题2、根据边界值分析法为三角形问题编写测试用例。
三角形问题的边界值分析测试用例测试用例 a b e 预期输出Test1 Test2 Test3 Test4 Test5 60606050506060605050126099100等腰三角形等腰三角形等边三角形等腰三角形非三角形Test6 Test7 Test8 Test9 60605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10 Test11 Test12 Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形3、根据等价类划分法为nextdate函编写测试用例。
有效等价类编号无效等价类编号1912<=year<=2050 1year<1912 4year>2050 5 year有非数字字符 61<=month<=12 2month<1 7month>12 8 Month有非数字字符91<=day<=31 3day<1 10day>31 11 Day有非数字字符12Y ear.month.day 编号Y ear.month.day 编号2006 6 6 1.2.3 2006 0 6 1.3.7 2006 6 a 1.2.12 2006 15 6 1.3.8 2006 a 6 1.3.9 2006 6 0 1.2.10 200a 6 6 2.3.7 2006 6 33 1.2.11 5555 6 6 2.3.61111 6 6 2.3.4000000000000000000000000000。
黑盒测试作业参考答案

黑盒测试作业参考答案.黑盒测试参考答案第三章(注意:答案仅供参考,若有误,请自行修改。
) 1、某保险公司计算保险费率。
,点以上保险费率为0.6%计算方式为10点及10;而点数又是由投保0.1%点以下保险费率为10人的年龄、性别、婚姻状况和抚养人数来决定,年龄有效输入范围其中,具体规则如下表所示。
之间的1-9为1-100;抚养人数可输入“无”或整数。
使用等价类划分进行测试用例设计抚养人性婚年未 M F 已20~39 40~59 0.人最多参考答案:(1)通过对程序功能的分析,其等价类表如下所示:输入条有效等价类无效等价类件 20~39岁(1)小于1岁 40~59岁(11)年龄(2)于100岁大或岁1~19(12)岁60~100 (3).M' (4)除‘M'和‘F'之‘性别‘F 外的其他字符(13)'(5)(外除已婚和未婚之6)已婚婚姻未婚(7的其他字符(14))的外字除无和数之(8)无15)其他字符抚养人(9) 1~6人((数16)1 小于16~19大)设计测试用例表,覆盖等价类。
(输入数覆盖预期输保险费等价性0.6%1 4 6 8127M0.6%2 5 7 92F2503 4 6100.13770M提示“年龄11 4 6 8已4 M 无 0在之间”1~100婚提示“年龄应未12 5 7 9 5 4 F 102 1~100 婚之间”在提示“性别应已1 13 6 8 306 无T”F或M输入婚1 4 14 8 提示“婚姻应离无为30 M 已婚或未7 婚婚”1 4 6 15提示“抚养M830之间的1-数提示“抚养1 4 6 16 -1930M1-之间的数1 4 6 17提示“抚养201030M1-之间的数2、NextDate函数。
该函数要求输入三个变量month、day和year,输出该日期之后一天的日期。
其中year的取值范围为:1900-2079。
如果输入的日期组合不合法,则显示“无效的输入日期”。
NEXTDATE的决策表示例(软件测试技术实验报告)

NextDate函数测试用例选择NextDate函数,是因为它可以说明输入定义域中的依赖性问题,这使得这个例子成为基于决策表测试的一个完美例子,因为决策表可以突出这种依赖关系。
从前面对等价类测试的分析我们知道,等价类分析假设所有的变量都是独立的。
如果变量确实是独立的,则使用类的笛卡尔积是有意义的。
如果变量之间在输入定义域中存在逻辑依赖关系,则这些依赖关系在笛卡尔积中就会丢失(说抑制可能更确切)。
决策表格式通过使用“不可能动作”概念表示条件的不可能组合,使我们能够强调这种依赖关系。
下面将对NextDate函数的决策表描述做三次尝试。
第一次尝试标识合适的条件和动作,假设首先从分析等价类集合开始。
M1= {月份:每月有30天};M2 = {月份:每月有31天};M3二{月份:此月是2月}D1 = {日期:1<0期W 28}; D2 = {日期:日期=29}; D3 = {日期=30}; D4 = {日期=31}Y1 = {年:年是闰年}; Y2 = {年:年不是闰年}如果我们希望突出不可能的组合,则可以建立具有以下条件和动作的有限项决策表。
(请注意,年变量对应的等价类收缩为下表的一个条件。
)有2处条规则的第一袂尝试这个决策表会有256条规则,其中很多是不可能的。
如果要显示为什么这些规则是不可能的,可将动作修改为:al:月份中的天数太多;a2:不能出现在非闰年中;a3:计算NextDate.第二次尝试如果我们将注意力集中到NextDate函数的闰年问题上,则可以修改已有的等价类集合。
为了说明另一种决策表表示方法,这一次采用扩展项决策表开发,并更仔细地研究动作桩。
在构建扩展项决策表时,必须保证等价类构成输入定义域的真划分。
如果规则项之间存在“重叠”,则会存在冗余情况,使得多个规则都能够满足。
这里,Y2是一组1812〜2012之间的年份,并除以4, 2000除外。
M1= {月份:每月有30天}; M2 = {月份:每月有31天}; M3二{月份:此月是2月}D1 = {日期:1<0期W 28}; D2 = {日期:日期=29}; D3 = {日期=30}; D4 = {日期=31}Y1 = {年:年=2000}; Y2 = {年:年是闰年}; Y3 = {年:年是平年}从某种意义上说,我们采用的是“灰盒”技术,因为更仔细地研究了NextDate 函数。
使用等价类划分法为NextDate函数设计测试用例

1、使用等价类划分法为NextDate函数设计测试用例:NextDate函数包含三个输入变量month、day和year(要求month、day和year 均为整数值,并且满足:1≤month≤12; 1≤day≤31;1912≤year≤2050),函数的输出为输入日期后一天的日期。
(1)列出输入域等价类表(包括有效和无效等价类)。
(2)根据(1)中的等价类,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号。
2、某城市电话号码由三部分组成,分别是:地区码——空白或者三位数字;前缀——非‘0’或‘1’开头的三位数字;后缀——4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
(1)列出输入域等价类表(包括有效和无效等价类)。
(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例覆盖的等价类编号。
3、使用基本路径测试方法测试以下程序段:V oid sort(int irecordnum,int itype)1{2Int x = 0;3Int y = 0;4While( irecordnum -- >0 )5{6If( itype == 0)7Break;8Else9If(itype == 1)10x = x+10;11Else12y = y+20;13}14}说明:写在程序段某些行开头数字(1~14)是对每条语句的编号。
(1)画出程序的控制流程图(用题中给出的语句编号表示)。
(2)计算上述程序段的环形复杂度。
(3)导出基本路径集,列出程序的独立路径(用题中给出的语句编号表示)。
请根据(3)中的独立路径,设计测试用例的输入数据和预期输出。
4、使用基本路径测试方法测试以下程序段:Int IsGood( int grade ){① If (grade <= 100){② If( grade >= 80 ){③ If(year >= 90 )④ Result = 2; //优秀Else⑤ Result = 1; //良好}Else if(grade >= 0)⑥ Result = 0; //合格Else⑦ Result = -1; //分数为负数}Else⑦ Result = -1; //分数大于100⑧ Return Result;}说明:写在程序段某些行开头数字(①~⑧)是对应语句的编号。
等价类划分法

设计测试用例的着眼点
根据产品规格,测试基本功能; 考虑设计一般用户(非专业人员)的使用方案; 考虑设计稀有或特殊的使用方案; 与系统其他组成部分的配合(如 FAX 和上网可能要用到 MODEM,测试中考虑对设备的共享); 考虑特殊情况(如内存和硬件的冲突等); 设计极端情况(如内存泄漏、破坏性测试等); 好的测试用例集能花费最小的代价(人力、物力、财力、 时间)做最好的测试。
设计测试用例的基本准则
测试用例的代表性 能够代表并覆盖各种合理的和不合理的、合法的和非 法的、边界的和越界的以及极限的输入数据、操作和环 境设置等。 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用 例都应有相应的期望结果。 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。
例:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x≠1,3,7,15的值的集合。
等价类的划分
(3)按照数值集合划分 在输入条件规定了输入值的集合或 规定了“必须如何”的条件下,可以确定一个有效等价类和 一个无效等价类(该集合有效值之外)。 例:程序输入条件为取值为奇数的整数 x,则有效等价类为x (4)按照限制条件或规则划分 在规定了输入数据必须遵 的值为奇数的整数,无效等价类为 x的值不为奇数的整数。 守的规则或限制条件的情况下,可确定一个有效等价类(符 合规则)和若干个无效等价类(从不同角度违反规则)。 例:程序输入条件为以字符‘a’开头、长度为8的字符串,并且 (5)细分等价类 在确知已划分的等价类中各元素在程序中 字符串不包含‘a’~ ‘z’之外的其它字符,则有效等价类为满 的处理方式不同的情况下,则应再将该等价类进一步划分为 足了上述所有条件的字符串,无效等价类为不以‘a’开头的字 更小的等价类,并建立等价类表。 符串、长度不为8的字符串和包含了‘a’~ ‘z’之外其它字符的 字符串。
NextData函数

NextData函数一、问题描述程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤year ≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。
例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。
请用黑盒测试方法设计测试用例。
二、程序界面计算下一天的程序代码见附录。
三、设计测试用例1. 用边界值测试方法设计测试用例用健壮性测试法设计测试用例,按照下列步骤进行:(1)分析各变量的取值健壮性测试时,各变量分别取:略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值和略大于最大值。
month:-1,1,2,6,11,12,13;day:-1,1,2,15,30,31,32year:1899,1900,1901,1975,2049,2050,2051;(2)测试用例数有n个变量的程序,其边界值分析会产生6n+1个测试用例。
这里有3个变量,因此会产生19个测试用例。
(3)设计测试用例,见表1-1。
NextDate函数的复杂性来源于两个方面:一是输入域的复杂性(即输入变量之间逻辑关系的复杂性),二是确定闰年的规则。
但是在进行健壮性测试时,没有考虑输入变量之间的逻辑关系,也没有考虑和闰年相关的问题,因此在设计测试用例时存在遗漏问题,比如和判断闰年相关的日期:2008.2.29、1999.2.28等。
表1-1NextDate函数测试用例2. 用基于判定表的方法设计测试用例(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
month变量的有效等价类:M1 = { month = 4,6,9,11 }M2 = { month = 1,3,5,7,8,10 }M3 = { month = 12 }M4 = { month = 2 }day变量的有效等价类:D1={日期:1≤日期≤27}D2={日期:日期=28}D3={日期:日期=29}D4={日期:日期=30}D5={日期:日期=31}year变量的有效等价类:Y1 = { year是闰年}Y2 = { year不是闰年}(2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、使用等价类划分法为NextDate函数设计测试用例:
NextDate函数包含三个输入变量month、day和year(要求month、day和year 均为整数值,并且满足:1≤month≤12; 1≤day≤31;1912≤year≤2050),函数的输出为输入日期后一天的日期。
(1)列出输入域等价类表(包括有效和无效等价类)。
(2)根据(1)中的等价类,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号。
2、某城市电话号码由三部分组成,分别是:
地区码——空白或者三位数字;
前缀——非‘0’或‘1’开头的三位数字;
后缀——4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
(1)列出输入域等价类表(包括有效和无效等价类)。
(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例覆盖的等价类编号。
3、使用基本路径测试方法测试以下程序段:
V oid sort(int irecordnum,int itype)
1{
2Int x = 0;
3Int y = 0;
4While( irecordnum -- >0 )
5{
6If( itype == 0)
7Break;
8Else
9If(itype == 1)
10x = x+10;
11Else
12y = y+20;
13}
14}
说明:写在程序段某些行开头数字(1~14)是对每条语句的编号。
(1)画出程序的控制流程图(用题中给出的语句编号表示)。
(2)计算上述程序段的环形复杂度。
(3)导出基本路径集,列出程序的独立路径(用题中给出的语句编号表示)。
请根据(3)中的独立路径,设计测试用例的输入数据和预期输出。
4、使用基本路径测试方法测试以下程序段:
Int IsGood( int grade )
{
① If (grade <= 100)
{
② If( grade >= 80 )
{
③ If(year >= 90 )
④ Result = 2; //优秀
Else
⑤ Result = 1; //良好
}
Else if(grade >= 0)
⑥ Result = 0; //合格
Else
⑦ Result = -1; //分数为负数
}
Else
⑦ Result = -1; //分数大于100
⑧ Return Result;
}
说明:写在程序段某些行开头数字(①~⑧)是对应语句的编号。
(4)画出程序的控制流程图(用题中给出的语句编号表示)。
(5)计算上述程序段的环形复杂度。
(6)导出基本路径集,列出程序的独立路径(用题中给出的语句编号表示)。
(7)假设输入的取值范围是 0 <= grade <= 100,请根据(3)中的独立路径,设计测试用例的输入数据和预期输出。