之前做持续集成环境时,对于集成测试、功能测试、系统测试...有很多的迷惑,刚好看到了一篇这方面的文章,共享之。

  在软件测试生命周期中定义了很多术语,这篇文章将总结所有这些术语(我所了解的)。这其中的一些可能跟其他地方的定义不完全一致,仅仅是我的理解。如果您有什么疑惑请让我知道。

  本文所说的软件测试生命周期是基于组件的javaweb应用。

  各种测试概念对照表

测试概念名称
目标
范围
所有人
是否该持续集成
工具
备注
单元测试
验证源代码单元能够正确工作
class
开发人员
是
JUnit
应该产生的代码覆盖率报告
功能测试
面向代码,通过组件内示例数据测试特征
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项目,仅需要单元测试和系统测试。越测试越自信。