软件测试之软件测试方法
软件测试过程中,最主要的就是要掌握好软件测试的方法,掌握好了软件测试方法,有利于测试技能的大幅度提高。
软件测试方法
软件测试方法是指测试软件的方法。随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。
一、根据是否要走查代码,分为白盒测试、灰盒测试、黑盒测试;
二、分为手工测试、自动化测试和性能测试:
手工测试:UI测试、冒烟测试、随机测试、本地化测试、安装测试、卸载测试;
自动化测试:
性能测试:健全测试、衰竭测试、负载测试、强迫测试、压力测试、恢复测试;
三、根据是否要运行程序,分为静态测试和动态测试;
四、按测试阶段可分为:单元测试、集成测试、系统测试、回归测试、验收测试、α测试_Alpha测试、β测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT);
五、其他测试方法:端到端测试、接受测试、安全测试、兼容性测试、可用性测试、比较测试、边界测试、强力测试、装配安装测试、隐藏数据测试、等价划分测试、判定表测试、深度测试、基于设计、文档测试、域测试、接口测试、逆向测试、非功能性测试、极限测试等。
其中一些测试方法的定义
端到端
端到端测试,英文是End to End Testing。
端到端测试类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。端到端架构测试包含所有访问点的功能测试及性能测试。端到端架构测试实质上是一种"灰盒"测试,一种集合了白盒测试和黑盒测试的优点的测试方法。
健全测试
健全测试,英文是Sanity testing。
健全测试是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试能力。例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,不具备进一步测试的条件。
衰竭测试
衰竭测试,英文是Failure Testing。
衰竭测试是指软件或环境的修复或更正后的“再测试”。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。
负载测试
负载测试,英文是Load testing。
负载测试是测试一个应用在重负荷下的表现。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
强迫测试
强迫测试是在交替进行负荷和性能测试时常用的术语。也用于描述对象在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。
压力测试
压力测试,英文是Stress Testing。和负载测试差不多。
恢复测试
可用性
可用性测试,英文是Practical Usability Testing。
可用性测试是对“用户友好性”的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查、用户对话的录象和其他一些技术都可使用。程序员和测试员通常都不宜作可用性测试员。
比较测试
比较测试,英文是Compare Testing。
比较测试是指与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。来取长补短,以增强产品的竞争力。
强力测试
强力测试,英文是Mightiness Testing。
强力测试通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。或者说是验证软件的性能在各种极端环境和系统条件下的承受能力。比如,在最低的硬盘驱动器空间或系统记忆容量条件下,验证程序重复执行打开和保存一个巨大的文件1000次后也不会崩溃或死机。
装配安装
装配/安装/配置测试是验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。比如,把英文版的 Microsoft Office 2003安装在韩文版 的Windows Me 上,再验证所有功能都正常运行。
隐藏数据
隐藏数据测试在软件验收和确认阶段是十分必要和重要的一部分。程序的质量不仅仅通过用户界面的可视化数据来验证,而且必须包括遍历系统的所有数据。
假设一个应用程序要求用户两条信息-----用户名和密码来创建帐户。这个用户输入这两条数据后保存。最后,一个确认窗口将通过数据库中找到这条数据来显示用户名和密码给用户。为了验证所有的数据保存是否正确,一个QA测试人员会在这个确认窗口简单的查看下用户名和密码。如果他们成功了?假设数据库记录了第三条信息----创建日期,它可能不会出现在确认窗口,而只在存档中才出现。如果创建日期保留的不正确,而QA测试人员只验证屏幕上的数据,那么这个问题就不可能被发现。创建日期可能就是一个bug,由于一个用户帐户保存了一个错误的日期到数据库中,这个问题也不可能会被引起注意,因为它被用户界面所隐藏。这只是一个简单的例子,但是它却演化出了一点:隐藏数据测试的重要性。
判定表
判定表的英文是decision table,是指一个表格,用于显示条件和条件导致动作的集合。
定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
判定表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题
深度测试
深度测试的英文Depth test ,是指执行一个产品的一个特性的所有细节,但不测试所有特性。
当比较函数返回真的时候才显示出效果来。必须启用“#深度测试”,才能执行测试。不使用的时候需要关闭。
基于设计
基于设计的测试的英文是design-based testing,是根据软件的构架或详细设计引出测试用例的一种方法。
一种基于设计模型的测试方法(Model Based TestIng System,MATIS).该方法利用用户界面自动生成方法,把设计模型中的类属性定义和实现中的控件属性组织在一起,构建描述界面的逻辑对照表,辅助测试脚本引擎执行自动测试脚本.借助设计模型中扩展的类定义,MATIS方法可以自动生成测试用例和测试数据。
域测试
域测试的英文是domain testing,定义参考等价划分测试(equivalence partition testing);
一般分为单域测试和多域测试,其中单域测试包括设备测试和业务测试,设备测试包括测试某个系统的软交换设备、中继媒体网关设备、信令网关设备、接入媒体网关和IAD等设备。
等价类划分有两种不同的情况:有效等价类和无效等价类。设计时要同时考虑这两种等价类,因为软件不仅要能接收合理的数据,也要能经受意外的考验。
一有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
二无效等价类:与有效等价类的定义恰巧相反。
逆向测试
逆向测试/反向测试/负面测试的英文是Negative Testing,测试瞄准于使系统不能工作。
负面测试与正面测试的比较:
负面测试(Negative testing)是相对于正面测试(Positive testing)而言的。它们也是测试设计时的两个非常重要的划分。简单点说,正面测试就是测试系统是否完成了它应该完成的工作;而负面测试就是测试系统是否不执行它不应该完成的操作。形象一点,正面测试就象一个毕恭毕敬的小学生,老师叫我做什么,我就做什么;而负面测试就象一个调皮捣蛋的孩子,你叫我这样做,我偏不这样做,而且和你对着干。开发人员也是最讨厌修改此类bug的。
非功能性
非功能性需求测试的英文是non-functional requirements testing ,是与功能不相关的需求测试,如:性能测试、可用性测试等。
为什么非功能性需求很重要?
在您设计解决方案的过程中满足功能性需求当然是很重要的。但是,如果没有考虑非功能性需求,您的解决方案则很难取得实效。
非功能性需求特点:1.不要脱离实际环境;2.可靠性;3.可用性;4.有效性;5.可维护性;6.可移植性。
极限测试
简介
极限测试本质上是为了满足极限测试的思想和流程而设计的一套测试策略和流程,其本身并不局限于使用特定的测试技术和方法。
过程
1.单元测试
2.验收测试
要熟记各个测试方法的意义,并且,灵活的运用它,这样,测试技能,将能更上一层楼。
软件测试之软件测试方法相关推荐
- 软件测试之黑盒测试方法介绍及测试用例练习
一.因果图法 1. 概念 因果图是一种逻辑图,表示:恒等.与.或.非 当输入有很多时,不同输入的组合对应不同的输出,用因果图来分析不同输入组合和不同输出组合之间的关系 恒等:在恒等关系中,要求程序有1 ...
- 软件测试之Web测试方法总结
一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符"~!@#¥%--&*?[]{}"特别要注意单引号和&符号.禁止直 ...
- 软件测试之软件系统测试
测试工程师主要参与的是系统测试(system testing)阶段,针对整个软件系统开展测试,需要考虑不同类型的测试,如功能测试.性能测试等. 1. 系统测试的基础知识 一个网站.一个手机App.一个 ...
- 软件测试之软件开发模型
一. 软件开发模型 1 为什么学习软件开发模型 了解开发能够更好的有针对性的做好测试. 2 什么是软件开发模型 软件开发生命周期模型是软件产品从最初构思到退役的过程. 3 常见的开发模型 大爆炸模 ...
- 软件测试之软件测试用例
一.概述 测试用例是一个文档,描述输入.操作步骤和一个期望的结果,其目的是验证应用程序的特性能正常工作 测试用例是测试人员编写的,给测试人员执行测试时参考使用. 二.测试用例的要素 1.标 ...
- 【软件测试之测试方案】
软件测试之测试方案 测试方案包含内容 1 编写目的 2 需求概述(需求描述及主要功能流程图及组网图) 3 测试覆盖需求(功能.性能.接口等) 4 测试计划(测试阶段的人力时间规划.测试轮次) 5 测试 ...
- 《微软的软件测试之道》读书笔记
<微软的软件测试之道>读书笔记 第一部分 关于微软 第1章 微软的软件工程 偏重于产品独立发布的模式通常称为PUM(Product Unit Manager)即 ...
- 《Google软件测试之道》目录—导读
内容提要 Google软件测试之道 每天,Google都要测试和发布数百万个源文件.亿万行的代码.数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行.面对这些看似不可能完成的 ...
- 软件测试之H5页面测试总结(参考)
参考:软件测试之H5页面测试总结https://mp.weixin.qq.com/s/D0_uPMbP4FeIoD_rVpV4Mg 前言 大家反馈资源失效的问题,小编已经收到了,资源还是给和谐,小编也 ...
- 软件测试中语句覆盖的优点,软件测试之测试覆盖率的基本策略
原标题:软件测试之测试覆盖率的基本策略 软件测试覆盖率简介 1.定义:覆盖率是用来度量测试完整性的一个手段,同时也是测试技术有效性的一个度量. 2.计算:覆盖率=(至少被执行一次的item数)/ite ...
最新文章
- 面向对象的三大特性之继承
- 2016年第七届蓝桥杯C/C++ B组国赛 —— 第一题:一步之遥
- HugeGraph 图数据库常见问题汇总
- 修改oracle数据连接数据库,如何修改oracle数据库的连接数
- php访问日记在哪,nginx访问日志在哪里
- (04)FPGA芯片选型原则
- mysql_query is deprecated_Function mysql_db_query() is deprecated 错误解决
- Microsoft SQL Server 生成随机数字、字符串、日期、验证码以及 UUID
- phyton基础-01
- ipad显示portal服务器获取不,苹果portal认证失败原因合集
- 树莓派(二) adb命令控制手机拨打/接听电话
- 网络与信息安全工程师职位要求
- Docker 入门教程 - 2021 最新版(上)
- iOS开发之开源项目库总汇
- 纯CSS样式实现圆角边框
- 2018 北京化工大学ACCA精英班招生简章
- 面试从int数据类型引发的一场血案,请问这真的只是基础吗?
- SWUST OJ 699: Arbitrage
- 人工智能在医疗产业的五大应用场景及典型案例
- 试用android studio 3.0后,建议先不要升级