黑盒测试
测试用例选择
- 为每一个等价类规定一个唯一编号;
- 设计一个新的测试用例,使其尽可能多地覆盖 尚未被覆盖的有效等价类,重复这一步,直到 所有的有效等价类都被覆盖为止;
- 设计一个新的测试用例,使其仅覆盖一个尚未 被覆盖的无效等价类,重复这一步,直到所有 的无效等价类都被覆盖为止
分类
是否是三角形的三条边
等价类
A>0
B>0
c>0
A+B>C
B+C>A
A+C>B
非等价类
A<=0
B<=0
C<=0
A+B<=C
…
是否等腰
等价类
A=B
B=C
C=A
非等价类
A!=B!=C
是否等边
等价类
A=B=C
非等价类
A!=B
B!=C
C!=A
边界值分析法(单缺陷假设)
比最大值稍微小一点,比最小值稍微大一点
健壮性测试:(再多两个点)
比最大值稍微大一点,比最小值稍微小一点
最坏情况测试:
多变量取极值的情况
健壮最坏情况测试
最坏情况取超边界情况
错误推测法
根据经验推测
简单有效,但系统性差,是其他的补充
判定表法
判定表是一种用来表示和分析复杂逻辑关系的工具,最适 合描述在多个逻辑条件取值的组合所构成的复杂情况下, 分别要执行哪些不同的动作。
条件桩(Condition Stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
条件项(Condition Entry):列出针对它所列条件的取值,在所有可能情况下的真假值。
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作
例子
“……对于功率大于50马力的机器,并且维修记录不全或已运行 10年以上的机器,应给予优先的维修处理……
(1)列出所有的条件桩和动作桩
– 条件桩 C1:功率大于50马力吗? C2:维修记录不全吗? C3:运行超过10年吗?
– 动作桩 A1:进行优先处理 A2:做其他处理
(2)确定规则个数
– 输入条件个数:3
– 每个条件的取值:“是”或“否”
– 规则个数:222 =8
因果图法
从用自然语言书写的程序规格说明 的描述中找出因(输入条件)和果(输出或程序状态的改 变),通过因果图转换为判定表
基本步骤
分析软件规格说明描述中,哪些是原因(即输入条件或输入 条件的等价类),哪些是结果(即输出条件),并给每个原因和 结果赋予一个标识符。
分析软件规格说明描述中的语义,找出原因与结果之间,原 因与原因之间对应的关系,根据这些关系,画出因果图
由于语法或环境限制,有些原因与原因之间,结果与结果之 间的组合情况不可能出现。为表明这些特殊情况,在因果图上用 一些记号标明约束或限制条件
把因果图转换成判定表。
把判定表的每一列拿出来作为依据,设计测试用例
图形符号