为了便于大家更好的记忆软件测试方法,松勤软件测试的老师通过平时的教学与整理,对软件测试方法进行分类, 把常用的软件测试方法罗列出来, 带着大家对软件测试有个简单的了解。 

按测试设计方法分类: 

1) 黑盒测试:把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。从软件的行为,而不是内部结构出发来设计测试 

2) 白盒测试:设计者可以看到软件系统的内部结构,并且使用软件的内部知识来指导测试数据及方法的选择 

3) 灰盒测试:介于黑盒和白盒之间 按测试是手动还是自动上分类 1) 手动测试:测试人员用鼠标去手动测试 (测试GUI) 

4) 自动化测试:用程序测试程序 (测试API 对于项目来说,两种测试都很重要,都一定程度上可以提高软件测试质量,目前,很多项目都是手动测试与自动化测试相结合的,一些负责的业务逻辑很难自动化,自动化测试对我们软件测试人员来说,是一个发展方向,是一个挑战,但是其不能取代手动测试。 

总的来说,手工测试胜在测试业务逻辑,而自动化测试胜在测试底层架构。 如果被测试的程序可测试性比较好, 很有必要做成自动化测试。 

能做自动化的尽量做成自动化, 下面这些情形是可以做自动化的 

1. 测试存储过程。 例如用C#去测试存储过程 

2. 测试Web servies. 例如: 用SoupUI工具,或者C#,Java 去测试Web servies。 

3. 界面和业务逻辑分离的系统,比如,MVC,MVP架构, 或者WPF 程序。 可以用测试脚本去测试这些程序的API。 

按测试的目的分类: 功能测试 测试的范围从小到大,从内到外, 从程序开发人员(单元测试)到测试人员,到一般用户Alpha/Beta测试 

1) 单元测试:在最低的功能/参数上验证程序的准确性,比如测试一个函数的正确性(开发人员做的) 

2) 功能测试:验证模块的功能 (测试人员做的) 

3) 集成测试:验证几个互相有依赖关系的模块的功能 (测试人员做的) 

4) 场景测试:验证几个模块是否能完成一个用户场景 (测试人员做的) 

5) 系统测试:对于整个系统功能的测试 (测试人员做的) 

6) Alpha 测试:软件测试人员在真实用户环境中对软件进行全面的测试 (测试人员做的) 

7) Beta 测试:真实的用户在真实的用户环境中进行的测试, 也叫公测 (最终用户做的) 

非功能测试 

1) 压力测试:验证软件在超过负载设计的情况下仍能返回正确的结果,没有崩溃 

2) 负载测试:测试软件在负载情况下能否正常工作 

3) 性能测试:测试软件的效能,是否提供满意的服务质量 

4) Accessibility test:软件辅助功能测试-测试软件是否向残疾用户提供足够的辅助功能 

5) Localization/Globalization:本地化/全球化测试 

6) Compatibility Test:兼容性测试 

7) Configuration Test:配置测试-测试软件在各种配置下能否正常工作 

8) Usability Test:可用性测试 –测试软件是否好用 

9) Security Test:软件安全性测试 按测试的时机和作用分类 在开发软件的过程中,不少测试起着“烽火台”的作用,它们告诉我们软件开发的流程是否畅通。

1) Smoke Test:“冒烟”–如果测试不通过,则不能进行下一步工作 

2) Build Verification Test(BVT):验证构建是否通过基本测试。 

3) Acceptance Test:验收测试,为了全面考核某功能/特性而做的测试。

按测试测策略分类。 

1) 回归测试:对一个新的版本,重新运行以往的测试用例,看看新版本和已知的版本相比是否有退化 (regression) 

2) 探索性测试:随机进行的,探索性的测试。 

3) Santiy Test:粗略的测试, 只需要执行部分的测试用例