软件质量保证与测试技术复习提纲
1.3 1.5 2.1 2.3 2.5 2.6
3.3(3.3.1 扩展) 3.4 5.1 5.7.1 5.7.2
8.1.1 8.1.5 9.1 9.6
3.3.1 扩展
某研究所重新对其在大学以上学历的职工安排工作。其方针如下:\如果年龄不满18岁,文化程度是大学,若是男性,则一律要求考研究生。若是女性,则分配到研究所办公室任行政干部;如果年龄满18岁但不足50岁,文化程度是研究生,不分男女性,均任课题组长。文化程度是大学,则不分男女性均担任中层以上各级领导干部;如果年龄满50岁以上,文化程度是研究生,若是男性,则任课题组长。文化程度是大学,若是男性,则任科研人员。若是女性,则任资料员\。
⑴ 判定表的绘制。
① 提取问题中的条件:\性别\、\年龄\和\文化程度\三个条件。
② 标出每个条件的取值(为了便于绘制判定表,用符号来代替条件的取值): 见下表一:
⑥ 检查判定表的完善性:如果任意绘制的判定表很可能是不完善的,也可能存在以下问题:
Ⅰ 遗失判定列:即判定表中缺少判定条件组合列。在表二中就缺少了两个判定列。所谓判定列是指判定表右部的各列(包括上下两部分构成的列)。
完善的判定表要满足以下条件:
A.判定列计数之和必须等于诸条件取值数之积。
也就是在判定表中右下部分选定的动作列中目标动作的数量应等于所有条件的组合数。 B.每个判定列必须是独立的,即任何两个判定列的诸条件中至少有一个条件的取值是不同。
假设某程序有三个输入变量year 、month、day(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31和1981≤year≤2050),分别作为输入日期的年份、月份、日,通过程序可以输出该输入日期在日历上隔一天的日期。试用判定表法设计该程序正确输入条件下的测试用例。 设计:
一、确定规则,建立条件桩和动作桩 M1={月份: 每月有30天}
M2={月份: 每月有31天, 12月除外} M3={月份:12月} M4={月份:2月}
D1={日期:1<=日期<=26} D2={日期:27} D3={日期:28}
D4={日期:29} D5={日期:30} D6={日期:31} Y1 ={年:年是闰年} Y2 ={年:年不是闰年} 二、判定表
三、测试用例:
用例ID 用例标题 前置条件 输入 1.月输入1 输出 1 Day+2(30) 2.日输入26 3.年输入2010 1.月输入3 2010.1.28 2 Day=1&month+1(30) 2.日输入29 3.年输入2010 1.月输入5 2010.4.1 3 Day=2&month+1(30) 2.日输入30 3.年输入2010 1.月输入4 2010.6.2 4 Day+2(31) 2.日输入25 3.年输入2010 2010.4.27 1.月输入11 5 Day=1&month+1(31) 2.日输入30 3.年输入2010 1.月输入11 2010.12.1 6 Day=2&month+1(31) 2.日输入31 3.年输入2010 1.月输入12 2010.12.2 7 Day+2(12月) 2.日输入23 3.年输入2010 1.月输入12 2010.12.25 8 Day=1&month+1&year+1(12月) 2.日输入30 3.年输入2010 1.月输入12 2011.1.1 9 Day=2&month+1&year+1(12月) 2.日输入31 3.年输入2010 1.月输入2 2010.1.2 10 Day+2(2月) 2.日输入19 3.年输入2010 1.月输入2 2010.2.21 11 Day+2(闰年2月) 2.日输入27 3.年输入2000 1.月输入2 2000.2.29 12 Day=1&month+1(闰年2月) 2.日输入28 3.年输入2000 1.月输入2 2000.3.1 13 Day=2&month+1(闰年2月) 2.日输入29 3.年输入2000 1.月输入2 2000.3.2 14 Day=2&month+1(平年2月) 2.日输入27 3.年输入2001 1.月输入2 2001.3.2 15 Day=1&month+1(平年2月) 2.日输入26 3.年输入2001 2001.3.1
3. 假设某程序有三个输入变量year 、month、day(month、day和year
均为整数值,并且满足:1≤month≤12、1≤day≤31和1981≤year≤2050),分别作为输入日期的年份、月份、日,通过程序可以输出该输入日期在日历中下一天(明天)的日期。试用判定表法设计该程序正确输入条件下的测试用例。