参考答案:
【问题1】
(1)以0开头且小于3位的数字
(2)以非0和非1开头的4位数字
(3)②,⑦
(4)①,⑧
(5)无效
【问题2】
(6)2
(7)①-②
(8)2
(9)2
(10)4
(11) 3
(12)①-③-⑤-①-③-④-⑤-①-②
【问题3】
(13)5
详细解析:
本题考查软件测试中,使用等价类测试、语句覆盖等测试方法完成程序中功能模块和函数的测试。
题目已经给出员工编号的等价类以及员工编号问题的部分测试用例,需要根据员工编号的编码规则,完善等价类和测试用例表中内容;根据被测程序结构图,完成被测试程序的测试用例中部分内容。
【问题1】
题考查等价类软件测试方法。结合员工问题的等价类表、员工编号的编号规则,完成员工问题的等价类测试用例。
等价类划分法是黑盒测试中最基本、最常用的测试用例设计思想与方法,通过该方法可以将海量的随机输入数据测试变为少量的、更有针对性的测试。其具体方法就是将所有可能的输入数据,即程序的输入域划分成若干部分(子集), 然后从每一个子集中选取少数具有代表性的数据作为测试用例。
等价类是指某个输入域的子集合,可有两种不同的情况:有效等价类和无效等价类。“有效等价类”是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,利用有效等价类可以检验程序是否实现了规格说明中所规定的功能和性能要求。“无效等价类”与“有效等价类”相反,是指对程序的规格说明来说是无意义的、不合理的输入数据构成的集合,利用无效等价类可以检验程序是否具有容错性和较高的可靠性。
分析“地区码”的无效等价类,③、⑤和⑥将“非数字字符(其他字符输入)”“以0开头的大于4位的数字”以及“非0开头的数字”非法输入检测中,对“以0开头且小于3位的数字”的非法输入未包含,因此“地区码”的无效等价类④处应填写“以0开头且小于3位的数字”。
根据员工编号的编号规则“顺序号是以非0和非1开头的4位数字”可知,顺序号的有
效等价类⑦处应填写“以非0和非1开头的4位数字”。
在“被测试程序的测试用例”表中,地区码“0112”覆盖了等价类②,顺序号“7452” 覆盖了等价类⑦,因此第(3) 空应填②,⑦,输出"有效”;地区码“021” 覆盖了等价类①,顺序号“0045”覆盖了等价类⑧,因此第(4)空应填①,⑧,第(5)空的输出结果为“无效”。
【问题2】
分析“被测试程序的流程图”可知,函数模块的主要功能是求给定序列(数组)中最小元素位置的函数,函数的形参为n和i,中间变量为k和j,数据类型均为整型。给定不同的形参值,执行过程为:
当i=1, n=0时,k=1, j=2,此时“j<=n”的值为“假”,执行路径为①-②,直接结束。
当i=1,n=1时,k=1, j=2,此时“j<=n”的值为“假”,执行路径为①-②,直接结束。
因此第(6)空应填写“2”, 第(7)空填写执行的路径为“①-②”。
当i=1, n=2时, k=1, j=2,此时“j<=n”的值为“真”,此时a[j]即a[2]=5, a[k]即 a[1]=3, 选择条件“a[j]<a[k]” 的值为“假”,执行路径为①-③-⑤,进行“j++”操作后,j=3,执行路径为①-③-⑤-①,此时“j<=n”的值为“假”,执行路径为①-③-⑤-①-②,直接结束。整个循环执行了1次。因此第(8) 空形参n的值为“2”。
当i=1,n=3时,k=1, j=2,此时“j<=n”的值为“真”,此时a[j]=a[2]=5, a[k]=a[1]=3,选择条件“a[j]<a[k]” 的值为“假”,执行路径为①-③-⑤,进行“j++”操作后,j=3,执行路径为①-③-⑤-①,循环体完成1次执行;由于“j<=n”的值为“真”,执行路径为①-③-⑤①-③,a[j]=a[3]=1, a[k]=a[1]=3, 选择条件“a[j]<a[k]” 的值为“真”,执行路径为①-③-⑤-①-③-④,k和j的值一样都是3;执行路径变为①-③-⑤-①-③-④-⑤,执行“j++”语句后,j的值变为4;当执行路径变为①-③-⑤-①_③-④-⑤-①时,完成第2次循环后,“j<=n”的值为“假”,执行路径为①-③-⑤-①-③-④-⑤-①-②,直接结束。整个循环执行了2次。因此第(9)空循环次数为“2”,第(10)空中间变量j的值为“4”,第(11)空中间变量k的值为“3”,第(12)空整个程序执行的路径为“①-③-⑤~①-③-④-⑤-①-②”。
【问题3】
所谓语句覆盖,就是设计若干个测试用例,运行被测程序,使得每条可执行语句至少执行一次。而语句覆盖率的计算公式为“语句覆盖率=被评价到的语句数量/可执行的语句总数X100%”,分析“被测试程序的流程图”可知,被测程序的“被评价到的语句数量”和“可执行的语句总数”在形参n和i满足某个条件时,它们是相等的,此时语句覆盖率就是100%。分析表3-3被测试程序的测试用例可知,在测试用例序号为5时,此时形参i=1、n=3, 整个循环将执行2次,所有的语句都会被执行,被测程序的“被评价到的语句数量”和“可执行的语句总数”相等,因此该测试用例对应的语句覆盖率为100%。