功能性测试.doc
宁德师范学院计算机系实验报告(2016 2017 学年 第 二 学期)课程名称 软件测试方法和技术 实验名称 实验一 功能性测试 专 业 计算机科学与技术(非师1) 年 级 14级 学 号 _ _ 姓 名 指导教师 实验日期 实验目的与要求:(1) 能熟练应用功能性测试技术进行测试用例设计;(2) 对测试用例进行优化设计;实验设备(环境):主流PC机一套,要求安装windows操作系统、Visual C+开发工具和OFFICE工具实验内容:1题目一:电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是:(1)地区码:空白或三位数字;(2)前 缀:非'0'或'1'的三位数字;(3)后 缀:4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。2题目二:三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”3题目三:日期问题用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1month12和1day31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为 2004 年11月29日,则该程序的输出为2004年12月1日。 (1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。 (3) 根据 (1) 和 (2) ,画出简化后的决策表。4题目四:找零钱最佳组合假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内 (P) , 求找给顾客最少货币个(张)数?(货币面值50元10 元,5 元,1元四 种 )实验步骤:(1) 根据功能性测试技术设计测试用例,主要考虑等价类划分和边界值分析测试技术;(2) 根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集;(3)根据设计的两套测试用例集进行测试; 题目一:某城市电话号码由三部分组成。它们的名称和内容分别是:(1)地区码:空白或三位数字;(2)前 缀:非'0'或'1'的三位数字;(3)后 缀:4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。答:先划分等价类:输入条件有效等价码无效等价码地区码1. 空白;2. 三位数;1.有非数字字符;2.少于三位数字;3.多于三位数字;非'0'或'1'的三位数字3.从200到999之间的三位数;4.有非数字字符;5.起始位为0;6.起始位为1;7.少于三位数字;8.多余三位数字4位数字4.四位数字;9.有非数字字符; 10.少于四位数字;11.多余四位数字;设计测试用例:方案内容输入预期输出地区码前缀后缀1空白从200到999之间的三位数四位数字( )6542568有效2三位数字四位数字(568)8943658有效3有非数字字符(20A)895695无效4少于三位数字(20)8967895无效5多余三位数字(5698)7854562无效6有非数字字符(658)68E958无效7起始位为0(326)0267856无效8.起始位为1(365)178589无效9少于三位数字(265)235698无效10多余三位数字(458)56988974无效11有非数字字符(568)789698Q无效12少于四位数字(956)632562无效13多余四位数字(956)95878959无效题目二:根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”先划分等价类:输入条件有效等价类无效等价类是否是三角形的三条边1. A>0且B>0且C>02. 且A+B>C3. 且A+C>B4. 且B+C>A9. A<=010. B<=011. C<=012. A+B<=C13. A+C<=B14. C+B<=A是否是等腰三角形15. A=B16. 或B=C17. 或A=C15. AB16. CB17. AC是否是等边三角形18. A=B且B=C且A=C18. AB19. CB20. AC设计测试用例:序号【A、B、C】覆盖等价类输出1【4,5,6】1.2.3.4一般三角形2【0,2,4】9不能构成三角形3【2,0,4】104【1,8,0】115【2,3,4】126【1,5,2】137【9,1,1】148【5,5,6】1.2.3.4.5等腰三角形9【6,5,5】1.2.3.4.610【5,6,5】1.2.3.4.711【3,4,5】1.2.3.4.5.15.16.17非等腰三角形12【5,5,5】1.2.3.4.8是等边三角形13【5,6,6】1.2.3.4.18非等边三角形14【5,6,5】1.2.3.4.1915【5,5,6】1.2.3.4.20题目三:用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1month12和1day31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为 2004 年11月29日,则该程序的输出为2004年12月1日。 (1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。 (3) 根据 (1) 和 (2) ,画出简化后的决策表。答:(1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类和无效等价类。 等价类yearmonthday有效等价类year属于int1month121day31无效等价类year属于floatmonth<1day<1year属于负数month>12day>31(2) month 变量的有效等价类为:M1:month=4,6,9,11 M2: month=1,3,5,7,8,10M3:month=12 M4:month=2day 变量的有效等价类为:D1: 1<=day<=26 D2:day=27D3:day=28 D4:day=29D5:day=30 D6:day=31year 变量的有效等价类为: Y1:year是闰年 Y2:year不是闰年考虑各种有效的输入情况,程序中可能采取的操作有以下七种: a1:day+2 a2:day=2 a3:day=1a4:month+1 a5:momth=1 a6:year+1a7:该日期不存在(3) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。条件桩 : C1:年份在Y1,Y2中之一C2:月份在M1,M2,M3,M4中之一C3:日期在D1,D2,D3,D4,D5,D6中之一 动作桩A1:日期增2A2:日期复位为2号A3:日期复位为1号A4:月份增1A5:月份复位为一月A6:年份增1A7:该日期不存在条件桩 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18C1:年份在Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1 Y2Y1Y2Y1Y2Y1Y2Y1Y1Y2Y1Y2Y1Y2C2:月份在M2M2M2M1M1M1M1M4M4M4M4M4M4M4M4M3M3M3C3:日期在D1D2D3D4D5D6D1D2D3D4D5D6D1D2D2D3D3D4D4D5D6D5D6D1D2D3D4D5D6动作桩A1: 日期增2A2: 日期复位为2号A3: 日期复位为1号A4: 月份增1A5: 月份复位为一月A6:年份增1A7: 该日期不存在(3) 根据 (1) (2)(3) ,画出简化后的决策表,并设计测试用例,做出测试分析。序号测试用例(年-月-日)实际输出 1 2003-1-32该日期不存在 2 2004-2-242004-2-26 3 2005-6-31该日期不存在 4 2008-4-162008-4-18 5 2009-6-302009-7-2 6 2010-11-30 2010-12-2 7 2010-11-31该日期不存在 8 2003-2-112003-2-13序号测试用例(年-月-日)实际输出 12004-2-26 2004-2-28 22005-2-24 2005-2-26 32008-2-22 2008-2-24 42007-2-28 2007-3-2 52004-4-31 该日期不存在 6 2003-2-29 该日期不存在 72004-2-30 该日期不存在 82008-12-28 2008-12-30 92010-12-30 2010-1-1102009-12-32 该日期不存在题目四:假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内 (P) , 求找给顾客最少货币个(张)数?(货币面值50元10 元,5 元,1元四 种 )。答:货币面值为N1、输入RPR>1000<R<=100R<=0P>100R<=P<=100P<R2、输出N50N10N5N1N50=1N50=04>=N10>=1N10=0N5=1N5=04>=N1>=1N1=03. 分析每种情况,以RR1,RR2,RR3,RR4表示计算要找50,10,5,1元货币数时剩余金额。R>100 R<=0 P>100 P<R RR1>=50 RR2>=10 RR3>=54、由上述之输入输出条件组合出可能的情形。(RR=P-R)R>100R<=00<R<=100,P>1000<R<=100,P<R0<R<=100,R<=P<=100,RR=500<R<=100,R<=P<=100,RR=490<R<=100,R<=P<=100,RR=100<R<=100,R<=P<=100,RR=90<R<=100,R<=P<=100,RR=50<R<=100,R<=P<=100,RR=40<R<=100,R<=P<=100,RR=10<R<=100,R<=P<=100,RR=05、为满足以上之各种情形,测试资料设计如下:1.货品价格=1012.货品价格=03.货品价格=-14.货品价格=100,付款金额=1015.货品价格=100,付款金额=996.货品价格=50,付款金额=1007.货品价格=51,付款金额=1008.货品价格=90,付款金额=1009.货品价格=91,付款金额=10010.货品价格=95,付款金额=10011.货品价格=96,付款金额=10012.货品价格=99,付款金额=10013.货品价格=100,付款金额=100