软件测试过程中,最主要的就是要掌握好软件测试的方法,掌握好了软件测试方法,有利于测试技能的大幅度提高。

软件测试方法

== 软件测试方法是指测试软件的方法。随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。==

一、根据是否要走查代码,分为白盒测试、灰盒测试、黑盒测试;

二、分为手工测试、自动化测试和性能测试:

手工测试:UI测试、冒烟测试、随机测试、本地化测试、安装测试、卸载测试;
自动化测试:
性能测试:健全测试、衰竭测试、负载测试、强迫测试、压力测试、恢复测试;

三、根据是否要运行程序,分为静态测试和动态测试;

四、按测试阶段可分为:单元测试、集成测试、系统测试、回归测试、验收测试、α测试_Alpha测试、β测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT);

五、其他测试方法:端到端测试、接受测试、安全测试、兼容性测试、可用性测试、比较测试、边界测试、强力测试、装配安装测试、隐藏数据测试、等价划分测试、判定表测试、深度测试、基于设计、文档测试、域测试、接口测试、逆向测试、非功能性测试、极限测试等。

其中一些测试方法的定义

端到端测试

端到端测试,英文是End to End Testing。

端到端测试类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。

例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。端到端架构测试包含所有访问点的功能测试及性能测试。

端到端架构测试实质上是一种"灰盒"测试,一种集合了白盒测试和黑盒测试的优点的测试方法。

健全测试

== 健全测试,英文是Sanity testing。==

健全测试是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试能 力。
例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,不具备进一步测试的条件。

衰竭测试

衰竭测试,英文是Failure Testing。

衰竭测试是指软件或环境的修复或更正后的“再测试”。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。

负载测试

负载测试,英文是Load testing。
负载测试是测试一个应用在重负荷下的表现。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。

负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

强迫测试

强迫测试,英文是Force Testing。

强迫测试是在交替进行负荷和性能测试时常用的术语。也用于描述对象在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。

压力测试

压力测试,英文是Stress Testing。和负载测试差不多。

压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测试。

恢复测试

== 恢复测试,英文是Recovery testing。==

恢复测试是测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。恢复测试指通过人为的让软件(或者硬件)出现故障来检测系统是否能正确的恢复,通常关注恢复所需的时间以及恢复的程度。

==恢复测试主要检查系统的容错能力。==当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均恢复时间,确定其是否在可接受的范围内。

可用性测试

可用性测试,英文是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.验收测试

要熟记各个测试方法的意义,并且,灵活的运用它,这样,测试技能,将能更上一层楼。

需要领取面试资料,软件测试资料全集,点击链接加入群聊【Python自动化测试交流群】领取!

你还不知道怎么学习软件测试吗?看完这篇文章,你就明白了!相关推荐

  1. 艾永亮超级产品:不知道怎么做产品?看完这篇文章了解你的产品

    体验产品,是每个企业家的必经之路,拆解产品就像一次新生,总结产品,是对自身产品的感知,当你不知道该如何做产品时,可以看完这篇文章,也许会得到一些新的启发. 产品体验是每个企业家对自身产品认知和创新的一 ...

  2. lambda函数if_lambda表达式速度如何呢?看完这篇文章你就明白了

    虽然Java 8已经出了好几年了,但是很多朋友可能对于其中的一些特性还是不太了解.甚至对lambda表达式这个特性可能会产生误解,误认为lambda表达式会影响程序的速度.其中也不乏很多误人子弟的自媒 ...

  3. 商业智能BI的前景如何?看完这篇文章你就明白了

    近日,IDC国际数据公司发布了<2021下半年中国商业智能软件市场跟踪报告>,其中提到的关于商业智能BI的市场数据就是现阶段商业智能BI情况的最好呈现,具体表现为2021年下半年中国的商业 ...

  4. 什么软件可以分割音频?看完这篇文章你就明白了

    大家可能对于音频分割不太了解,除了帮助完善电影语音,分割音频技术还可以应用于其他的场景中.例如,在语言学研究中,分割音频技术可以用来分析不同的语音特征和语音变化,从而更好地理解人类语言的本质和特点,或 ...

  5. 爬虫推特数据分析的外文文献_什么是网络爬虫?有什么用?怎么爬?看完这篇文章你就明白了...

    源:Python架构师 https://dwz.cn/LI7NNc4g 一.什么是网络爬虫 随着大数据时代的来临,网络爬虫在互联网中的地位将越来越重要.互联网中的数据是海量的,如何自动高效地获取互联网 ...

  6. 抖音如何推动音乐的流行?看完这篇文章你就明白了

    抖音是一款以音乐为主要内容的短视频分享平台.它的出现不仅让年轻人的生活更加丰富多彩,还对音乐产业带来了前所未有的影响,不若与众就来聊聊抖音对音乐几个方面的影响. 一.推动音乐的流行 抖音上有许多热门音 ...

  7. IaaS、PaaS、SaaS、DaaS都是什么?现在怎么样了?看完这篇文章你就明白了!

    导读:本文将详细科普云计算的概念.云服务的发展现状,并逐一介绍各种云服务模式(IaaS.PaaS.SaaS.DaaS),建议收藏! 01 云计算的概念 云是一种服务,可以像使用水.电.煤那样按需使用. ...

  8. raw分区怎么恢复?看完这篇文章你就明白了!

    有的时候,我们在使用移动硬盘或是U盘这类存储设备时,发现突然打不开,在资源文件管理器里访问这个盘时会遇到类似下面这些错误提示,例如: 1.磁盘未格式化.驱动器G: 中的磁盘未被格式化.想现在格式化吗? ...

  9. 学习Nginx,看完这篇超详细的文章就够了

    目录 本文简介 一.Nginx的基本概念 1.1.Nginx是什么? 1.2.Nginx能帮助我们做些什么? 1.3.Nginx的特性 二.Nginx的安装 2.1.环境介绍 2.2.安装Nginx ...

  10. python装饰器原理-看完这篇文章还不懂Python装饰器?

    原标题:看完这篇文章还不懂Python装饰器? 1.必备 2.需求来了 初创公司有N个业务部门,1个基础平台部门,基础平台负责提供底层的功能,如:数据库操作.redis调用.监控API等功能.业务部门 ...

最新文章

  1. 苹果计算机错误怎么改,Mac电脑未能修改分区图,因为文件系统验证失败怎么办?...
  2. Ubunt_配置_start
  3. python筛选法求素数讲解_埃氏筛选法求素数 Python
  4. dm_php库,dmandwp系统 PHP建站系统+wordpress建站和DM系统区块+安装教程
  5. 计算机数据与安全课件,计算机数据及软件的安全.ppt
  6. PHP设计模式——职责链模式
  7. memcached学习(5). memcached的应用和兼容程序
  8. halcon 中的select_obj使用
  9. 生物信息学导师推荐(持续更新)
  10. 这个寒冷的冬天 是谁的机会?
  11. 从外包公司到今日头条offer,帮你突破瓶颈
  12. QT---实现舒尔特方格(零基础入门)
  13. 彻底解决烦人的win10更新
  14. 防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00操作说明之软件功能说明
  15. Go Http 解析 text/plain
  16. Node.js 学习(持续更新)
  17. 苹果称只保证直营店iPad补差价 近1周投诉急增
  18. COM的INTERFACE使用实践
  19. mysql数据库的事务 acid 隔离级别 脏读 脏写 幻读 不可重复读
  20. 【转载】Android下DLNA开发简介

热门文章

  1. 博菲电气深交所上市:市值23亿 为陆云峰与凌莉夫妻店
  2. 服务器就老老实实当服务器
  3. Openmeetings—视频会议部署文档
  4. python下载网页图片方法总结(含打开网页提示下载)
  5. UGUI——ToggleGroup
  6. android蚂蚁森林动画,【Android】仿蚂蚁森林,树木弹动动画
  7. PSINS初始对准方法
  8. 时序数据库-InfluxDB概念详解1
  9. 基于PyTorch实现Seq2Seq + Attention的英汉Neural Machine Translation
  10. 求助c语言文件保存读取问题