三.软件质量模型

三.软件质量模型

根据目前国际标准 ISO/IEC 25010:2011软件质量分为使用质量和产品质量(将ISO 9126 内部质量、外部质量合并为产品质量,改进的模型可能是倒退,因为让开发者容易忽视软件的内部质量)。

软件质量是指在特定的使用条件下产品满足明示的和隐含的需求所明确具备能力的全部固有特性(内在特性),体现了产品满足产品要求的程度(外部表现),是产品的质量属性,包括功能适用性、效率、兼容性、易用性、可靠性、安全性、可维护性和可移植性,系统安全性(security)已经被独立出来了,今天绝大多数的系统或软件都运行在互联网或网络环境下,安全已经无法忽视,这也让我们的安全性测试名正言顺。另外,兼容性也被独立出来,也预示着今天的环境复杂性和多样性,而且不以开发商的意志为转移。

软件测试还要关注使用质量,在使用质量中,不仅包含基本的功能和非功能特性,如功能(有效、有用)、效率(性能)、安全性等,还要求用户在使用软件产品过程中获得愉悦,对产品信任,产品也不应该给用户带来经济、健康和环境等风险,并能处理好业务的上下文关系,覆盖完整的业务领域。

软件产品质量模型对产品设计时需要考虑的地方进行了高度概括。一个高质量的产品,一定是一个在质量六属性上都设计得很出色的产品;如果一个产品的设计在质量六属性上存在缺失,这个产品的质量一定不会太高。

软件质量的各种类型

下面将效率、兼容性、易用性、可靠性、安全性、可维护性和可移植性等进行简要介绍(详细见下面附录),以帮助大家理解为什么要进行功能性测试还要进行非功能性测试。

1、功能适用性(functional suitability):软件所实现的功能达到其设计规范和满足用户需求的程度,强调正确性、完备性、适合性等。

2、性能效率(efficiency):在指定条件下,软件对操作所表现出的时间特性(如响应速度)以及实现某种功能有效利用计算机资源(包括内存大小、CPU占用时间等)的程度,局部资源占用高通常是性能瓶颈存在;系统可承受的并发用户数、连接数量等,需要考虑系统的可伸缩性。

3、易用性(usability):对于一个软件,用户学习、操作、准备输入和理解输出所作努力的程度,如安装简单方便、容易使用、界面友好,并能适用于不同特点的用户,包括对残疾人、有缺陷的人能提供产品使用的有效途径或手段(即可达性)。

4、可靠性(reliability):在规定的时间和条件下,软件所能维持其正常的功能操作、性能水平的程度/概率,如成熟性越高,可靠性就越高;用MTTF (mean time to failure,平均失效前时间) 或MTBF(mean time Between failures,平均故障间隔时间)来衡量可靠性。

5、安全性(security):要求其数据传输和存储等方面能确保其安全,包括对用户身份的认证、对数据进行加密和完整性校验,所有关键性的操作都有记录(log),能够审查不同用户角色所做的操作。它涉及保密性、完整性、抗抵赖性、可核查性、真实性。

6、可维护性(maintainability):当一个软件投入运行应用后,需求发生变化、环境改变或软件发生错误时,进行相应修改所做努力的程度。它涉及模块化、复用性、易分析性、易修改性、易测试性等

7、可移植性(portability):软件从一个计算机系统或环境移植到另一个系统或环境的容易程度,或者是一个系统和外部条件共同工作的容易程度。它涉及适应性、易安装性、易替换性。

8、兼容性(compatibility):涉及共存和互操作性,共存要求软件能给与系统平台、子系统、第三方软件等兼容,同时针对国际化和本地化进行了合适的处理。 互操作性要求系统功能之间的有效对接,涉及API和文件格式等。

原文地址:https://www.cnblogs.com/ruowangxiaxue/p/12268863.html

时间: 2024-09-29 19:23:11

三.软件质量模型的相关文章

ISO 9126质量模型:软件质量模型的6大特性和27个子特性

ISO 9126质量模型:软件质量模型的6大特性和27个子特性 ISO9126软件质量模型是评价软件质量的国际标准,由6个特性和27个子特性组成,建议大家深入理解各特性.子特性的含义和区别,在测试工作需要从这6个特性和27个子特性去测试.评价一个软件.这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这几个方面 着手进行测评. 一.功能性: 1.适合性:提供了相应的功能 2.准确性:正确(用户需要的) 3.互操作性:产品与产品之间交互数据的能力 4.保密安全性:允许经过授权的用户和系统

阿里Java开发工程师理解的三种架构模型

常用的软件架构模型可以归类为三种架构模型:3/N层架构."框架+插件"架构.地域分布式架构. 一.三种架构模型 1.3/N层架构 这是经典的多层架构模型,对于稍微复杂一点或特别复杂的系统,不使用分层架构是很难想象的.下图是经典的3层架构: 如今,凡是个程序员都能侃侃而谈3/N层架构,这确实是解决系统复杂性的一种主流模式,但是,只要采用了3/N层架构是不是就一定能解决系统的复杂性了?不一定,关键在于你在你的系统中如何实作你的3/N层结构. 在采用了3/N层架构后,我们还是要解决以下非常重

如何打造一个伟大的产品4 - 如何驾驭三个木桶模型

如何驾驭三个木桶模型 打造一个产品最考技巧的是需要去学习究竟如何才能把一个产品的各个功能点进行分门别类的放到"三个木桶模型"里面的三个木桶里面,然后还要知道什么时候这些木桶是已经装满了.返回之前提过的一个例子,究竟一个内嵌的投影模块对手机产品来说是属于gamechangers级别的功能还是distractions级别的功能呢?如果是gamechangers级别的话,那么这个功能是否已经足够捕获大量用户的芳心呢?或者你还需要结合另外一个gamechangers级别的功能才能做到这一点呢?

二级指针的三种内存模型

第一种内存模型: /* Module: 二级指针第一种内存模型.cpp Notices: Copyright (c) 2017 Landy Tan */ #include <iostream> using namespace std; ///////////////////////////////////////////////// #define SIZE(a) sizeof(a) / sizeof(a[0]) int SortArray(char **pArray, int nLen);

实现按行读取文件,把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出。

/* 2 编写一个业务函数,实现按行读取文件.把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出. 函数原型有两个,任意选择其一 要求1:请自己任意选择一个接口(函数),并实现功能:70分 要求2:编写测试用例.30分 要求3:自己编写内存释放函数 */ /********************************************************************** * 版权所有 (C)2015, Wu Yingqiang. * * 文件名称:ReadFi

JAVA学习-第三个代码模型

第三个代码模型:对象比较 在讲解具体的概念之前,再来观察一种引用传递的形式,本类接收本类对象. 范例:观察程序代码(暂时不要去思考代码意义) class Person { private String name ; public Person(String name) { this.name = name ; }       // 接收本类对象          public void change(Person temp) {                    temp.name = "李

如何打造一个伟大的产品3 - 三个木桶模型如何指导资源分配

资源分配 如果你有足够多的时间可以去浪费的话,你当然也可以忽略掉"三个木桶模型"中所提及的那三个产品功能类别,并且通过不停的盲目的迭代以最终获得市场的认可.但是你并没有那么多时间去给你挥霍.你打造出一个伟大产品所需要的时间越长,你就越容易把你的钱给烧光,越容易把你的士气打击的一蹶不振,或者越容易看着市场的机遇在你脚底下偷偷的溜走了."三个木桶模型"所带来的产品管理模型在此就显得非常的宝贵,因为它让你真正把产品管理当成是一个资源分配的问题来看待. 如果你把太多的资源投

最大熵学习笔记(三)最大熵模型

  生活中我们经常听到人们说"不要把鸡蛋放到一个篮子里",这样可以降低风险.深究一下,这是为什么呢?其实,这里边包含了所谓的最大熵原理(The Maximum Entropy Principle).本文为一则读书笔记,将对最大熵原理以及由此导出的最大熵模型进行介绍,重点给出其中所涉及数学公式的理解和详细推导. 相关链接 最大熵学习笔记(零)目录和引言 最大熵学习笔记(一)预备知识 最大熵学习笔记(二)最大熵原理 最大熵学习笔记(三)最大熵模型 最大熵学习笔记(四)模型求解 最大熵学习笔

(三)竞争模型

两物种竞争模型: 多物种竞争模型(复杂网络上的动力学): (三)竞争模型,布布扣,bubuko.com