软件测试发展历程
- 去证明软件是正确的
- 去证明软件是错误的
- 保证软件的质量是符合用户需求的一系列手段
软件测试的职业发展
- 先做功能测试,积累沉淀
- 自动化测试工程师
- 测试开发
- 持续集成
- testops
- 性能测试工程师
- 高级性能测试工程师
- 架构师
- 高级性能测试工程师
- 管理岗位
- 项目经理
- QA(质量保证)
- 自动化测试工程师
软件测试的分类
按照测试方法分类
- 黑盒测试:在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
- 白盒测试:白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
- 灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
按照测试方向分类
- 功能测试(功能测试不等于黑盒测试,黑盒测试是功能测试常用的一种方法)
- 性能测试
- 负载测试:不断增加负载发现软件的性能瓶颈
- 压力测试:在最大负载范围内持续运行,测试系统稳定性
- 并发测试:同一时刻发生多个任务
- 安全测试
按照测试阶段分类
- 单元测试:测试模块内方法、函数、类等代码
- 集成测试:测试不同模块间的接口
- 系统测试:功能,性能,安全,兼容性,易用性,稳定性等
- 验收测试:软件交付使用时的测试
其他分类
- 冒烟测试:测试前的测试
- 回归测试:测试之前发现的错误是否被修复
- α测试:内测
- β测试:公测