软件测试方法汇总

软件测试方法种类繁多,记忆起来混乱, 若是把软件测试方法进行分类, 就会清晰不少。 我参考一些书籍和网上的资料, 把经常使用的软件测试方法列出来, 让你们对软件测试行业有个整体的见解。编程

 

从测试设计方法分类

 

测试名称安全

测试内容架构

Black box黑盒测试函数

把软件系统看成一个“黑箱”,没法了解或使用系统的内部结构及知识。从软件的行为,而不是内部结构出发来设计测试.工具

White box白盒测试性能

设计者能够看到软件系统的内部结构,而且使用软件的内部知识来指导测试数据及方法的选择。单元测试

Gray box.  灰盒测试学习

介于黑盒和白盒之间测试

 

总结:   实际工做中,对系统的了解越多越好。目前大多数的测试人员都是作黑盒测试,不多有作白盒测试的。 由于白盒测试对软件测试人员的要求很是高,须要有不少编程经验。作.NET程序的白盒测试你要能看得懂.NET代码。作JAVA程序的测试,须要你能看懂JAVA的代码。 若是你都能看懂了,你还会作测试么ui

 

从测试是手动仍是自动上分类

 

测试名称

测试内容

Manual Test 手动测试

测试人员用鼠标去手动测试 (测试GUI)

Automation 自动化测试

用程序测试程序 (测试API)

 

对于项目来讲, 手动测试和自动化测试同等重要,都是保障软件质量的方法。 目前大部分的项目组都是手动测试和自动化测试相结合。由于不少测试没法作成自动化,不少复杂的业务逻辑也很难自动化, 因此自动化测试没法取代手动测试。

对于软件测试人员我的发展来讲, 作自动化测试是个挑战,也是测试人员发展的一个方向,  须要测试人员学习大量的开发知识(开发的知识真是学无止境啊)。 从长远角度来看,自动化测试确定是愈来愈吃香的。

而手动测试比较适合刚工做不久的人,手动测试最大的缺点就是技术含量低,单调乏味,容易废人。

 

总的来讲,手工测试胜在测试业务逻辑,而自动化测试胜在测试底层架构。

 

若是被测试的程序可测试性比较好, 颇有必要作成自动化测试。 能作自动化的尽可能作成自动化, 下面这些情形是能够作自动化的

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

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

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

 

从测试的目的分类

功能测试

测试的范围从小到大,从内到外, 从程序开发人员(单元测试)到测试人员,到通常用户Alpha/Beta测试

测试名称

测试内容

Unit Test 单元测试

在最低的功能/参数上验证程序的准确性,好比测试一个函数的正确性(开发人员作的)

Functional Test 功能测试

验证模块的功能  (测试人员作的)

Integration Test 集成测试

验证几个互相有依赖关系的模块的功能 (测试人员作的)

Scenario Test  场景测试

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

System Test  系统测试

对于整个系统功能的测试 (测试人员作的)

Alpha 测试

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

Beta 测试

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

 

 

 

非功能测试

一个软件除了基本功能以外,还有不少功能以外的特性,这些叫“Quality of Service requirement服务质量需求。没有软件的功能,这些特性都无从表现出来,所以,咱们要在软件开发的适当阶段-基本功能完成后作这些测试。

 

测试名称

测试内容

Stress test 压力测试

验证软件在超过负载设计的状况下仍能返回正确的结果,没有崩溃

Load test 负载测试

测试软件在负载状况下可否正常工做

Performance test性能测试

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

Accessibility test

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

Localization/Globalization

本地化/全球化测试

Compatibility Test

兼容性测试

Configuration Test

配置测试-测试软件在各类配置下可否正常工做

Usability Test

可用性测试 –测试软件是否好用

Security Test

软件安全性测试

 

性能测试

性能测试要求测试人员熟练性能测试工具,好比QTP, LoadRunner, Jmeter。  Visual Studio也提供了不少性能测试的工具. 要求测试人员对低层协议很是理解和编写脚本

性能测试很是有技术含量, 颇有发展前途, 是软件测试人员的一个职业发展方向。

 

安全性测试

安全性测试的内容很广, 很是有难度啊。 我只接触过XSS(跨站脚本攻击)和SQL注入攻击。

安全性测试很是有技术含量, 我认为也是软件测试人员的一个职业发展方向

 

 

按测试的时机和做用分类

 

在开发软件的过程当中,很多测试起着“烽火台”的做用,它们告诉咱们软件开发的流程是否畅通。

 

测试名称

测试内容

Smoke Test

冒烟”若是测试不经过,则不能进行下一步工做

Build Verification Test(BVT)

验证构建是否经过基本测试。

Acceptance Test

验收测试,为了全面考核某功能/特性而作的测试

 

BVT测试是一种Smoke Test, 指Build生成好以后,自动运行的自动化测试脚原本检查这个Build的基本功能。 若是BVT测试失败了,须要开发人员立刻修改,从新生成Build

 

 

 

按测试测策略分类。

 

测试名称

测试内容

Regression Test 回归测试

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

Ad hoc Test 探索性测试

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

Sanity Test

粗略的测试, 只须要执行部分的测试用例

 

Regression Test 回归测试:  

对软件测试人员来讲就是重复测试,因此回归测试最好是自动化的, 不然测试人员就要一遍又一遍地重复测试, 

1. 开发人员作些小改动,就须要测试人员作回归测试。确保现有的功能没有被破坏

2. Bug Fix 也须要回归测试,确保新的代码修复了Fix, 也确保现有的功能没有被破坏

3. 项目后期,须要作一个完整回归测试, 确保全部的功能都是好的

 

Ad hoc Test 探索性测试: 

日常我最喜欢作随机测试了, 抛开test case.  本身按照本身的思路,随便点点。 若是测试GUI,Ad hoc能发现大量的bug. 

相关文章
相关标签/搜索