边界值分析法—软件测试流程设计(2)

发表于:2020-3-26 10:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:老叶茶馆

分享:
   (4)简化判定表(可选)。
  简化判定表用于将相似规则进行合并,以简化测试用例。当然,它是以牺牲测试用例充分性为代价的。
  简化的过程为:找到判定表中输出完全相同的两列,观察它们的输入是否相似,例如,如果只有一个输入不同,说明不管该输入取何值,输出都是一样的,也就是说,该输入对输出的结果没有影响,因此可以将这两列合并为一列。
  图1-6展示了把两条规则简化为一条规则的示例。
  ▲图1-6 把两条规则简化为一条规则
  (5)生成测试用例。
  简化后的判定表的每一列可以作为一个测试用例,它的输入和输出都已经非常明确。
  3.案例1-5
  若用户欠费或停机,不允许其呼入/呼出。判定表如表1-11所示。
  表1-11 案例1-5的判定表
  
  其中表1-11的1~4列中的每一列就是一条规则。
  针对该判定表,可以化简,规则1和规则2的动作完全相同,条件桩中只有条件2的取值不同,因此可将规则1、规则2合并。化简后的结果如表1-12所示。每条规则对应一条测试用例,这样一共有3条测试用例。
  表1-12 案例1-5中判定表的化简
  
  4.案例1-6
  关于订购单的检查如下。
  如果金额大于500元且时间又未过期,则发出批准单和提货单;如果金额大于500元且时间过期了,则不发出批准单;如果金额小于或等于500元,则不论是否时间过期都发出批准单和提货单,在时间过期的情况下还需要发出通知单。
  请用判定表法对测试用例进行设计。
  (1)生成判定表,如表1-13所示。
  表1-13 案例1-6的判定表
  
  (2)合并相似规则,如表1-14所示。如果用例数不多,不建议合并(因为合并存在漏测的风险,一个显然易见的原因是,虽然某个输入条件在输出接口上是无关的,但是在软件设计上,内部针对这个条件选择了不同的程序分支)。
  表1-14 案例1-6中判定表的合并
  
  5.实际应用
  从以上案例可以看出,判定表法主要用于功能需求中的逻辑处理过程,处理过程越复杂,越有必要使用判定表法。考虑到控制系统以及游戏的处理过程比较复杂,因此判定表法在控制系统和游戏的测试中应用较多。
  对于典型的控制系统 ,如平常上下楼的电梯,电梯的运动比较复杂,在各层按选层按钮都会影响电梯的运动,因此可以采用判定表法进行用例设计。下面仅列出判定表中包含的条件和动作。
  电梯一般有十几层,高的有几十层,但这样考虑测试会非常复杂,因此可以将电梯进行简化,简化成一个3层的电梯。对于该电梯,在1层只能按“上”按钮,在3层只能按“下”按钮,在2层“上”“下”按钮都可以按。为了更好地确定条件和动作,可以先确定动作,然后分析影响这些动作的因素,就可以得到所有的条件。
  电梯的动作很好确定,有3个动作。
  电梯上。
  电梯下。
  电梯厢门打开。
  哪些因素会影响电梯的动作呢?通过分析可以得到:
  1层的按钮(按“上”或者不按,有两个条件项);
  2层的按钮(按“上”“下”或者不按,有3个条件项);
  3层的按钮(按“下”或者不按,有两个条件项);
  电梯所在楼层(1层、2层或3层,有3个条件项);
  电梯状态(电梯上、电梯下或者电梯停,有3个条件项)。
  如果只考虑外部按钮对电梯的影响,可以得到5个条件、3个动作,对应的全排列组合有2×3×2×3×3=108个。在这108个排列组合中有不少组合是无效的,比如电梯所在楼层为1层与电梯状态为“下”是冲突的,这样针对这108个组合可以进行大量化简,然后根据化简后的判定表来得到测试用例。
  对于扫雷游戏,具体游戏界面如图1-7所示。
  ▲图1-7 扫雷游戏界面
  扫雷游戏测试的一个重点在于各种游戏规则的测试(比如,用户单击,结果不小心点在一颗地雷上,这样游戏就会结束)。当针对这些游戏规则进行测试时,可以忽略雷区上面的雷数显示、笑脸、计时等。考虑到游戏规则比较多而且比较复杂,可以使用判定表法。列出所有可能的游戏规则,规则的前半部分就是条件,后半部分就是动作。比如,根据前面提到的规则,会得到条件为单击,方块下有地雷,动作为游戏结束。经过这种分析后可以得到如下条件。
  方块为白色。
  方块通过红色的数字1标识地雷。
  方块标识问号。
  方块显示灰色数字。
  单击。
  右击。
  当前方块是地雷。
  动作如下。
  方块为白色。
  方块标识地雷。
  方块标识问号。
  方块显示灰色数字。
  游戏失败。
  未标识方块闪烁(同时按鼠标左右键时会出现)。
  确定了条件和动作,就可以进行判定表的化简,从而得到测试用例。这里主要用于演示,因此并未测试扫雷游戏的所有游戏规则。
  6.练习
  练习1-4 针对以下需求,利用判定表法进行测试用例设计。
  如果想对文件进行修改,输入的第1列字符必须是A或B,第2列字符必须是数字。如果第1列字符不正确,则给出信息L;如果第2列字符不正确,则给出信息M。


版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号