软件测试--(4)黑盒测试
测试用例
是为特定目的为设计的一组测试输入、执行条件和预期的结果,是执行的最小实体。
1.等价划分
依据软件需求说明对输入的范围进行细分,然后在分出的每一个区域内选取一个有代表性的测试数据开展测试。
有效等价类:符合需求说明,合理地输入数据集合;
无效等价类:不符合需求说明,无意义低输入数据的集合。
等价划分方法设计测试用例的主要的两个步骤:1.确定等价类;2.生成测试用例。
具体步骤:
划分等价类;
为每个等价类表中的每一个等价类分别规定一个唯一的编号;
设计一个新的测试用例,使它能够尽量多覆盖尚覆盖的有效等价类。重复该步骤,直到所有的有效等价类均被用例所覆盖;
设计一个新用例,使它仅覆盖一个尚未覆盖的无效等价类。重复该步骤,直到所有的无效等价类均被用例所覆盖。
2.边界值分析
考虑边界条件的测试用例与其他没有考虑边界条件的测试用例相比,具有更高的测试回报率。
通常作为对等价划分的一种补充
边界条件是值输入和输出等价类中那些处于边界、超过边界、或者在边界一下的状态。
边界值分析法与等价划分方法的不同:
1.与等价类中挑选出任意一个元素作为代表不同,边界值分析需要选择一个或多个元素,以便等价类的每个边界都经过一次测试。
2.与仅仅关注输入(空间)条件不同,边界值分析还需要考虑从结果空间(输出等价类)设计测试用例。
确定边界值的常用指南:
1.如果输入条件规定了一个输入值范围,那么应针对范围的边界设计测试用例,针对刚刚越界的情况设计无效输入测试用例。
2.如果输入条件规定了输入值的数量,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例。
3.对每个输出条件应用指南1.
4.对每个输出条件应用指南2.
5.如果程序输入或输出是一个有序序列(如顺序文件、线性列表或表格)则应特别注意该序列的第一个和最后一个元素。
6.自由发挥
等价划分和边界值分析的一个弱点是没有对输入条件的组合进行分析。
3.因果图
借助于一个系统的方法选择出高效的测试用例集,而且可以指出规格说明不完整的和不明确之处。
步骤:
1.将规格说明分解为可执行的片段。这是必须的步骤,因为因果图不善于处理比较大的规格说明
2.确定规格说明中的因果关系。所谓因是指一个明确的输入条件或者输入条件的等价类。所谓果是指一个输出条件或者系统转换。,因和果被确定下来之后,每个因和果都被赋予一个唯一的编号。
3.分析规格说明的语义内容,并将其转换为因果关系的布尔图。这就是因果图。
4.给图加上注解符号,说明由于语法或者环境的限制而不能联系起来的因和果。
5.通过仔细跟踪图中的状态变化情况,将因果图转换成一个有限项的判定表。表中的每一列代表一个测试用例。
6.将判定表中的列转换成测试用例。
最有难度的地方在于将因果图转化成判定表,但这个过程可以编写程序自动完成。
4.错误猜测
基于经验和直觉推测程序中所有可能存在的各种错误,而有针对性的设计测试用例的方法。
比如:
1.输入或者输出为0的情况;
2.输入为空格时;
3.一些字段设计成了可修改字段时;
4.导出页面字段显示错误;
5.输入列表所有条目的值都相同;
6.输入条目是排过序的等。
4.1一般测试
4.2常用空间的测试
1. 本文框测试
(1)输入正常字母或者数字,例如在“名称”中输入“工作表4”,按下确定按钮,确定当前的工作表之前建立了一个名称为“工作表4”的工作表。
(2)输入已存在的工作表名称。例如,已有“工作表1”,再次输入“工作表1”,程序应当给出提示。
(3)输入超长字符。例如在“名称”中输入超过允许边界个数的字符,假设最多为255个字符,尝试输入256个字符,检查程序能否正确处理;
(4)输入默认值,空白,空格。例如在“名称”中输入空格,按“确定”;或者使用默认值,“直接按确定”;或者删除默认值,使内容为空白,按“确定”。
(5)若只允许输入字母,尝试输入数字;若只允许输入数字,尝试输入字母;
(6)利用复制粘贴等操作强制输入程序不允许输入的数据,例如,某文本框只允许输入数字,利用复制粘贴操作,粘贴文本到该文本框,程序不应当允许这样的操作;
(7)输入特殊字符。例如NUL,\n等变成语言的保留字;
(8)输入超过文本框长度的字符或者输入多行文本,检查输入内容可以正常显示。
(9)输入不符合格式要求的数据,检查程序能否正确校验。
2.按钮
(1)点击按钮正确相应操作;
(2)对非法输入或操作给出足够的提示说明。例如输入手机号码不正确时,点击提交时,能够提示手机号码不准确。
(3)错误说明应该清楚明了恰当,让用户明白错误出处;
(4)对可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会。例如删除、关闭、复制、移动等操作,点击删除按钮,系统应该提示“是否删除文件?”,点击关闭按钮,若文件没有保存,系统应该提示“文件未保存,是否要保存文件?”