软件测试分类,本篇博文属于对软件测试领域的科普篇
本篇博文属于对软件测试领域的科普篇,关于软件测试领域,名词颇多,发现有许多测试新手混淆概念,甚至有不少招聘要求中对各种软件测试相关的名词乱用,所以,这里汇总测试相关的名词,也许能理清你对各种名词的概念。
一、根据项目流程阶段划分测试
上图是一个典型瀑布式软件开发流程,那么各项软件测试工作是在项目开发流程中循序渐进的进行的。下面将介绍个测试含义。
单元测试:单元测试是对软件中的基本组成单位进行的测试。目的是检验软件基本组成单位的正确性。
集成测试:集成测试是在软件系统集成过程中所进行的测试。目的是检查软件单位之间的接口是否正确。
系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。
验收测试:验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,向软件购买都展示该软件系统满足其用户的需求。
单元测试阶段:
模块接口测试
通过所测模块的数据流进行测试。调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配。
局部数据结构测试
局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确、模块的局部数据结构往往是错误的根源。
路径测试
对模块中重要的执行路径进行测试。
错误处理测试
比较完善的模块设计要求能遇见出错的条件,并设置适当的出错处理,以便在一旦程序出错时,能对出错程序重做安排,保证其逻辑上的正确性。
边界条件测试
软件经常在便捷上失效,边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点。
集成测试阶段:
在集成测试中,我们主要关注以下内容:
1. 把各个模块连接起来时,穿越模块接口的数据据是否会丢失。
2. 各个了模块组合起来,能否达到预期要求的功能。
3. 一个模块的功能是否会对另一个模块的功能产生不利影响。
4. 全局数据据结构是否有问题。
5. 单个模块的误差积累起来是否会被放大,从而达到不可接受的程序。
系统测试阶段:
一般系统的主要测试工作都集中系统测试阶段。根据不同的系统,所进行的测试种类也很多。
功能测试:
功能测试是对产品的各功能进行验证,以检查是否满足需求的要求。
性能测试:
性能测试是通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
安全测试:
安全测试检查系统对非法入侵的防范能力。
兼容测试:
兼容性测试主要是测试系统在不同的软硬件环境下是否能够正常的运行。
验收测试阶段:
功能确认测试
安全可靠性测试
易用性测试
可扩充性测试
兼容性测试
资源占用率测试
用户文档资料验收
二、白盒测试、黑盒测试、灰盒测试
上面是根据项目流程按照测试的各个阶段对测试工具的划分。白盒测试与黑盒测试,主要是测试工作对软件代码的的可见程度的划分。这也是我软件测试中领域中最基本的两个概念。
黑盒测试:
黑盒测试,指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。
它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
白盒测试:
白盒测试,指的是把盒子盖子打开,去研究里面的源代码和程序结果。
它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作
灰盒测试:
灰盒测试介于黑盒测试与白盒测试之间。
可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
三、功能测试、性能测试
功能测试
功能测试检查实际的功能是否符合用户的需求。测试的大部分工作也是围绕软件的功能进行,设计软件的目的也就是满足客户对其功能的需求。如果偏离的这个目的任何测试工作都是没有意义的。
功能测试又可可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
软件的性能包括很多方面,主要有时间性能和空间性能两种。
时间性能:主要是指软件的一个具体的响应时间。比如一个登录所需要的时间,一个交易所需要的时间等。当然,抛开具体的测试环境,来分析一次事务的响应时间是没有任何意义的。需要搭建一个具体且独立的测试环境。
空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源,CPU、内存,网络带宽消耗等。
四、手工测试与自动化测试
手工测试:
手工测试就是由人去一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。
(其实,不太喜欢别人把一般的功能测试工作叫手工测试,就像一个雕塑家不喜欢别人叫他刻石头的一样。手工测试同样需要业务熟悉、基本测试方法的理解。看似简单的工作却能够发现别人不能发现的软件问题。在目前的测试领域,手工测试仍然是无法替代的一种测试方法)
自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概自动化测试:又可分为功能自动化测试与性能自动化测试。
我们一般所说的自动化测试就是指功能自动化测试,通过相关的测试技术,通过编码的方式用一段程序来测试一个软件的功能,这样就可以重复执行程序来进行重复的测试。如果一个软件一小部分发生改变,我们只要修改一部分代码,就可以重复的对整个软件进行功能测试。这样就大大的提高了测试效率。
性能自动化测试,当然,除了早期阶段,现在的性能测试工作都是通过性能测试工具辅助完成的。能过工具可以模拟成千上万的用户向系统发送请求,用来验证系统的处理能力。
五、冒烟测试、回归测试、随机测试
这三种测试在软件功能测试过程中,既不算具体明确的测试阶段也不算是具体的测试方法。
冒烟测试:
是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
引入到软件测试中,就是指测试小组在正规测试一个新版本之前,先投入较少的人力和时间验证一个软件 的主要功能,如果主要功能都没有实现,则打回开发组重新开发。这样做的好处是可以节省大量的时间成本和人力成本。
回归测试:
回归测试是指修改了旧代码后,重新时行测试以确认修改后没有引入新的错误或导致其他代码产生错误。
回归测试一般是在进行软件的第二轮测试开始的,验证第一轮中发现的问题是否得到修复。当然,回归也是一个循环的过程,如果回归的问题通不过,则需要开发人员修改后再次进行回归,直到通过为止。
随机测试:
是指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
随机测试可以发现一些隐蔽的错误,但是也有很多缺点,比如测试不系统,无法统计代码覆盖率和需求覆盖率,发现的问题难以重现。一般是放在测试的最后执行。其实随机测试更专业的升级版叫 探索性测试
探索性测试
探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。
探索性测试应该是未来测试领域的一个方向。
安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。
安全测试也在越来越受到企业的关注和重视,因为由于安全性问题造成的后果是不可估量的。尤其对于互联网产品最容易遭受各种安全攻击。
软件测试分类,本篇博文属于对软件测试领域的科普篇相关推荐
- 软件测试分类及测试中三个主要概念
软件测试分类: 按测试技术,软件测试可分为:黑盒测试.白盒测试.灰盒测试 黑盒测试:在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用.也被称为功能测试或者数据驱动测试. 白盒测试 ...
- 白光干涉仪压电陶瓷的大作用 | 科普篇
优可测Atometrics白光干涉仪AM系列搭载着超高精度扫描单元--压电陶瓷 纳米级步进!逐层扫描还原真实三维形貌,让微小瑕疵.细微划伤无所遁形. 今天小优博士带您了解压电陶瓷在白光干涉仪内的重要作 ...
- 【软件测试】软件测试分类详述
文章目录 软件测试分类 按照开发阶段划分 单元测试 集成测试 非增量式集成测试 增量式集成测试 自顶向下增量式测试 深度优先方式的集成 广度优先方式的集成 自底向上增量式测试 混合增量式测试 自顶向下 ...
- 【测试】软件测试分类体系系统学习
一.软件测试定义.目的.原则 1.定义 是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足设计要求进行评估的过程. 是使用人工或自动手段对系统运行或测试的过程,其目的在于检验 ...
- 全方位带你解读软件测试分类
软件测试方法种类繁多,记忆起来也非常混乱, 如果把软件测试方法进行多个维度的分类, 就会清晰很多. 软件测试的分类-按开发阶段分类 1.单元测试 又称模块测试,针对软件设计中的最小单位-程序模块,进行 ...
- BS和CS架构,软件开发的瀑布模型,快速原型模型、螺旋模型、敏捷开发、软件测试分类,测试的分类和理解
1.BS和CS架构 1.1 BS:浏览器与服务器结构 优点:客户端无需安装,有web浏览器即可 缺点:在速度和安全性上需要花费巨大的设计成本 1.2 CS:客户机与服务器结构 优点:CS架构的页面 ...
- 测试人必看:五大维度解读软件测试分类
软件测试方法种类繁多,记忆起来也非常混乱, 如果把软件测试方法进行多个维度的分类, 就会清晰很多. 软件测试的分类-按开发阶段分类 单元测试 又称模块测试,针对软件设计中的最小单位-程序模块,进行正确 ...
- 软件测试常见概念(软件生命周期、软件开发模型、软件质量模型、软件缺陷管理、软件测试概述、软件测试分类、软件测试与软件开发、软件测试原则、黑盒测试方法、白盒测试方法、性能测试)
文章目录 1. 软件概述 1.1 软件生命周期 1.2 软件开发模型 1.2.1 瀑布模型 1.2.2 快速原型模型 1.2.3 迭代模型(增量模型或演化模型) 1.2.4 螺旋模型 1.2.5 敏捷 ...
- 测试理论系列——软件测试分类
软件测试分类图示 一.按测试阶段划分 1.单元测试( Unit Testing) 又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作. 单元测试需要从程序内部结构出发设计测试用 ...
最新文章
- 亚马逊云科技在中国区域上线机器学习新服务,打造广泛而深入的人工智能与机器学习工具集
- gitattributes手册
- DHL 快递跟踪查询
- 【Mockplus教程】界面闪烁花屏怎么办?
- CentOS7安装GNOME可视化界面 和 远程访问
- 算法笔记_面试题_18.动态规划_模板及示例十几道(下)
- 要是面试官再问我synchronized,我就这么答
- 金庸小说中的八大经典战役回顾
- shipyard管理多HOST
- WIN10 kernel security check failure蓝屏解决策略
- 计算机应用基础模拟三答案,《计算机应用基础》模拟试卷三(含答案)
- 企业邮箱群发邮件 - 邮件群组群发邮件详解
- visio怎么画大括弧
- [转]SSD:Single Shot Detector详解
- 维护高 Star Github 项目,会遇到什么有趣的问题 2022 版
- centos7 samba 离线安装_CentOS 7安装配置Samba服务器(挂载共享文件夹)
- Git——分支(详细解释)
- css实现div中的input和span垂直居中显示
- <计算机网络>网络分析仪分析协议
- 如何将图片批量合并成PDF?
热门文章
- w7桌面计算机回收站不见了,Win7回收站图标没了怎么恢复?
- 模拟自由存储箱c语言,「二级C语言」堆、栈、自由存储区
- 通信原理实验之调频【100010372】
- 充电一次可走15460步,还能边走边充,这个机械假腿连脚趾都能动 | Science Robotics封面...
- python学习之根据身份证号判断所属省份、生日、性别、星座、生肖属相
- 新品与走量的产品有何区别?趣拿做新品推广优势何在?
- vivo 全球商城:架构演进之路
- 屏蔽优酷广告手动修改方法 (xp win7均有效)
- oc引导开机直接进_利用OC Gen X工具适配自己的OC引导
- 【金猿产品展】Quick Audience——一站式消费者运营和管理平台