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