在软件测试生命周期中定义了很多术语,这篇文章将总结所有这些术语(我所了解的)。这其中的一些可能跟其他地方的定义不完全一致,仅仅是我的理解。如果您有什么疑惑请让我知道。
本文所说的软件测试生命周期是基于组件的javaweb应用。
各种测试概念对照表
测试概念名称 | 目标 | 范围 | 所有人 | 是否该持续集成 | 工具 | 备注 |
单元测试 | 验证源代码单元能够正确工作 | class | 开发人员 | 是 | JUnit | 应该产生100%的代码覆盖率报告 |
功能测试 | 面向代码,通过组件内示例数据测试特征 | class | 开发人员 | 是 | JUnit | 应该模拟依赖接口 |
集成测试 | 依赖一定的环境进行一些路径覆盖测试 | components | 开发人员 | 可选 | JWebUnit TestNG | 如果测试很快并且环境依赖可以很容易的自动安装,可以包含在持续集成中 |
冒烟测试 | 确保关键功能运行 | application | 开发人员 | 否 | JWebUnit TestNG | 代码提交给测试人员前运行,对于web-app模块等同于集成测试 |
回归测试 | 寻找衰退的bugs | application | 测试人员 | 否 | Selenium | 重新运行之前版本运行过的测试 |
完备性测试 | 集中在修复的bugs和新特性上 | application | 测试人员 | 否 | Selenium | 为新特性增加新的测试用例 |
系统测试 | 针对功能需求规范(FRS)、系统需求规范(SRS)测试整个系统 | application platform | 测试人员 | 否 | Selenium | 可能包括更多测试,像可用性测试 |
平台测试 | 在不同的硬件和软件平台上运行 | application platform | 测试人员 | 否 | Selenium | |
性能测试 | 通过采集应用数据消除瓶颈 | application platform | 开发人员 | 否 | JMon,ab, httperf,JMeter | |
负载测试 | 暴露非表面bugs,确保达到性能指标 | application platform | 团队 | 否 | ab,siege httpref | 负载测试有时叫做大数据量测试,或者耐力测试 |
压力测试 | 通过耗尽资源或者删除资源来尽力破坏系统 | application platform | 测试人员 | 否 | ab,httpref | 也叫拒绝测试或者恢复测试 |
用户验证测试 | 需要的业务功能和正确的系统功能的一个最终验证,在类实际环境中进行 | application platform | 客户 | 否 | 客户决定 | 也叫拒绝测试或者恢复测试 |
稍微补充一下:
回归测试:针对以前的所有case都运行,不管以前出过bug还是正确,其主要目的是寻找那些因为功能的改变对其他功能的影响bugs。
测试选择
需要进行哪种测试依赖于你的项目。对于那种最简单的web项目,仅需要单元测试和系统测试。越测试越自信。