关注微信公号【[软测小生(ruancexiaosheng)](https://mp.weixin.qq.com/s/nXbH0AQs2JQTT_-IgX9vGQ】
【前言】
事情起源于一个风和日丽春暖花开阳光明媚的上午,小编的老板突然提问,YY, 马上要上线的XX功能你测试的怎么样?这个功能实现的质量怎么样?
image来看看小编饱含求生欲的回答:
1.需求生效
2.对其他功能的影响
3.异常情况不崩溃
4.响应时间
blablablabla……
image老板摇了摇头,并且重重的叹了口气......
那么问题来了, 如果你的老板问了你相同的问题,怎么能够机智并且完美的证明正在测试的产品或者功能质量过关呢?
【简介】
根据过来人的经验,想要全面并且正确的回答这个问题,离不开一个软件的基本概念-----软件质量模型。软件质量模型是一个衡量软件整体质量效果的度量标准,如果你的答案脱离了这个模型,那么可能存在一些老板关注的重点指标,被你遗漏掉了。
关于软件质量模型,业界已经有很多成熟的模型定义,比较常见的质量模型有 McCall 模型、Boehm 模型、FURPS 模型、Dromey 模型和 ISO系列模型。ISO系列模型又包括常见的ISO/IEC 9126以及ISO/IEC 25010:2011。
在这里我们将要介绍的是最为常见的ISO系列软件质量模型系列。ISO系列模型是建立在 McCall 和 Boehm 模型之上的,不仅能够识别软件产品的内部和外部质量,在后续的一些对该模型的优化中,还引入了使用质量模型 。
【正文】
一个完整的软件质量模型,包括从产品角度出发的内部、外部质量模型;以及从用户角度出发的使用质量模型。
image.gif出于产品的统一性,其中衡量外部的度量点与衡量内部质量的度量点相同,均囊括6大特性、27个子特性。外部质量需求从外部视角来规定要求的质量级别。包括用户质量要求派生的需求(包括使用质量需求)。外部质量需求用作不同开发阶段的确认目标。内部质量需求从产品的内部视角来规定要求的质量级别。内部质量需求用来规定中间产品的特性。这些可以包括静态的和动态的模型,其他的文档和源代码。两种质量模型虽然度量点相同,但是度量的角度不同,度量方式也有所区别。
软件内外部质量模型涉及到的6大特性及27个子特性定义如下:
image.gif功能性
软件产品提供明确、隐含要求的能力
-
适合性。软件产品为指定的任务和用户提供一组合适的功能的能力(投入运行后,功能是否合适、正确、完整等)
-
准确性。软件产品提供具有所需精度的正确或相符的结果或效果的能力(实际与预期的差别)。
3.互操作性。软件产品与一个或更多的规定系统进行交互的能力(如果与其它软件有定义接口,数据传输的正确程度)。
4.安全保密性。软件产品保护信息和数据的能力,使未授权的人不能阅读或修改这些信息和数据,而不拒绝授权人员阅读或修改这些信息和数据(访问的可审核性(正常、病毒)、可控制性)。
5.功能性的依从性。软件产品遵循与功能性相关的标准、约定或法规及类似规定的能力(非法)。
可靠性
在指定条件下使用时,软件产品维持规定的性能级别的能力
-
成熟性。软件产品为避免由软件内部的故障而导致失效的能力(潜在的故障密度、失效的测试用例数量、故障排除)。
-
容错性。在软件出现故障或者违反其指定接口的情况下,软件产品维持规定的性能级别的能力。
3.易恢复性。在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力(重启能力、重启时间)。
4.可靠性的依从性。软件产品遵循与可靠性相关的标准、约定或法规的能力(非法)。
易用性
在指定条件下使用时,软件产品被理解、学习、使用和在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力
易理解性。软件产品使用户能理解软件是否合适以及如何能将软件用于特定的任务和使用条件的能力(文档、功能的初始印象)。
易学性。软件产品使用户能学会其应用的能力(使用者学习满足需求的能力)。
易操作性。软件产品使用户能操作和控制它的能力。
吸引性。软件产品吸引用户的能力。
易用性的依从性。软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力(非法)。
效率
在规定条件下,相对于所用资源的数量,软件产品可提在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力
时间特性。在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力(如响应时间)。
资源利用性。在规定条件下,软件产品执行其功能时,使用合适数量和类别的资源的能力(如内存占用)。
效率依从性。软件产品遵循与效率相关的标准或约定的能力(非法)。
可维护性
软件产品可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应
易分析性。软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。易改变性。软件产品使指定的修改可以被实现的能力(变更难易的程度)。
稳定性。软件产品避免由于软件修改而造成意外结果的能力(由于软件修改而造成的意外)。
易测试性。软件产品修改能被确认的能力。
维护性的依从性。软件产品遵循与维护性相关的标准或约定的能力(非法)。
可移植性
软件产品从一种环境迁移到另一种环境的能力
适应性。软件产品毋需采用额外的活动或手段就可适应不同指定环境的能力(屏幕大小)。
易安装性。软件产品在指定环境中被安装的能力(用户在指定环境中被安装的能力,与易操作性互相影响)。
共存性。软件产品在公共环境中同与其分享公共资源的其他独立软件共存的能力(共享资源的其它软件)。
易替换性。软件产品在同样环境下,替代另一个相同用途的软件产品的能力(版本迭代、新旧兼容)。
可移植性的依从性。软件产品遵循与可移植性相关的标准或约定的能力(非法)。
使用质量模型是基于用户观点的软件产品用于指定的环境和使用周境时的质量。它测量用户在特定环境中能达到其目标的程度,而不是测量软件自身的属性。基本的软件使用质量模型包括4大特性,如下图:
image相关实例
为了使大家更清楚的理解每个度量点的定义,结合输入法内核测试小组的一些测试经验,各度量点相关的一些实例如下:
功能性
image可靠性、易用性
image效率、可维护性、可移植性
image使用质量
image使用场景
当你知道在测试过程中需要关注哪些特性了后,肯定心里面有个疑问,那么接下来,我要怎么做,怎么去进行测试呢 ?
其实这个问题,出于对产品不同角度考量,使用软件质量模型的方式也有所不同:
如果你只是应用于产品测试,那么就可以围绕着这些度量点进行展开,根据产品的特性设计测试用例,验证具体实现与预期的差别。
如果你作为一名项目的有效推动者,想要在项目的生存周期内系统化的评价产品,版本间比较发现问题,那么你可以自定义适合自己产品的内部质量模型,或者通过外部属性定义外部质量模型,或者通过测量使用质量的属性来评价。目标就是使产品在指定的使用周境下具有所需的效用并且效果符合预期。
结合输入法内核的产品特性,输入法内核测试小组对质量模型的一些特性进行筛选,目前正在使用的输入法质量模型的评价方式如下图:
image结束语
其实软件质量模型,当然不仅仅只用于帮助你回答老板提出的问题,
它是我们每一个测试人的地基,在进行软件测试时,
只有地基牢固,测试点才不会遗漏,
提供给用户的产品才会经得起各种场景的考验。
好啦,现在,你知道该怎么机智的回答老板的问题了喵?
网友评论