软件测试
软件测试
1. 分类
开发阶段分类:
- 单元测试:对最小模块测试
- 集成测试:小模块集成后测试
- 系统测试:所有流程统一的测试,包括功能测试、兼容性测试、性能测试、安全测试
- 验收测试:上线前的测试,包括
- α测试:内测,开发环境下测试模拟用户测试
- β测试:公测,实际环境下用户的测试
是否查看代码:
- 白盒测试:查看源代码进行测试,研究产品内部源代码和程序结构,例如单元测试。
- 黑盒测试(数据驱动测试):完全查看源代码进行测试,不考虑程序内部结构和内部特性,注重与测试软件的功能需求,只关心软件的输入数据和输出数据。
- 灰盒测试:只看一部分源代码进行测试,介于白盒与黑盒之间的测试
测试执行方式:
- 静态测试:不运行程序,只是检查代码
- 动态测试:运行程序,检查输入数据与输出数据是否符合逻辑
是否手工测试:
- 手动测试:即人工测试
- 自动测试:使用代码进行测试
其他:
- 冒烟测试:
- 回归测试:软件测试的第二轮开始,测试此前的bug是否修复
- 随机测试:模拟用户测试(用户测试一般是随机的),一般在最后一次
- 探索性测试:升级版的随机测试,未来的发展方向
2.自动化分层测试体系
- 70%单元测试
- 20%服务测试
- 10%用户界面测试
3.黑盒测试
常用测试方法:
等价类划分
输入域明确:把程序的输入域划分为若干个子集
分类:每个子集中选取少数代表性数据作为测试用例,其等价于所在类的其他值
常见分类:有效、无效等价类
边界值分析:将边界值作为重点测试数据,对等价类的补充
因果图:一个有向图,显示因果模型中变量之间的因果关系
判定表:一种表达因果关系的逻辑表达方式,使用表格分类条件、中间结果、最终结果之间的关系
决策树:判定表的另一种表示(比因果图和判定表好),可使用流程图表示
探索性测试:一种软件测试风格。基于上下文质量反馈的测试风格。适时调整测试执行
- 成本低,可以不用提前设计大量测试用例
- 可以激发测试工程师的创造性,更快发现问题
- 测试覆盖度无法得到有效保障
- 多数测试活动都是由探索性测试与脚本用例结合
3.测试用例
最终结果:成功 或 失败
三大核心要素:标题、步骤、断言
- 标题:测试用例的描述
- 步骤:测试执行过程的描述
- 断言:实际结果与预期结果对比
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Guailper的博客!
