广东海洋大学学生实验报告书实验名称实验三黑盒测试(2)课程名称软件测试成绩学院(系)软件学院专业软件工程班级学生姓名学号实验地点实验日期一、实验目的:1.掌握黑盒测试方法中的等价类划分方法和边界值分析方法。2.掌握组合分析工具Pict的使用二、实验内容:1.编写NextDate()函数,结合等价类划分方法和边界值分析方法来设计测试用例,并运行测试验证是否存在缺陷。(详细代码在后面的附录中)测试程序源代码已检查下面是对NextDate程序划分等价类:年份在1900-2010内(含边界)月份在1-12月内(含边界)闰年二月29天输入必须是整数输入月份对应天数一定输入必须是八个数有效等价类无效等价类年份在1900-2010内(含边界)(1)1.年份小于1900(7)2.年份大于2010(8)输入必须为整数(2)输入非整数(9)输入月份在1-12内(含边界)(3)1.月份小于1(10)2.月份大于12(11)输入闰年2月29天(4)输入闰月无29号(12)输入月份正确天数(5)输入日期不与月份对应(13)输入为八个数(6)1.输入大于八个数(14)2.输入小于八个数(15)根据等价类划分测试用例:测试用例覆盖等价类19010331(1)(2)(3)(5)(6)20000229(1)(2)(3)(4)(5)(6)19010228(1)(2)(3)(5)(6)18990130(7)(2)(3)(5)(6)20110130(8)(2)(3)(5)(6)*asd1238(1)(9)(3)(5)(6)19010030(1)(2)(10)(5)(6)19011330(1)(2)(11)(5)(6)19010229(1)(2)(3)(12)(5)(6)19010332(1)(2)(3)(13)(6)190103112(1)(2)(3)(5)(14)1901312(1)(2)(3)(5)(15)2.假设一个基于登录的测试集,需要如下参数:帐户、密码、验证码、按钮。每个参数都要列出其对应的值,如下所示:帐户名:空,不存在,超长,超短,正常密码:空,超长,超短,不匹配,正常验证码:空,超长,超短,不匹配,正常按钮:确定,取消上述的测试如果做完全的测试,需要多少个测试用例?请说明组合分析算法的思想,并使用Pict工具生成测试用例。1)从列表可以看出,有250种组合方式。在短时间内对其做测试,将是非常困难的。研究表明,通过PICT,测试用例的数量将大大降低;同时,也可保证很高的测试覆盖率。2)组合分析算法思想:通过对测试变量的所有维度及维度的组合,避免穷举测试所有维度的所有值及其组合来减少测试用例数量的一种方法3)PICT是一个命令行工具;测试用例的输入、输出可通过文本模式的文件进行。C:\DocumentsandSettings\tongzhan>pictPairwiseIndependentCombinatorialTestingUsage:pictmodel[options]Options:/o:N-Orderofcombinations(default:2)/d:C-Separatorforvalues(default:,)/a:C-Separatorforaliases(default:|)/n:C-Negativevalueprefix(default:~)/e:file–Filewithseedingrows/r[:N]-Randomizegeneration,N–seed/c-Case-sensitivemodelevaluation/s-ShowmodelstatisticsPICT安装的时候,在系统环境中自动增加了PICT的PATH,所以可在任意路径下执行。如直接通过PICT执行参数文档,测试用例会打印在屏幕上,如下所示:D:\测试方法\两两测试>pictlogin.txt帐户名密码验证码按钮不存在空不匹配确定空正常正常取消超长不匹配空确定超短超短空取消超短空超长取消空超长不匹配确定正常超短正常确定不存在不匹配超短取消空正常超短确定超长超长正常取消正常正常不匹配取消正常不匹配超长确定不存在超长正常确定超短不匹配正常确定不存在正常空确定超长空超短取消超短超长超短取消正常空空确定超短超长空确定超短正常正常确定空超短超短确定空超短超长确定正常超长超短取消不存在空正常确定超长超短不匹配取消超短不匹配不匹配取消超长正常超长取消空空空确定空不匹配超长取消不存在超短超长取消空超长超长确定也可把测试用例保存到指定文件中,如下所示:D:\测试方法\两两测试>pictlogin.txt>登录.xls三、实验总结通过本次试验加深了对黑盒测试中的“划分等价类”分析方法、“边界类”分析方法的了解。并学会了如何使用pict软件。附录NextDate()函数源代码1、调用java类库importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;publicclassCTime{privateStringstrTime;...