1.按照测试阶段划分
- 单元测试(Unit Testing):又叫模块测试,对软件组成单位(模块)进行测试,目的就是校验软件基本组成单位的正确性。(负责人:一般由开发自己负责)
- 集成测试(Integration Testing):又称组装测试、联合测试,将程序模块采用适当策略组装起来,对集成后的功能和系统的接口进行检测,目的是检验软件单位之间的接口是否正确。
- 系统测试(System Testing):把软件系统看成是一个系统的测试,包括对功能、性能、软件所运行的软硬件环境的测试。(负责人:测试工程师)
- 验收测试(Acceptance Testing):又叫交付测试,是部署软件之前的最后一个测试操作,是向客户展示软件系统满足原始需求。(负责人:一般是产品经理)
2.按照代码可见度划分
- 黑盒测试(Black-Box Testing):不关注代码的实现,把被测软件当成一个黑盒子,不关心内部结构,只关心软件的输入和输出数据。
- 白盒测试(White-Box Testing):又称透明盒测试、结构测试、基于代码测试和逻辑驱动测试,指的是对程序的代码进行测试,去研究里面的源代码和程序结构。
- 灰盒测试(Gray-Box Testing):是介于黑盒测试和白盒测试之间的一种测试,不仅关注程序内部情况,也关注输入和输出的正确性。
3.按照是否手工划分
- 手工测试(Manual Testing):手工测试是由人工一条一条的输入用例,然后观察结果。
- 自动化测试(Automation Testing):简答来说就是把手工测试转化为机器执行的一种过程。
4.按照是否运行划分
- 静态测试(Static Testing):不运行程序,检查源程序的语法、结构、接口等,是否正确,还要校验需求说明书、软件设计说明书、流程图等。
- 动态测试(Dynamic Testing):运行被测试程序,检查运行结果与预期结果的差异。
5.按照测试实施的组织划分
- α测试(Alpha Testing):把用户请到开发方场所来测试,测试环境受到开发方的控制,用户的数量比较少,α测试先于β测试。
- β测试(Beta Testing):在用户的场所进行测试,测试环境不受开发方控制的,用户数量比较多,时间不集中,测试周期比较长。
6.非功能测试
- 性能测试(Performance Testing):校验系统是否满足客户要求的性能(稳定性、响应时间、吞吐量(TPS))
- 安全测试(Safaty Testing):是一个单独的领域,需要很多专业知识,是为了发现潜在的安全漏洞和风险而进行的一系列测试活动
- 兼容性测试(Compatibility Testing):指的是软件之间是否能够很好的工作,软件和硬件之间是否能够很好的工作(平台兼容、浏览器测试、软件本身是否向前或者向后兼容等)
- 文档测试(Doucument Testing):关注文档的术语、正确性、完整性、一致性、易用性(软件需求说明书、用户手册、操作手册、测试分析报告、测试计划、用户操作说明书等)
- 易用性测试(User Ability Testing):又叫用户体验测试,体现交互的适应性、有效性
- 界面测试(User Interface Testing):UI测试,检查页面中文字、图片、风格是否一致
- 安装测试(Installation Testing):应用程序的安装、卸载
7.测试策略
- 冒烟测试:在开发提交系统测试时,需要保障提测的基本质量,测试工作是顺利实施的,功能没有缺失,核心业务流程能走通。
- 回归测试 :在测试的过程中会发现缺陷,发现之后开发会进行修复,修复完毕之后需要重新进行验证。