软测笔记 2020-9-23
1.(测试经验)大量的错误是发生在输入或输出范围的边界上,而不是在范围的内部。
2. 边界值分析的测试用例的生成方法:
n个变量–>4n+1个测试用例。
3. 如果有一个n变量函数,健壮性测试会产生多少个测试用例?
n个变量–>6n+1个测试用例。
4. 如果有一个n变量函数,最坏情况测试会产生多少个测试用例?
n个变量–>5^n个测试用例。
5. 如果有一个n变量函数,健壮最坏情况测试会产生多少个测试用例?
n个变量–>7^n个测试用例。
6. 特殊值测试:特别依赖测试人员的经验。有主观性、有效性。
7. 随机测试:x = Int(b – a + 1)* Rnd + a
(其中,函数Rnd用于生成区间[0,1]内的随机数)
该程序利用上述语句可以不断地生成x的随机值,直到每种输出至少出现一次。
8. 等价类测试:1.从等价类(子集)中取若干元素来代表整个等价类 2.覆盖所有的等价类
等价类测试的几种分类 :基于输入的等价类测试、基于输出的等价类测试、强等价类测试(基于多缺陷假设)、弱等价类测试(基于单缺陷假设)、健壮等价类测试、一般等价类测试。有效等价类、无效等价类(这两类是基于程序的功能说明来划分的,前者是合理的,有意义的输入数据所构成的集合,用于检验程序是否实现了预期的功能;后者是不合理的,无意义的输入数据所构成的集合,检验程序对于无效数据的处理)。
等价类测试的几个特点:
• 等价类测试的弱形式不如对应的强形式全面。
• 健壮性测试适用于“错误处理非常重要”的软件
• 在发现“合适”的等价关系之前,可能需要进行多次尝试。
9. 等价类测试的步骤
生成测试用例:
(1)为每一个等价类规定一个唯一的编号;
(2)设计一个新的测试用例,使其覆盖尽可能多的尚未覆盖的有效等价类;重复这一步骤,直到所有的有效等价类均被覆盖;
(3)设计一个新的测试用例,使其只覆盖一个无效等价类,重复这一
步骤,直到所有的无效等价类均被覆盖。
10. 决策表测试:是最严格的黑盒测试方法,因为决策表具有逻辑严格性。
11. 决策表的简化规则:若两条规则具有相同的操作,极其相似的条件,则可合并这两条规则。
12. 带有互斥条件的决策表:互斥的项用 F!来表示:该项必须是F。
13. 除互斥以外还要注意决策表中的冗余情况和不一致情况。
14. 另:决策表分析不太适合佣金问题。因为佣金问题中只有很少的决策逻辑。
15. 收缩决策表的方法:•合并相似规则;•使用扩展条目决策表。
16. 因果图测试法:通常用Ci表示原因,Ei表示结果。各结点表示状态,可取值“0”或“1”。
17. 恒等:表示原因与结果之间一对一的对应关系。若原因出现则结果出现;若原因不出现,则结果不出现。
- 独立路径:至少被执行一次
- 条件语句的每一个分支:至少被执行一次
- 循环语句都在边界条件和一般条件下:至少被执行一次
- 语句覆盖SC:保证被测试程序中的每一个语句至少执行一次。是最弱的覆盖准则,对于判断语句,只能覆盖其中的一个分支,不能发现另一个分支中的错误;对于复合条件语句也是不能发现此类错误。
- 判定覆盖DC:又称分支覆盖,保证程序中每一个判断的取真分支至少经历一次,取假分支也至少经历一次。判定覆盖比语句覆盖强,但也不能确保一定查出在判定条件中存在的错误。对于复合条件,可能查不出某个子条件中的错误,因此还不是很完善。
- 条件覆盖CC:保证程序中每个判断的每一个子条件的可能取值至少执行一次。但是条件覆盖不一定就比判定覆盖强。
- 条件/判定覆盖C/DC:保证每个判断的所有分支至少执行一次,判断中每一个子条件的所有可能取指至少执行一次。也就是条件覆盖和判定覆盖都要满足。C/DC对于复合条件还是有可能查不出某个子条件中的错误,对于这个缺陷的解决办法:在流程图中,将单个的“复合条件”判定分解为多个基本的子条件判断。
- 修订的条件/判定覆盖 MC/DC:首先要满足C/DC(条件/判定覆盖),在此基础上,对于每一个条件C,要求存在两次计算以满足如下条件:当条件C所在的判定内:“条件C取值相反,其余条件取值不变”时,判定的结果值也相反。核心就是:每个条件都要独立影响判定结果。MC/DC包含C/DC,条件组合覆盖包含MC/DC,它具有条件组合覆盖的优势,又同时大幅减少了测试用例数。满足MC/DC的用例数下界为条件数+1,上界为条件数的两倍。
- 条件组合(多条件)覆盖 MCC:使得每一个判断的所有可能的子条件取值组合至少执行一次。需要覆盖判定中所有条件取值的所有可能组合,需要大量的测试用例,实用性较差。
- 路径覆盖:覆盖程序中所有可能的路径。
- 独立路径数=环路复杂性。这就能保证这些基本路径被执行。
-