从测试的目的分类
1、功能测试
以下的测试术语主要是测试软件的功能。在表7-1所列的测试中,测试的范围由小到大,测试者也由内到外——从程序开发人员(单元测试)到测试人员,到一般用户(Alpha/Beta测试)。
表7-1 功能测试分类
测试名称 |
测试内容 |
Unit Test |
单元测试——在最低的功能/参数上验证程序的正确性 |
Functional Test |
功能测试——验证模块的功能 |
Integration Test |
集成测试——验证几个互相有依赖关系的模块的功能 |
Scenario Test |
场景测试——验证几个模块是否能够完成一个用户场景 |
测试名称 |
测试内容 |
System Test |
系统测试——对于整个系统功能的测试 |
Alpha/Beta Test |
外部软件测试人员(Alpha/Beta测试员)在实际用户环境中对软件进行全面的测试 |
2、非功能测试
一个软件除了基本功能之外,还有很多功能之外的特性,这些叫“non-functional requirement”,或者“quality of service requirement”——服务质量需求。没有软件的功能,这些特性都无从表现出来,因此,我们要在软件开发的适当阶段——基本功能完成后做这些测试。
如表7-2所示:
表7-2 非功能测试
测试名称 |
测试内容 |
Stress/load test |
测试软件在负载情况下能否正常工作 |
Performance test |
测试软件的效能 |
Accessibility test |
可访问性测试——测试软件是否向残疾用户提供足够的辅助功能 |
Localization/Globalization Test |
本地化/全球化测试 |
Compatibility Test |
兼容性测试 |
Configuration Test |
配置测试——测试软件在各种配置下能否正常工作 |
Usability Test |
易用性测试——测试软件是否好用 |
Security Test |
软件安全性测试 |
按测试的时机和作用分类
在开发软件的过程中,不少测试起着“烽火台”的作用,它们告诉我们软件开发的流程是否顺畅,这些测试如表7-3所示:
表7-3 烽火台
测试名称 |
测试内容 |
Smoke Test |
“冒烟”——如果测试不通过,则不能进行下一步工作 |
Build Verification Test |
验证构建是否通过基本测试 |
Acceptance Test |
验收测试,为了全面考核某方面功能/特性而做的测试 |