文章目录

  • 前言
  • ISO/IEC 25010
    • 功能性
      • 适合性
      • 正确性
      • 完备性
      • 功能性的依从性
    • 兼容性
      • 共存性
      • 互操作性
      • 兼容性的依从性
    • 安全性
      • 保密性
      • 完整性
      • 真实性
      • 抗抵赖性
      • 可核查性
      • 安全性的依从性
    • 可靠性
      • 成熟性
      • 可用性
      • 容错性
      • 易恢复性
      • 可靠性的依从性
    • 易用性
      • 易学性
      • 可辨识性
      • 易操作性
      • 易访问性
      • 用户差错防御性
      • 用户界面舒适性
      • 易用性的依从性
    • 效率(性能)
      • 时间特性
      • 资源利用率
      • 容量
      • 效率的依从性
    • 可维护性
      • 模块化
      • 可复用性
      • 易分析性
      • 易修改性
      • 可测试性
      • 可维护性的依从性
    • 可移植性
      • 适应性
      • 易安装性
      • 易替换性
      • 可移植性的依从性
  • ISO/IEC 9126
  • 参考文档

前言

作为一个软件测试工程师,第一个需要深入理解的知识就是软件质量模型。对测试而言,工作不仅仅是提缺陷,还需要评估产品质量。如何评估产品质量呢,评估的结果是否客观,有没有标准或者可以分析的维度。

在为产品做质量评估之前,我们需要先弄清产品质量是什么? 根据IEEE24765-2010的定义,产品质量是只“在特定的使用条件下,产品满足明示的和隐含的需求的固有特性”,简言之,质量就是满足需求。进行软件质量评估,评估的主要内容其实就是产品是否满足用户需求

产品满足用户需求,不仅仅是满足产品需求中明确提及那些的功能,还要满足行业规范、约定俗成的要求或者用户的使用习惯等隐形需求。由于行业背景不一样,个人的知识储备不一样,且用户需求在传递的过程中可能会有变形失真等原因,我们需要借助软件质量模型进行系统分析,识别这些隐藏的需求,预防缺陷,提升产品质量。

ISO/IEC 25010

同9126相比,25010将质量模型从原来的6个属性扩展到8个属性,新增加的内容是安全性兼容性, 另外还对功能性、易用性和可维护性做了修改,具体内容如下所示。

功能性

是指软件产品在指定条件下使用时,提供满足明示隐含要求的功能的能力。 明示+隐含才构成了用户对产品的真正完整的功能要求。
功能性包含4个子特性,这些子特性可以给我们提供分析功能性要求的思考方向。

适合性

功能促使指定的任务和目标的实现程度

可以分两个个层次来理解功能性中的适合性:

  • 第一层次:有没有,即是系统提供的功能是用户所需要的
  • 第二层次:是否合适,即是只提供用户必要的步骤即可完成任务,不含任何不必要的步骤

例子:

  • 计算器 的适合性就是是否有加减乘除功能
  • 手机发送短信的适合性看手机能否有能进行发送和接受短信的功能

正确性

产品或系统提供具有所需精度的正确结果

也可以分两个层次来理解功能性中的正确性:

  • 第一个层次:对不对,即是提供的功能的结果是对的
  • 第二个层次:即是满足精度要求

例子:

  • 计算器 1+1=2,手机发送短信的内容有无丢失
  • 金额保留2位小数、利率应针对不同的金额范围保证计算结果为两位小数

完备性

功能集对指定任务和用户目标的覆盖程度
也可以分两个层次来理解功能性中的完备性:

  • 第一个层次:全不全,为用户提供的功能是否满足用户的预期(明示)
  • 第一个层次:全不全,为用户提供的功能是否满足用户的预期(隐含)

例子:

  • 计算器要提供加减功能,也要提供乘除这些明示的功能(明示)
  • 如果产品时针对特殊人群使用,如针对程序员,需提供位转换功能;针对盲人,需提供触摸键盘和语音功能等等(明示)
  • 特定场景才能想到用到的功能,查看历史记录、日期计算等不常用功能(隐含)

功能性的依从性

产品或系统遵守与功能性相关的标准、约定或者法规以及类似规定的程度

兼容性

是指软件产品在共享软件或硬件的条件下,产品、系统或者组件能够与其他产品、系统或组件交换信息,实现所需功能的能力。

兼容性包含3个子特性,这些子特性可以给我们提供分析兼容性要求的思考方向。

共存性

在与其他产品共享通用的环境和资源的条件下,产品能够有效执行其所需的功能并且不会对其他产品造成负面影响。

也可以分两个层次来理解兼容性中的共存性:

  • 第一个层次:不同类型的软件可可以共存,且不会产品相互的负面影响
  • 第二个层次:相同类型的软件可以共存,且不会产品相互的负面影响

例子:

  • 计算器可以和系统中的其他应用,如闹铃、天气预报等其他应用共存,彼此不会互相影响
  • 360安全卫士和QQ电脑管家、不同厂家的计算器等等

互操作性

两个或多个系统、产品或组件能够交换信息并使用已交换的信息

例子:

  • 第三方登录,使用第三方账号登录到系统
  • Word文档打印,兼容各种主流型号的打印机进行互操作性测试
  • 手机入网,兼容网络运行商特殊需求、兼容个基站控制器品牌不同的兼容性
  • ATM取款,兼容各个不同银行的卡、兼容不同不类型的卡

兼容性的依从性

产品或系统遵守与兼容性相关的标准、约定或者法规以及类似规定的程度

安全性

是指软件产品或系统保护信息和数据的程度,其可使用户、产品或系统具有与其授权类型、授权级别一致的数据访问程度

安全性有被细分为6个子特性,这些子特性可以给我们提供分析安全性要求的思考方向。

保密性

产品或系统确保数据只有在被授权是才能被访问

安全性的保密性可以理解为:认证 + 授权
例子:

  • 有认证和授权功能,产品、系统、组件需要通过认证才能访问。通过授权来确认访问者的访问权限,不能非法越权、提权
  • 通过认证,如果不具备权限也不能访问系统数据
  • 有加密功能,数据在存储和传输过程中均需要加密

完整性

系统、产品或组件防止未授权访问、篡改计算机程序或数据的程度

例子:

  • 授权访问
  • 作为应用程序的使用者,操作系统账号都不应具有篡改应用程序的权限,不能植入其他非本应用程序相关的内容
  • 产品、系统抵抗其他攻击的能力、也算是安全性的完整性范畴

真实性

对象或资源的身份识别能够被证实符合其声明的程度
例子:

  • 加密功能,防止用户认证数据被拦截篡改
  • 安全认证方式,人脸识别、身份证信息识别等

抗抵赖性

活动或事件发生后可以被证实且不可被否认的程度

可以理解为系统需要有记录用户行为日志并保留足够长的时间
例子:

  • 系统详细记录什么时间谁使用了xx应用做了什么事情
  • 审计信息存储足够长的时间(如6个月)

可核查性

活体的活动可以被唯一追溯到该实体的程度

例子:

  • 认证 + 记录使用行为

安全性的依从性

产品或系统遵循与安全性相关的标准、约定或法规以及类似规定的程度

可靠性

是指在特定条件下使用时,软件产品维持规定的性能级别的能力
可靠性三要素:规定的环境、规定的时间、规定的性能
可靠性包含5个子特性,我们可以从如下3个层层递进的句子来理解可靠性的要求:

  • 第一层:产品或系统最好不要出故障,即是成熟性
  • 第二层:产品、系统对故障和异常有一定的容忍度,出现故障了不要影响主要的功能和业务,即是容错性
  • 第三层:如果影响了主要功能和业务,系统可以尽快定位问题并恢复的能力,即是易恢复性。

成熟性

产品为避免因软件故障而导致失效的能力
可以从两个层次来理解成熟性:

  • 第一个层次: 产品长时间运行功能出现失效的概率
  • 第二个层次:软件自身错误导致导致整个软件失效,对错误预先进行防范

例子:

  • 软件长时间持续运行一段时间后,会偶尔出现功能失效的问题,一般情况下这些问题都可以通过“重启”的方式恢复

可用性

系统、产品或组件在需要使用时能够进行操作和访问的程度

可以理解为成熟性(不要出故障,控制故障失效的评率)、容错性(对故障的容忍度)和易恢复性(控制每次失效后系统无法工作的时间)的组合,是一个整体评估可靠性的指标。

“几个9”是衡量系统可用性的一种标准方式,其表示产品、系统在1年的使用过程中最多可能出现的业务中断的时间,计算方法和使用领域如下所示:

在实际使用时,可以使用如下公式来计算产品、系统实际的可用性A:
A = MTBF/(MTBF + MTTR)
说明:

  • MTBF(Mean Time Between Failure): 平均故障间隔时间
  • MTTR(Mean Time To Repair): 平均故障修复时间

容错性

产品在发生故障或者违反指定接口规范的情况下,维持规定的性能级别的能力

例子:

  • 对依赖的子系统、模块可能传递过来的错误进行兜底操作(提前预防),避免这些错误传递到自身引起自身失效
  • 模块间对接,对其他模块传递的指针进行非空检查
  • 针对用户的任何错误输入,不会引发系统出现无响应、软件重启等异常

易恢复性

产品在失效的情况下,重建规定的性能级别并恢复受直接影响的数据的能力

可以从如下两个层面来理解:

  • 第一个层面:异常重启后,软件能自动启动,最好能恢复到重启前的页面
  • 第二个层面:长时间无响应,手工杀死进程,重启软件,产品能够恢复正常工作
    例子:
  • 系统在遭遇攻击后,产品、系统应该能快速恢复

可靠性的依从性

产品或系统遵循与可靠性相关的标准、约定或法规以及类似规定的程度

易用性

是指用户在指定条件下使用软件产品是,其被用户理解、学习、使用以及吸引用户的能力

易用性的能力,简单的可以用如下8个字来理解:易懂、易学、易用、漂亮
针对企业级产品来说,用户对其易用性的要求日益提高,即便系统有很强的专业性,用户一般也是要求可以直接上手完成所需的功能配置。
易用性包含有7个子特性,这些子特性可以为我们提供思考易用性的方向。

易学性

帮助用户学习、使用该产品或系统的能力

  • 软件提供“帮助”功能,并为产品功能编制了索引,还提供了Q&A、社区等,为用户学习产品提供了充分、完成的材料
  • 软件运行在不同的载体(云上、云下)上,用户界面应一模一样,易于用户快速上手,降低学习成本。

可辨识性

帮助用户辨识产品或系统是否符合他们的要求,是否适合以及如何将产品用于特定的任务和环境的能力

易用性的可辨识性有如下内容

  • 要求产品可以自动辨别当前的使用环境是否符合基本要求,如操作系统的要求、浏览器类型或版本的要求、系统资源(CPU、内存、硬盘)的最小要求等,软件是mac版本,若在windows系统上安装,应给出不可安装的提示;
  • 用户要能够方便地知道产品能够提供那些功能,例如很多产品提供了升级对新功能进行自动介绍或演示的功能,除此之外,产品提供的配套教程、网页等也算可变性;
  • 产品要直观、易于理解(能理解页面每个元素的意思,不易理解的应给出解释文案)

易操作性

帮助用户很方便地操作和控制产品的能力

  • 诺基亚 和 摩托罗拉在编辑发送短信的时的方便性的差异性,诺基亚手机编辑短信切换语言需要切换多次按钮才能成功,诺基亚只需要一个按键即可切换成功,这就是已操作性上的差别;
  • GUI界面,菜单层次不要太深,快捷键、tab顺序、默认操作、工具条(相似功能分组、用户自定义常用功能)
  • 软件安装,提供大量的安装步骤,每个步骤又有大量的分支选项,对普通用户来说不太容易操作

易访问性

产品或系统提供广泛功能供用户使用的能力

易访问性中要求产品在设计时可以考虑使用者的使用障碍,如年龄障碍、能力障碍等。一个典型的例子就是在进行UI设计配色时,需要考虑色弱因素,保证色彩之间不仅色相有差异,明度也要拉开层次,增加特殊人群的辨识度。
金融产品查看金额、利率有数据有放大镜的功能,帮助视觉障碍或老年群体使用

用户差错防御性

预防用户犯错的能力

可以理解为系统有引导用户进行正常操作,避免出错的能力。
例如配置向导功能, 功能针对不对取值要求限制用户的错误输入(灰色不能被选择、错误输入给出提示信息)

用户界面舒适性

提供令人愉悦的交互性的能力

可以从如下角度来理解用户界面的舒适性:

  • 产品的吸引力,包括风格、设计感、配色等;
  • 页面交互能力,配置页面跳转、提高增删改查操作的方便性等

易用性的依从性

产品或系统遵循与易用性相关的标准、约定或法规以及类似规定的程度

效率(性能)

是指在规定的条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
效率就是我们常说的产品性能, 效率包含4个自特性,如下所示:

时间特性

产品或系统执行其功能时,其响应时间、处理时间以及吞吐量满足需求的程度

资源利用率

产品或系统执行其功能时,所使用资源数据量和类型满足需求的程度

容量

产品或系统参数最大限度满足需求的能力

效率的依从性

产品或系统遵循与效率相关的标准、约定或法规以及类似规定的程度

可维护性

是指产品可被修改的能力。
这里修改是指软件产品被纠正、改进,以及为适应环境、功能、规格变化被更新。可维护性最典型的一个体现就是产品的升级操作。

可维护性包含6个自特性,具体如下:

模块化

由多个独立组件组成的系统或程序,其中一个组件的变更对其他组件的影响最小的程度

体现了研发模式的变化对质量的影响, 在DevOps下,虚拟化和容器成为很多系统的基础环境,服务/微服务成为流行架构的趋势更加明显,解耦 和 模块化已成为最基本的架构设计要求,与此同时,模块化进一步催生了可复用性的要求,避免重复造轮子。

可复用性

资产能够被多个系统或其他资产建设的能力

易分析性

诊断软件中的缺陷、失效原因或识别待修改部分的能力

可以理解为在系统出现问题后,技术支持或者开发可以快速定位问题所在的能力。很多产品中的日志、告警等功能,都属于易分析性。

易修改性

产品能够被有效修改,且不会引入缺陷或降低现有产品质量的能力

该特定最重要的体现就是产品的升级能力。 企业级产品往往对升级都有比较严格的要求,比如升级不能影响业务、能够及时判断升级是否成功(如果升级失败还要有回退机制)。所以很多时候升级功能并非像看起来那么简单,往往需要结合用户的行业、使用场景和使用习惯来指定策略、设计专门的升级方案。

可测试性

能够为系统、产品或组件建立测试准则,并通过测试执行来确定测试准则是否被满足的有效性和效率的程度

易测试性可以帮助开发、测试快速确认结果,提高处理调试、测试和反馈问题的效率,对于测试来说,易测试性非常重要。

可维护性的依从性

产品或系统遵循与可维护性相关的标准、约定或法规以及类似规定的程度

可移植性

是指软件产品从一种环境迁移到另外一种环境能力
这里的环境可以理解为硬件、软件或者系统等不同的环境
可移植性包含4个自特性,如下所示:

适应性

产品能够有效适应不同的或者演变的硬件、软件或者其他运行环境(如系统)的能力

适应性,可以理解为产品能够正常运行在应当支持的不同的硬件、操作系统、平台、浏览器、终端(手机、Pad、浏览器)上
例如软件在不同的终端上,均能正常显示,具体包括布局、大小、清晰度、按键的排列等;

易安装性

反映产品成功安装/卸载的有效性和效率的属性

易安装性也会影响到易操作性、已修改性和功能性

易替换性

在同样的环境下,产品能够替换另一个具有相同用途的指定软件产品的能力

已替换性通常和升级功能有关,也会影响到易修改性。 已替换性还有另外一层深意,就是如果产品是按照标准来设计的,那么不同品牌的产品就是可以互联和胡替换的,换句话说,已替换性将降低用户被锁定的风险。

可移植性的依从性

产品或系统遵循与可移植性相关的标准、约定或法规以及类似规定的程度

ISO/IEC 9126

ISO9126软件质量模型是评价软件质量的国际标准,由6个特性和27个子特性组成。建议大家深入理解各特性、子特性的含义和区别,在测试工作中可以从从这6个特性和27个子特性去测试、评价一个软件。这个模型是软件质量标准的核心,对于大部分的软件,都可以适用。

一、功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。其子特性如下,

1、适合性:(有没有)软件产品为指定的任务和用户目标提供一组合适的功能的能力。即所提供的功能是用户所需要的,用户所需要的功能软件系统已提供。
例如:佣金计算任务需要月末资产净值的数据,而软件产品的功能是给出资产交易信息,无月末资产净值(无)。
用户目标是计算费用,软件产品提供了佣金计算功能、费用计算功能(有)。

2、准确性:(对不对)软件产品提供具有所需精确度的正确或者相符的结果或者效果的能力。即软件除了能实现所要求的(适合性)功能外,还要求能正确实现(准确性)所要求的功能。
例如:手机发送、接收短信。适合性是看手机是否能进行发送接受,准确性是看发送接收的内容是否正确(发送后和接收到的内容是否一致,内容有无丢失)

3、互操作性:软件产品与一个或更多的规定系统进行进行交互的能力。
例如:不同型号的打印机与word之间的协议不一致
QQ账号登陆微信

4、保密安全性:软件产品保护信息和数据的能力。主要有以下两个方面:
防止未得到授权的用户或者系统访问相关的信息和数据;
保证得到授权的用户和系统能够正常的访问相关的信息和数据。
不同系统对于安全性的需求差别很大。常见的安全性测试如下:
·用户验证:登陆密码验证、IP地址访问限制等
·用户权限管理:验证低级别用户是否具有高级别用户权限,各级别用户权限都得到了实现
·系统数据的保护:对例如系统文件、用户密码文件等进行隐藏、密码验证、内容加密、备份等
·防DOS攻击:拒绝服务攻击 (针对消耗大量资源或相应时间非常长的业务,限制请求次数)
·防溢出攻击:缺少长度验证
·加密、解密:防止信息在传递过程中被截取解析
·防病毒:

5、功能性的依从性:产品软件遵循与国内性相关的的标准、约定或法规以及类似规定的能力。可以参考国际/国家/行业/企业 标准规范。
例如:充值功能要有越的退款途径

二、可靠性:产品在规定的条件下,在规定的时间内完成规定功能的能力

1、成熟性:防止内部错误导致软件失效的能力

2、容错性:软件出现故障,自我处理能力

3、易恢复性:失效情况下的恢复能力

4、可靠性的依从性

三、易用性:在指定使用条件下,产品被理解、 学习、使用和吸引用户的能力

1、易理解性:

2、易学性:

3、易操作性:

4、吸引性:

5、易用性的依从性:

四、效率性:在规定台条件下,相对于所用资源的数量,软件产品可提供适当性能的能力

1、时间特性:平均事务响应时间,吞吐率,TPS(每秒事务数)

2、资源利用性:CPU 内存 磁盘 IO 网络带宽 队列 共享内存

3、效率依从性:

五、软件维护性:“四规”, 在规定条件下,规定的时间内,使用规定的工具或方法修复规定功能的能力

1、易分析性:分析定位问题的难易程度

2、易改变性:软件产品使指定的修改可以被实现的能力

3、稳定性:防止意外修改导致程序失效

4、易 测试性:使已修改软件能被确认的能力

5、维护性的依从性

六、软件可移植性:从一种环境迁移到另一种环境的能力

1、适应性:适应不同平台

2、易安装性:被安装的能力

3、共存性:

4、易替换性

5、可移植性的依从性:

参考文档

  1. 国标25000.10-2016 https://www.doc88.com/p-1975040704794.html

软件质量模型ISO/IEC25010相关推荐

  1. 软件质量模型(ISO/IEC 9126和Mc Call)

    软件质量模型 目前已经由多种软件质量模型来描述软件质量特性,例如ISO/IEC 9126软件质量模型和Mc Call软件质量模型. ISO/IEC 9126软件质量模型 ISO/IEC 9126软件质 ...

  2. 软件工程 软件质量模型(ISO/IEC 9126)

    概述 软件质量指的是软件系统或软件产品满足规定或需求的能力的特征与特性. 在了解软件质量管理前需要知道软件特性包含哪些方面,对于软件质量的特性目前有多个不同的模型描述,下面介绍比较常见的一个. ISO ...

  3. 软件质量模型ISO/IEC--联想记忆法

    半月之前看过一本书<过目不忘的记忆技巧>,学习要善于利用自己的右脑,通过联想和图片等多种方式调动自己的思维.一直在不断地尝试,如果能有一个很好的联想,效果会很不错,联想的过程是一个训练的过 ...

  4. 软件质量模型介绍ISO/IEC 9126和ISO/IEC 25010

    ISO/IEC 9126软件质量模型( 一种评价软件质量的通用模型,包括 6大特性和27个子特性) ISO/IEC 25010( 八个特性和31个子特性, ISO9126多了两个主特性:兼容性和安全性 ...

  5. ISO/IEC 9126 软件质量模型

    ISO/IEC 9126 (1991年发布)是一个软件质量的评估标准,后来被最新的软件质量标准ISO/IEC 25010:2011(2011年发布)取代. ISO/IEC 9126 软件质量模型 IS ...

  6. ISO/IEC软件质量模型中,质量特性及其子特性表

    ISO/IEC软件质量模型中,质量特性及子特性表 功能性 可靠性 易用性 效率 可维护性 可移植性 适合性 容错性 易理解性 时间特性 可分析性 适应性 准确性 易回复性 易学性 资源利用率 可修改性 ...

  7. ISO/IEC9126 软件质量模型

    知识点 常考点: 功能性 →  安全性 易用性 → 吸引性 可维护性 → 可分析性 可维护性 → 稳定性 试题 在ISO/IEC软件质量模型中,易使用性的子特性不包括(31). (31)        ...

  8. 【ISO/IEC9126】ISO/IEC9126中软件质量模型品质介绍总结

    ISO9126软件质量模型,是评价软件质量的国际标准.6个特性27个子特性组成. 1.ISO9126功能性  适合性:软件产品为指定的任务和用户目标提供一组合适功能的能力.(1.软件提供了用户所需要的 ...

  9. ISO 9126软件质量模型的6大特性和27个子特性,测试人员建议深入了解

    ISO9126软件质量模型是评价软件质量的国际标准,由6个特性和27个子特性组成,建议大家深入理解各特性.子特性的含义和区别,在测试工作需要从这6个特性和27个子特性去测试.评价一个软件.这个模型是软 ...

最新文章

  1. 定时器里面的作用域问题
  2. SAP 电商云 Spartacus Checkout 端到端测试
  3. middleware generic错误处理机制
  4. JAVA对象集合转化为xml转换_xml转为Map集合以及对象转化为xml
  5. 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换
  6. innodb--聚簇索引真实案列排序问题
  7. JAVA 阶乘 n!
  8. android贪吃蛇设计报告,基于android的贪吃蛇游戏设计与开发
  9. 【书籍推荐】深入解析Windows操作系统(第4版)
  10. Linux脚本的建立与执行
  11. 黑苹果安装镜像制作方法
  12. 团队管理系列-任务分配
  13. 爱荷华大学计算机科学专业,爱荷华大学计算机科学本科.pdf
  14. IAR在写结构体时不提示_如何写好个人事迹?
  15. seo关键词优化的技巧
  16. 通过迅雷下载谷歌浏览器下载的内容
  17. 祝我亲爱的天蝎GG生日快乐!+相识3周年小纪念【转载】
  18. Springboot2(43)轻松搞定自定义@Enable模块装配
  19. 月薪2万java啥水平_月薪2w的Java程序员需要什么样的技术水平呢?
  20. java计算机毕业设计springboot+vue园区管理系统

热门文章

  1. 此windows不是正版
  2. CSS表格与浮动定位
  3. swift中WKWebView和JS交互实现
  4. 写一段excel VBA自动分类的代码
  5. centOS 8 报错:Failed to set locale, defaulting to C.UTF-8
  6. 中国广电5G套餐价格实惠,但是又没有预期那么便宜
  7. int数组转strpython_python中int与str互转方法
  8. iOS ”打仙人掌“游戏一---游戏玩法实现
  9. 男士不得不看的21种经典拍照姿势
  10. 7-6,输入厘米,输出英尺英寸