软件测试方法大汇总

软件测试方法大汇总

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

从测试设计方法分类


测试名称


测试内容


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


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


Sanity Test


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

Regression Test 回归测试:  

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

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

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

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

Ad hoc Test 探索性测试:

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

以上就是对软件测试的几种方法整理,后续继续整理相关资料,谢谢大家对本站的支持!

(0)

相关推荐

  • 软件测试面试如何测试一个杯子

    软件测试面试如何测试一个杯子 在软件测试的面试中, 经常会碰到类似的问题. 比如:如何测试一个杯子, 或者如何测试一只笔. 要求你设计20个以上的test case. 这类的面试题目,是考察面试者是否熟悉各种软件测试方法, 设计test case的能力, 以及test sense. 首先应该反问下面试官, 需求是什么样的,比如大概是个什么样的杯子. 我回答这类问题的思路, 从软件测试的各种不同方法来联想,  具体如下. 功能测试(Function test) 能否装水, 除了装水, 能否装其他液

  • 流行的软件测试工具介绍

    英文原版书籍下载:https://bitbucket.org/xurongzhong/python-chinese-library/downloadss. 精品文章推荐: python 2.7 中文教程及自动化测试介绍 使用Python学习selenium测试工具 性能测试艺术 Java单元测试之模拟利器-使用PowerMock进行Mock测试 网络工具ATC 主页 http://facebook.github.io/augmented-traffic-control/ 代码托管:https:/

  • java selenium 常见web UI 元素操作及API使用

    本篇介绍我们如何利用selenium 来操作各种页面元素 阅读目录 链接(link) 输入框 textbox 按钮(Button) 下拉选择框(Select) 单选按钮(Radio Button) 多选框 check box 链接(link) <div> <p>链接 link</p> <a href="www.cnblogs.com/tankxiao">小坦克</a> </div> 链接的操作 // 找到链接元素

  • 一个软件测试工程师的加班经历

    海交通大学计算机学士,企业管理硕士.现任职于英特尔中国软件实验室,从事嵌入式Linux相关的开发工作.PMT Community发起人之一,PMT是一个由软件行业专业人士自发组成的非营利性团体,致力于软件技术和管理的研究与实践.      写下这段流水帐似的周末加班经历,并不是因为无聊.只是老婆要我交待,一个"臭"(这个字眼只有很少机会享用)做软件的,老是这么晚回来,究竟在外面做些什么.如果哪天你也被要求写这样的材料,你可以参考:除了这个作用以外,或许,不同的人会从中看到不同的东西吧.

  • java selenium元素定位大全

    页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 阅读目录 自动化测试步骤 定位方法大全 如何定位 通过ID查找元素: By.id() 通过Name查找元素:By.name() 通过TagName查找元素: By.tagName() 通过ClassName 查找元素 By.className 通过LinkText查找元素 By.linkText(); 通过PartialL

  • java selenium使用浏览器调试工具实现方法

    在基于UI元素的自动化测试中, 无论是桌面的UI自动化测试,还是Web的UI自动化测试.   首先我们需要查找和识别UI元素. 在基于Web UI 自动化测试中, 测试人员需要了解HTML, CSS和Javascript的一些知识, 还需要学会使用各种浏览器的调试功能 查找Web UI 页面上的元素, 必须先了解页面的DOM结构, 元素的属性, 甚至一些JavaScript的调用信息.  现在主流的浏览器都自带了很多强有力的工具 阅读目录 Google Chrome Internet Explo

  • 软件测试面试如何测试网页的登录页面

    软件测试面试如何测试网页的登录页面 这个面试题碰到过很多次, 再次总结下来. 具体需求: 有一个登陆页面, 上面有2个textbox, 一个提交按钮.  请针对这个页面设计30个以上的test case. 此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力 这个题目还是相当有难度的, 一般的人很难把这个题目回答好. 功能测试(Function test) 输入正确的用户名和密码,点击提交按钮,验证是否能正确登录. 输入

  • java selenium 操作浏览器实例

    本篇文章介绍selenium 操作浏览器 阅读目录 浏览器最大化 前进,后退, 刷新 截图操作 模拟鼠标操作 杀掉Windows浏览器进程 浏览器最大化 前进,后退, 刷新 public static void testBrowser(WebDriver driver) throws Exception { driver.get("http://www.cnblogs.com/tankxiao"); Thread.sleep(5000); // 浏览器最大化 driver.manage

  • java selenium操作弹出对话框示例讲解

    Web 开发人员通常需要利用JavaScript弹出对话框来给用户一些信息提示, 包括以下几种类型 阅读目录 对话框类型 测试页面 Selenium 操作对话框的代码 对话框类型 1.  警告框: 用于提示用户相关信息的验证结果, 错误或警告等 2. 提示框: 用于提示用户在当前对话框中输入数据,一般需要用户单击取消或者确认按钮 3. 确认框: 用于提示用户确认或者取消某个操作,一般需要用户单击取消或者确认按钮 测试页面 用如下页面为例进行讲解, 包括了警告框,提示框,确认框 http://si

  • java selenium XPath 定位实现方法

    xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. 阅读目录 什么是xpath xpath定位的缺点 testXpath.html 代码如下 绝对路径定位方式 使用浏览器调试工具,可以直接获取xpath语句 绝对路径的缺点 绝对路径和相对路径的区别 相对路径定位方式 使用索引号定位 使用页面属性定位 模糊定位starts-with关键字 模糊定位contains关键字 text() 函数 文本定位 什么是xpath xpath 是XML Path的简称, 由于H

随机推荐