根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。粒度从小到大。
根据测试方法可分为:黑盒测试、白盒测试、灰盒测试
根据软件主要侧重可分为:功能测试、性能测试、兼容测试、压力测试、负载测试、验收测试。
根据是否运行可分为:静态测试、动态测试
白盒测试:
语句覆盖 主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。
判定覆盖 主要特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。
条件覆盖 主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
判定/条件覆盖 主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
组合覆盖 主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
路径覆盖 主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。
单元测试的策略:
逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析
单元测试依据详细设计文档
集成测试依据概括设计文档
系统测试依据系统设计文档
动态分析:代码运行结束后。模块功能检查和系统压力测试,必须执行代码后才能分析。
静态分析:代码运行之前。数据流分析和代码覆盖率,不需要执行代码就可分析。
软件测试一般分α、β、λ三个阶段,
α是第一阶段,一般只供内部测试使用;
β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;
λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。
测试用例设计方法:
1、等价类划分
2、边界值分析
3、因果图
4、功能图分析
5、错误推测
6、判定表驱动分析
7、正交实验设计
8、场景设计