软件测试方法大汇总

软件测试方法大汇总

软件测试方法种类繁多,记忆起来混乱, 如果把软件测试方法进行分类, 就会清晰很多。 我参考一些书籍和网上的资料, 把常用的软件测试方法列出来, 让大家对软件测试行业有个总体的看法。

 

从测试设计方法分类

 

测试名称

测试内容

Black box黑盒测试

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

White box白盒测试

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

Gray box.  灰盒测试

介于黑盒和白盒之间

 

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

 

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

 

测试名称

测试内容

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 探索性测试

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

Santiy Test

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

 

Regression Test 回归测试:  

对软件测试人员来说就是重复测试,所以回归测试最好是自动化的, 否则测试人员就要一遍又一遍地重复测试, 

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

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

3. 项目后期,需要做一个完整回归测试, 确保所有的功能都是好的

 

Ad hoc Test 探索性测试: 

平常我最喜欢做随机测试了, 抛开test case.  自己按照自己的思路,随便点点。 如果测试GUI,Ad hoc能发现大量的bug.

 

----by 小坦克 http://home.cnblogs.com/u/TankXiao/ 

转载于:https://www.cnblogs.com/we1700/archive/2012/02/20/2359113.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web安全----xss工具使用3

XSSer 0x01 安装 环境:kali、python3(必须是python3,kali默认为python2) 安装步骤: git clone https://github.com/epsylon/xsser.git cd xsser sudo python3 setup.py install 使用命令: xsser -h查看…

Java——多线程(死锁)

死锁是指:两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进…

c# 前导0_C#| 用前导零填充整数

c# 前导0To pad an integer number with leading zero, we can use String.Format() method which is library method of String class in C#. 要用前导零填充整数,我们可以使用String.Format()方法,该方法是C#中String类的库方法。 using S…

走到尽头的技术-MVC

MVC技术是一种WebApplication设计技术,相比于传统Web应用程序,MVC可以使程序结构更加清晰,他采用 Model,View,Controller 来管理和架构我们的Web资源,将不同的请求(request)导向不同…

Search Engine -垂直搜索小汇总

FilesTube: 共享文件搜索引擎,文件来自:Rapidshare, MegaUpload, Megashares, YouSendIt, SaveFile, FileFront和Badongo等很多文件储存网站,支持的文件格式包括:AVI, MP3, MPEG, MPG, RAR, WMA, WMV, EXE, ZIP等,主要为媒体格式,不支持中文 Picsearch:专业图片搜索引擎,中文界…

Java——多线程(线程安全问题)

同步为安全,不同步为不安全;也就是有synchronized这个标识符,就为线程安全,反之,为线程不安全。 ①Vector是线程安全的 ②StringBuffer是线程安全的 ③Hashtable是线程安全的 Collections.synchronized(xxx)&#…

web安全---XSS利用平台BLUE-LOTUS安装与使用

0x01 安装 环境:windows、phpstudy 下载地址:https://gitee.com/gid1314/BlueLotus_XSSReceiver-master 下载后将文件解压,重命名为blue,放在www目录下 访问:http://IP/blue 点击安装 这里只需要修改后台登陆密码和…

C#Convert.ToInt32(bool)方法-将bool值转换为int

C#Convert.ToInt32(bool)方法 (C# Convert.ToInt32(bool) Method) Convert.ToInt32(bool) Method is used to convert a specific Boolean (bool) value to its equivalent integer (int 32 signed number). Convert.ToInt32(bool)方法用于将特定的布尔值(布尔值)转…

配置Microsoft Visual SourceSafe 2005的Internet访问

配置Microsoft Visual SourceSafe 2005的Internet访问 VSS2005发布以后,早就听说可以支持Internet访问,这是一个很有意思的特性。前两天有空,就安装配置了一下,成功访问。现在安装过程发布出来,大家共享。 步骤0&…

使用delphi 开发多层应用(十)安全访问服务器

前面讲了如何建立和访问服务器,但是前面建的服务器都没有安全控制,这里有很大的安全问题,第一是任何人做一个客户端都可以都可以访问 服务器。第二是数据在网络传输过程中都是明码的,没有加密,使用网络侦听器就可以检测到传输的内容。这是一个…

数组push()方法以及JavaScript中的示例

JavaScript push()方法 (JavaScript push() method) push() method is used adds/inserts an element at the end of an array, it returns nothing but changes the length of the array. push()方法用于在数组末尾添加/插入元素,它只返回改变数组的长度&#xff0…

C——整除的尾数

Problem Description 一个整数&#xff0c;只知道前几位&#xff0c;不知道末二位&#xff0c;被另一个整数除尽了&#xff0c;那么该数的末二位该是什么呢&#xff1f; Input 输入数据有若干组&#xff0c;每组数据包含二个整数a&#xff0c;b&#xff08;0< a<10000…

web安全---浏览器解析提交数据的过程

解码规则 html解析器对html文档进行解析&#xff0c;完成解析并创建DOM树JavaScript或者CSS解析器对内联脚本进行解析&#xff0c;完成js、css解码url解码会根据url所在的顺序不同而在JS解码或者解码后 解码顺序 html解析第一步执行&#xff0c;而JS解析和URL解析则要根据情…

commons-lang的FastDateFormat性能测试

commons-lang的FastDateFormat是一个thread-safe的&#xff0c;对SimpleDateFormat的一个重新实现。 SimpleDateFormat为什么不是thread-safe的呢&#xff1f;看一下具体实现就知道了&#xff0c;其父类中定义了成员变量Calendar&#xff0c;每次格式化日期时都会先重置这个Cal…

C——Flowers

Problem Description As you know, Gardon trid hard for his love-letter, and now he’s spending too much time on choosing flowers for Angel. When Gardon entered the flower shop, he was frightened and dazed by thousands kinds of flowers. “How can I choose!”…

include函数_include()函数以及JavaScript中的示例

include函数includes() is a predefined function in JavaScript, which is used to check whether a given element exists in the array or not? include()是JavaScript中的预定义函数&#xff0c;用于检查数组中是否存在给定元素&#xff1f; Example: 例&#xff1a; &l…

利用POI创建OpenOffice中的Excel文件

之所以称为OpenOffice的Excel文件,我发现了一个特点就是: 一些网站严格限定了文件必须为MS的Excel格式的话,用POI的HSSF创建的Excel就会不识别.不知道是什么原因,可能是版本的问题,据说HSSF(令人讨厌的电子表格格式)生成的是MS97的格式.但是97-2003的提示中明显的说明了MS的lib…

批处理文章集锦

http://www.5dmail.net/html/2005-10-17/20051017181702.htmhttp://www.cnblogs.com/glaivelee/archive/2009/10/07/1578737.html转载于:https://www.cnblogs.com/Jessy/archive/2012/02/29/2372955.html

web安全-----CSRF漏洞

简述 CSRF&#xff1a;Cross-site request -forgery&#xff0c;跨站请求伪造&#xff0c;是一种web攻击方式&#xff0c;是由于网站的cookie在浏览器中不会过期&#xff0c;只要不关闭浏览器或者退出登录&#xff0c;那以后只要访问这个网站&#xff0c;都会默认你已经登录。…

java math 类_Java Math类静态长轮(double d)示例

java math 类数学课静态长回合(双D) (Math Class static long round(double d) ) This method is available in java.lang package. 此方法在java.lang包中可用。 This method is used to return the closest long value to the given argument. 此方法用于将最接近的long值返回…