1、软件测试:使用人工或自动的手段来运行或测量软件系统的过程,以检测软件的是否满足规定的要求,并要求找出预期结果之间的差异
2、软件的测试基本流程:
(1)测试需求分析
(2)测试计划阶段
(3)测试设计和开发阶段
(4)测试实施阶段
(5)测试评估
3、软件测试的分类:
(1)按照测试层次分类:
- 底层测试:单元测试(Unit Testing)
- 接口层次:集成测试(Integration Testing)
- 系统层次:系统测试(System Testing)
- 用户层次:验收测试(Acceptance Testing,beta Testing)即α测试,β测试
(2)按被测试的对象分类:
- 单元测试,包括组件测试、模块测试
- 程序测试
- 系统测试
- 文档测试,包括需求文档、设计文档、用户手册等
- web应用测试、客户端测试
- 数据库测试、服务器测试
(3)按测试目的分类:
- 功能测试:也称准确性测试,,验证每个功能是否按照要求正常工作
- 压力测试:也称负载测试,用来检查系统在不同负载(如数据量、并发用户、连接数)条件下的系统运行情况,特别是高负载、极限负载下系统运行情况,以发现系统不稳定、系统性能瓶颈、内存泄露、CPU使用率过高等问题
- 性能测试:测定系统在不同负载条件下的系统具体的性能指标
- 可靠性测试:检验系统是否能保持长期稳定、正常运行,确定系统平均故障间隔时间,包括强壮性测试和异常处理测试
- 灾难恢复性测试:在系统崩溃、硬件故障或其他灾难发生之后,重新恢复系统和数据的能力测试
- 安全性测试:测试系统在应对非授权的内部/外部访问、有意攻击时系统防护能力
- 兼容性测试:测试系统在不同运行环境(网络、硬件、第三方软件)下的实际表现
- 回归测试:为保证软件中新的变化(新增加的代码、代码修正等)不会对原有功能的正常使用有影响而进行的测试
- 安装测试:在一个真实的或近似的用户环境中,检验系统是否能安装说明书成功地完成系统的安装,其中要考虑环境的不同设置或配置,安装文档的正确性等
(4)根据被测软件是否被执行,可分为静态测试和动态测试
(5)根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试
(6)根据测试是否由软件根据或程序来完成测试工具,分为自动化测试和手工测试