软件测试实验报告实验一:人民币数字大写转换1引言1.1系统概述本软件的用途是实现人民币数字大写转化。如¥6007.14,应写成:人民币陆仟零柒元壹角肆分。1.2文档概述本文档将给出测试设计、测试用例、测试结果及其对该软件的评价。1.3测试环境与配置操作系统:windows7旗舰版CPU:Intel(R)Core(TM)2DuoCPUT6500IDE:(IntegratedDevelopmentEnvironment)Myeclipse内存:2G1.4测试方法手工利用黑盒测试中的等价类划分法进行测试,主要测试目标为检验函数是否符合题目所给要求。即:输入是否符合规定条件,及程序的鲁棒性。2测试用例的设计2.1等价类划分1)有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。2)无效等价类与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。设计测试用例时要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。针对本次测试,等价类可划分如下:表2-1人民币数字大写转化等价类表输入条件有效等价类无效等价类输入为非负数大于或者等于0的数⑴负数⑵非数字字符⑶中间有一个0的数字0-9的数字,中间位含一个0⑷中间含一个字母或其他非数字字符⑸中间多个0的数字数字中间至少含两个0⑸中间含其他多种非法字符⑹输入为整数无小数的数字⑺以非数字结尾⑻小数位不多于两位数字小数点后最多有两位⑼小数位超出两位⑽角位是0,而分位不是0小数点后面第一位是0,第二位不是0⑾小数点后两位非数字或角位不是0⑿金额数字万位和元位是0整数部分第十位和第一位是0⒀第十位或者第一位非0⒁有效等价类测试用例设计:(尽可能多的覆盖有效等价类)表2-2有效等价类测试用例测试数据期望结果实际输出覆盖范围1245人名币壹仟贰佰肆拾伍元整人名币壹仟贰佰肆拾伍元整⑴⑺1093.98人名币壹仟零玖拾叁元玖角捌分人名币壹仟零玖拾叁元玖角捌分⑷⑼⑴10003人名币壹万零叁元整人名币壹万零叁元整⑸⑴1020.02人名币壹仟零贰拾元零贰分人名币壹仟零贰拾元零贰分⑾⑼⑴10230.33人名币壹万零贰佰叁拾元零叁角叁分人名币壹万零贰佰叁拾元零叁角叁分⒀⑼⑷⑴100304.02人名币壹拾万零叁佰零肆元零贰分人名币壹拾万零叁佰零肆元零贰分⑴⑷⑾⑸⑼无效等价类测试用例设计:(仅覆盖一个无效等价类)表2-2无效等价类测试用例测试数据期望结果实际输出覆盖范围-1234输入为负数人名币负壹仟贰佰叁拾肆元整⑵Abc输入非法字符输入有误!⑶214f2输入中含有一个非法字符输入有误!⑸34seg422输入中含多个非法字符输入有误!⑹142fsef输入以非法字符结尾输入有误!⑻1232.32523输入小数位数过多输入有误!⑽384.ds小数是非法字符输入有误!⑿1d248f.33输入中含非法字符输入有误!⒁2.2边界值分析法测试用例边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。边界值分析是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。实践证明,为检验边界附近的处理专门设计测试用例,常常取得良好的测试效果。边界值分析法不仅重视输入条件边界,而且也适用于输出域测试用例。对边界值设计测试用例,应遵循以下几条原则:①如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。②如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。③根据规格说明的每个输出条件,使用前面的原则①。④根据规格说明的每个输出条件,应用前面的原则②。⑤如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。⑥如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。⑦分析规格说明,找出其他可能的边界条件。表2-2边界值分析法测试用例输入条件测试用例说明测试数据期望结果选取理由数字以零作为输入0零元整正负数的边界零的边界作为输入-0.01输入有误0的边界输入17个数字99……99999超出数据范围最大值限定额字符首部含有一个字符Q8375最高位非法字符最高位输错结尾含有一个字符3894j最低位非法字符最低位输错两个小数点738.23.04输入有误,不可识别数字书写错误2.3因果图法因果图法即因果分析图,又叫特性要因图、石川图或鱼翅图,它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。针对于本次实验,可进行如下的设计:(1)分析程序规格说明中的原因和结果:原因结果输入非法字符输入有错,含非法字符有效数字输出相应的大写金额超出数字范围超出最大值限定(2)画出因果图(编号为10的中间结点是导出结果的进一步c1:输入非法字符e1:输入有错,含非法字符c2:输入数字e2:输出相应的大写金额c3:超出数字范围e3:超出最大值限定E~(3)将因果图转换成如下所示的决策表:规则选项12345678条件(原因)C1C2C311000001010011100101110111动作e1e2e3不可能truetruetruetruetruetruetruetrue测试用例17个数字91245Sskahfi6826hksa(3)根据决策表中的每一列设计测试用例:测试用例编号输入数据预计输出1999……十七个数值超出范围21245人名币壹仟贰佰肆拾伍元整3Sskahfi输入非法字符46826hksa输入含非法字符C1C2C3e1e3e211~3测试结果概述3.1对被测试软件的总体评估a.根据本报告中所展示的测试结果,本程序实现的功能基本得以完成,但在某些细节如设计需求和软件应用时应标明输入的取值范围,以免出错。同时,在出错后应给出相对应的提示。b.本程序中对于负数的处理是直接在金额前输出负字,该功能应该确定好需求分析,以防功能要求是不容许输入负数。3.2测试环境的影响在测试过程中,程序环境需要在Myeclipse开发环境中运行,对环境要求配置有一定的局限性。基本配置JDK后,该程序就可以运行。3.3改进建议改进方面:1.对需求进行更加详细的的理解,可不需要进行不必要的扩展。2.在针对不同的输入错误,可给予不同的提示,而不仅仅全是输入有错即可。4详细的测试结果4.1测试结果依据测试的结果,可分析如下:对于有效等价类的测试结果如下表所示,输出结果和期望一致。测试数据期望结果实际输出测试结果1245人名币壹仟贰佰肆拾伍元整人名币壹仟贰佰肆拾伍元整符合要求1093.98人名币壹仟零玖拾叁元玖角捌分人名币壹仟零玖拾叁元玖角捌分符合要求10003人名币壹万零叁元整人名币壹万零叁元整符合要求1020.02人名币壹仟零贰拾元零贰分人名币壹仟零贰拾元零贰分符合要求10230.33人名币壹万零贰佰叁拾元零叁角叁分人名币壹万零贰佰叁拾元零叁角叁分符合要求100304.02人名币壹拾万零叁佰零肆元零贰分人名币壹拾万零叁佰零肆元零贰分符合要求对于无效等价类的测试结果如下表所示,输出结果和理想状况基本一致。测试数据期望结果实际输出测试结果-1234输入为负数人名币负壹仟贰佰叁拾肆元整因依据需求进行设计Abc输入非法字符输入有误!满足要求214f2输入中含有一个非法字符输入有误!满足要求34seg422输入中含多个非法字符输入有误!满足要求142fsef输入以非法字符结尾输入有误!满足要求1232.32523输入小数位数过多输入有误!满足要求384.ds小数是非法字符输入有误!满足要求1d248f.33输入中含非法字符输入有误!满足要求边界值分析法测试用例分析结果:输入条件测试用例说明测试数据期望结果测试结果数字以零作为输入0零元整符合要求零的边界作为输入-0.01输入有误依据需求进行改进,有些偏差输入17个数字99……99999超出数据范围符合要求,但应在设计中表明要求字符首部含有一个字符Q8375最高位非法字符基本符合结尾含有一个字符3894j最低位非法字符基本符合两个小数点738.23.04输入有误,不可识别基本符合对于因果获得的测试结果如下:测试用例编号输入数据预计输出实际输出1999……十七个数值超出范围超出额定数值21245人名币壹仟贰佰肆拾伍元整人名币壹仟贰佰肆拾伍元整3Sskahfi输入非法字符输入有错!46826hksa输入含非法字符输入有错!4.2小结在本次测试中,程序基本满足用户的需求,基本功能点都得以实现。主要还有些在需求方面需要进行进一步的深入了解。如对于输入负数的情形,是直接输入无效了,还是输出直接在金额前面输出负的字样。同时,对于输入的不同的错误可以提示出不同的错误更会体现程序的友好性,在对金额数目的限制中没能很好的体现,容易造成错误的产生。