软件测试
介绍
黑盒测试
等价类划分:
将输入数据划分为若干个等价类,每个等价类中的数据被认为是等效的。测试时,只需要从每个等价类中选取一个代表性的值进行测试,这样可以减少测试用例的数量。等价类分为有效等价类和无效等价类,有效等价类是指符合程序规格说明的数据,而无效等价类则不符合。
边界值分析:
用于补充等价类划分的测试设计技术,它专注于测试输入或输出值的边界条件。边界值分析认为错误更可能发生在输入或输出值的边界上,因此测试边界值附近的数据。通常,边界值分析会测试边界值本身以及边界值的两侧。
决策表:
一种表格化的测试设计技术,用于描述复杂的业务逻辑和规则。它列出了所有可能的条件组合和相应的动作,帮助测试者识别测试用例。决策表通常用于复杂的条件判断和多条件组合的测试。
因果图:
一种图形化的测试设计技术,用于表示输入条件(原因)和输出结果(结果)之间的关系。它帮助测试者理解复杂的逻辑关系,并从中派生出测试用例。因果图通过逻辑运算符(如AND、OR)来表示条件之间的逻辑关系。
正交测试:
一种系统化测试设计方法,用于生成测试用例,确保测试的全面性和有效性。它通过正交表来确定测试用例,每个测试用例覆盖了所有因素的组合,但测试用例的数量远少于全组合。正交测试可以有效地发现软件中的错误。
场景测试:
一种基于用户操作序列的测试设计技术,它模拟用户的实际使用场景。场景测试关注于用户与系统交互的流程,以及在这个过程中可能遇到的问题。它有助于发现界面和流程上的问题。
基于FSM(有限状态机)模型的测试:
一种描述系统状态和状态之间转换的模型。基于FSM模型的测试关注于系统的状态转换是否正确,以及在特定状态下的行为是否符合预期。这种测试方法适用于那些具有明显状态和状态转换的系统。
白盒测试
语句覆盖 判定覆盖 条件覆盖 判定条件覆盖 条件组合覆盖,这些都是覆盖各类型的语句的测试方法
---------- 以下是路径覆盖 ----------
基路径测试
圈复杂度=独立路径数=每个语句执行的上界
独立路径即每一次都有新的结点OR路径加入 圈复杂度计算公式:
- 边数-结点数+端点数(常为2,若头尾相接则为1)
- 判定结点数+1
- 区域数(除全连接图,圈外也是一个区域)
循环体测试
-
简单
0,1,M(经典次数),N-1,N,N+1(健壮型,给出报错信息)
-
嵌套
- 先最外层为最小(为0 OR 1具体情况具体分析,异常值也试)
- 从最内层开始(按简单的套路来)
- 向外进行,外层保持最小,内层用经典值
-
独立连续
每个独立地测试
-
交叉连锁
非结构,不能测试,建议重新设计程序结构
-
Z路径测试
所有循环体视为有(1次)和无
数据流测试
- 设置符号,d k u
- 在控制流图中标注变量
- 在路径中写出数据流:d->u->k