软测笔记 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. 恒等:表示原因与结果之间一对一的对应关系。若原因出现则结果出现;若原因不出现,则结果不出现。

18.白盒测试:
一般原则:
  • 独立路径:至少被执行一次
  • 条件语句的每一个分支:至少被执行一次
  • 循环语句都在边界条件和一般条件下:至少被执行一次
逻辑覆盖:(分类有:)
  • 语句覆盖SC:保证被测试程序中的每一个语句至少执行一次。是最弱的覆盖准则,对于判断语句,只能覆盖其中的一个分支,不能发现另一个分支中的错误;对于复合条件语句也是不能发现此类错误。
  • 判定覆盖DC:又称分支覆盖,保证程序中每一个判断的取真分支至少经历一次,取假分支也至少经历一次。判定覆盖比语句覆盖强,但也不能确保一定查出在判定条件中存在的错误。对于复合条件,可能查不出某个子条件中的错误,因此还不是很完善。
  • 条件覆盖CC:保证程序中每个判断的每一个子条件的可能取值至少执行一次。但是条件覆盖不一定就比判定覆盖强。
  • 条件/判定覆盖C/DC:保证每个判断的所有分支至少执行一次,判断中每一个子条件的所有可能取指至少执行一次。也就是条件覆盖和判定覆盖都要满足。C/DC对于复合条件还是有可能查不出某个子条件中的错误,对于这个缺陷的解决办法:在流程图中,将单个的“复合条件”判定分解为多个基本的子条件判断。
  • 修订的条件/判定覆盖 MC/DC:首先要满足C/DC(条件/判定覆盖),在此基础上,对于每一个条件C,要求存在两次计算以满足如下条件:当条件C所在的判定内:“条件C取值相反,其余条件取值不变”时,判定的结果值也相反。核心就是:每个条件都要独立影响判定结果。MC/DC包含C/DC,条件组合覆盖包含MC/DC,它具有条件组合覆盖的优势,又同时大幅减少了测试用例数。满足MC/DC的用例数下界为条件数+1,上界为条件数的两倍。
  • 条件组合(多条件)覆盖 MCC:使得每一个判断的所有可能的子条件取值组合至少执行一次。需要覆盖判定中所有条件取值的所有可能组合,需要大量的测试用例,实用性较差。
  • 路径覆盖:覆盖程序中所有可能的路径。
        多重条件判段的路径选择:嵌套型分支结构:若有n个判定语句,则有n+1条路径。连锁型分支结构:若有n个判定语句,则有 2 ^n条路径。
        循环的路径选择:复杂循环有嵌套、连锁、非结构循环。
基于流程图的路径测试:将测试路径压缩在一定的限度内(基本路径)以保证每条基本路径最少被执行一次。在结构化测试中,将程序模型化为一个控制流程图(CFG)。
基本路径(独立路径)测试:在流图的基础上,分析环路复杂性,导出基本可执行路径,进而设计测试用例。
        特别注意:😍如果判断中的条件表达式是由一个或多个逻辑运算符连接的复合条件表达式,则需改为一系列只有单个条件的嵌套的判断
😉从流程图导出控制流图
😚从程序导出控制流图
独立路径数:
控制流图中的独立路径数:V(G)=边数E-节点数N+2
V(G)=平面分割的区域的个数=判断节点的个数P+1
  • 独立路径数=环路复杂性。这就能保证这些基本路径被执行。









全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务