在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
什么是非功能测试?非功能测试包括哪些类型?非功能测试指的是在软件测试中,用于检查软件应用程序的的测试,它与功能测试都是软件测试的两大重要组成部分,并影响着用户对产品的体验。非功能测试包括了性能测试、压力测试、负载测试、低资源测试、容量测试和重复性测试六种类型。下面我们就来了解一下非功能测试吧!
一、非功能测试的定义
功能测试涉及了软件在功能上正反两面的测试,而非功能测试就是所有其他方面的测试。非功能测试包括性能、负载、安全、可靠性和其他很多方面。非功能测试有时也被称作行为测试或质量测试。非功能测试的众多属性的一个普遍特征是一般不能直接测量。这些属性是被间接地测量,例如用失败率来衡量可靠性或圈复杂度,用设计审议指标来评估可测性。非功能测试的一个很好的例子是检查有多少人可以同时登录软件。
二、非功能测试的属性
1、可靠性
软件使用者期望软件能够无误运行。可靠性是度量软件如何在主流情形和非预期情形下维持它的功能,有时也包括软件出错时的自恢复能力。例如,自动定时保存现行文件的功能就可以归类到可靠性。
2、可用性
如果用户不明白应该如何使用,那么,即使是零差错的软件也会变得毫无用处。可用性测量的是用户学习和控制软件以达到用户需求的容易程度。进行可用性研究、重视顾客反馈意见和对错误信息和交互内容的检查都能提高可用性。
3、可维护性
可维护性描述了修改软件而不引入新错误所需的工作量。产品代码和测试代码都必须具备高度的可维护性。团队成员对代码的熟悉程度、产品的可测性和复杂度都对可维护性有影响。
4、可移植性
可移植性指一种计算机上的软件转置到其它计算机上的能力。软件移植是实现功能的等价联系,而不是等同联系。从狭义上讲,是指可移植软件应独立于计算机的硬件环境;从广义上讲,可移植软件还应独立于计算机的软件,即高级的标准化的软件,它的功能与机器系统结构无关,可跨越很多机器界限。
三、非功能测试的类型
1、性能测试
性能测试目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。性能测试类型包括压力测试、负载测试,强度测试,容量测试等。因为各属性之间在范围上有重叠,很多非功能属性的名字是可以通用的。
2、压力测试
一般来说,压力测试的目的是要通过模拟比预期要大的工作负载来让只在峰值条件下才出现的缺陷曝光。内存泄漏、竞态条件、数据库中的线程或数据行之间的死锁条件、和其他同步问题等等,都是压力测试能发掘出来的常见缺陷。 压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等。
3、负载测试
负载测试是要探讨在高峰或高于正常水平的负载下,系统或应用软件会发生什么情况。例如,一个网络服务的负载测试会试图模拟几千名用户同时连线使用该服务。测试的主要是软件系统的性能,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等。
4、低资源测试
低资源测试是要确定当系统在重要资源(内存、硬盘空间或其他系统定义的资源)降低或完全没有的情况下会出现的状况。重要的是要预估将会发生什么,例如为文件存盘而无足够空间、或一个应用程序的内存分配失败时将会发生什么。
5、容量测试
与负载测试非常相似,容量测试一般是用来执行服务器或服务测试。目的是要确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。容量模型通常建立在容量测试数据基础上。有了这些数据,营运团队(Operations)就能定计划什么时候增加系统容量:要么增加单机资源,如RAM、CPU和磁盘空间等;要么干脆增加计算机数目。
6、重复性测试
重复性测试是为了确定重复某一程序或场景的效果而采取的一项简单而“粗暴”(brute force)的技术。这个技术的精髓是循环运行测试直到达到一个具体界限或临界值,或者是不妙的境况。举个例子,一个操作也许会泄漏20字节的内存。这并不足以在软件的其他地方产生任何问题,但如果测试连续运行2000次,泄漏就可以增长到4万字节。如果是提供核心功能的程序有泄漏,那么这个重复性测试就抓到了只有长时间连续运行该软件才能发现的内存泄漏。通常有更好的办法来发现内存泄漏,但有时候,这种简单“粗暴”的方法也可以很有效。
以上就是非功能测试的定义和六种类型。大家都明白了吗?想要深入学习非功能测试的相关内容,可以上博学谷官网报名软件测试的就业班课程,相信一定能让大家获益匪浅。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
软件测试人员必须掌握的知识--软件测试分类
软件测试是在产品上线前模拟真实使用场景的测试环节,根据产品不同、使用环境不同,软件测试人员需要掌握不同的测试方式。那软件测试到底有哪些途径呢?下面小编为大家分享一下软件测试人员必须掌握的知识--软件测试分类。
6591
2019-08-08 10:23:27
软件测试基础知识汇总 初学者入门须知
一个合格的软件测试师,除了要有团队协作能力和逻辑分析能力,最重要的就是具备扎实的软件测试基础知识。本文汇总了初学者必须学习的软件测试入门基础知识,希望对大家可以牢牢掌握。
5014
2019-09-02 11:48:41
软件测试中的全对偶测试使用讲解
大家在软件测试的过程中,一定都会遇到很多变量进行组合的情况。全对偶测试作为很好的去自动生成测试用例集,是软件测试工程师必须掌握的重要技能。本文将从组合测试法的定义、全对偶测试法的概念、使用全对偶测试法的步骤等几方面,为大家全面讲解全对偶测试。
5451
2019-09-15 18:09:14
现在参加软件测试培训需要多少钱?
软件测试是非常适合年轻人进入互联网的技术岗位。软件测试是互联网企业的“质量官”,产品型企业都需要软件测试工程师来保障产品的高质量的产出。由于软件测试在国内起步较晚,目前软件测试人才数量较少,对于想学习学习软件测试的同学而言,是非常好的机会。那现在参加软件测试培训需要多少钱呢?
6673
2019-10-24 17:53:00
从零基础到高级软件测试工程师学习路线规划
对于零基础的入门软件测试得小伙伴来讲,想要学好软件测试最重要的就是规划一条科学的学习路线。试想如果一开始就盲目学习,很容易在迷失学习方向不说,还难以建立起自己的知识框架,从而不能很好地掌握所学的内容。为了避免大家努力错方向,本文为大家规划了一条从零基础到高级软件测试工程师的学习路线,下面就一起来看看吧~
5657
2020-05-05 16:04:07