软件测试基础
白盒测试的方法:
-
语句覆盖:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。所谓足够的指的是越少越好
-
判定覆盖:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。
-
条件覆盖:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
-
判定/条件覆盖:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
-
组合覆盖:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
-
路径覆盖:设计足够的测试用例,覆盖程序中所有可能的路径。
覆盖准则由弱到强依次是语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
白盒测试用例设计方法:
- 代码检查法、
- 静态结构分析法、
- 静态质量度量法、
- 逻辑覆盖法、
- 基本路径覆盖测试法、
- 域测试、
- 符号测试
黑盒测试用例设计方法:
- 等价类划分法、
- 边界值分析法、
- 错误推测法、
- 因果图法、
- 判定表驱动法、
- 正交试验设计法、
- 功能图法、
- 场景图法
边界值法既可以用于黑盒测试用例,也可以用于白盒测试用例。
单元测试的策略:
- 逻辑覆盖、
- 循环覆盖、
- 同行评审、
- 桌前检查、
- 代码走查、
- 代码评审、
- 景泰数据流分析
单元测试主要技术手段:
- mock:对代码中某些不容易获取的对象创建虚拟对象来测试
- stub:桩函数是代替某些被调用了但是没有编写代码,一般再增量迭代自底向上的过程中不用编写。再自顶向下的过程中需要编写
- 驱动函数:调用被测函数,给被测函数传参
GUI测试手段是系统测试手段
单元测试,详细设计文档
集成测试,概括设计文档
系统测试,系统设计文档