购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 软件质量

质量是什么?ISO 9001C将质量定义为: 一组固有特性满足要求的程度 。该定义从固有特性及要求之间的关系描述质量,其对象泛指一切可以单独描述和研究的事物,不局限于具象化的产品,可以是服务、活动、过程、体系乃至于人及其任意组合。软件也不例外。

ANSI/IEEE Std 729—1983将软件质量定义为: 软件产品满足规定和隐含的与需求能力有关的全部特征或特性 。该定义是基于软件特点,对质量概念的自然拓展。定义软件质量,等价于为软件定义了一系列质量特性。ISO/IEC 5055基于性能效率、安全性、可靠性、可维护性四个影响系统行为的关键因素,提供一套工程规则,度量并评价软件质量。在特定条件下,软件质量可以转换为可用性、可靠性、可维护性、安全性乃至经济性、社会性等特性。

通过对软件的内部属性如静态测度(内部质量)、外部属性如执行特性(外部质量)、使用属性(使用质量)进行持续测量和评价,改进过程,提高过程能力,使得软件系统在指定的使用周境(Contexts of Use)下,实现用户需求,是软件质量保证的基本要求,是组织过程能力持续提升的基础。基于软件生命周期过程的软件质量度量模型如图2-2所示。

图2-2 基于软件生命周期过程的软件质量度量模型

2.1.1 软件质量架构

ISO/IEC 25000规定了软件质量管理、质量模型、质量度量、质量需求、质量评估的目的及要求、内容、流程和方法,构建了一个软件质量需求和评价框架,基于质量特性,定义了使用质量、产品质量及数据质量的分层模型,是系统及软件质量需求与评价(Systems and Software Quality Requirements and Evaluation,SQuaRE)的重要标准。图2-3给出了SQuaRE系列标准体系结构。

图2-3 SQuaRE系列标准体系结构

(1) ISO/IEC 2500n质量管理: 由SQuaRE 指南、计划与管理两部分构成,定义了该系列标准引用的公共模型、术语和定义,标准引用路径及使用建议,提供了软件需求及评价支持功能的要求和指南。

(2) ISO/IEC 2501n质量模型: 包括系统与软件质量模型和数据质量模型,基于软件质量特性、使用质量特性及其子特性,构建用户质量模型、产品质量模型及数据质量模型。

(3) ISO/IEC 2502n质量度量: 包括测量参考模型、质量测度元素、使用质量测量、产品质量测量、数据质量测量定义及应用指南,给出了软件使用质量、产品质量、数据质量测量的要求及测量元素。

(4) ISO/IEC 2503n质量需求: 规定质量需求,为软件质量需求识别与获取、质量目标体系建立、过程质量保证提供支撑,为评审、测试及评价过程提供输入,并将需求定义过程映射到ISO/IEC 15288定义的技术过程。

(5) ISO/IEC 2504n质量评估: 给出由需方、开发方、独立评价方等相关方执行的软件系统评价要求、建议和指南。

2.1.2 软件质量模型

软件质量模型用以描述影响软件质量的行为及特性,主要有Boehm、McCall、ISO共3类软件质量模型。ISO/IEC 14598和ISO/IEC 9126以分层方式定义了软件质量特性及其影响质量特性的子特性,基于每个质量特性及其子特性,测量软件的内部、外部及使用属性,确认并评价软件内部、外部及使用质量水平。

质量特性及子特性为软件质量测量和评价提供了一致的术语,为软件质量需求及过程能力之间的综合权衡提供了统一框架。使用软件的产品属性如功能性、性能效率、可靠性等刻画软件质量时,所反映的就是软件产品质量。当软件在特定环境及场景下运行时,所表现出来的行为就是软件的使用质量。在对软件质量进行测量时,着重强调标准的依从性,当对所有质量特性及其子特性进行测量时,应遵循相关标准、规程、约定以及与标准的符合程度。

2.1.2.1 使用质量模型

使用质量是用户使用软件系统的结果而非软件系统自身的测量属性。ISO/IEC 9126-1将使用质量定义为: 满足目标用户和支持用户的使用要求 ,是软件系统广义的质量目标。软件系统的功能性、可靠性、有效性、可用性决定目标用户在特定场景中的使用质量,支持用户所关注的则是基于可维护性和可移植性的质量。可用性是软件系统效能及交付能力的外在呈现及核心质量特性,功能性、可靠性、安全性、有效性、维护性、移植性服务服从于可用性。基于用户视角,在特定的使用场景中,所体验到的是软件质量特性的总体,关注的重点并非软件的结构和行为(内部质量和外部质量),而是用户体验及交付能力的呈现、用户价值的实现。使用质量模型由有效性、效率、满意度、抗风险能力、周境覆盖等特性构成。软件使用质量模型如图2-4所示。

图2-4 软件使用质量模型

使用质量模型将软件系统对相关人员的影响特征化,由软件质量、人员属性、使命任务及使用环境共同决定。即便软件系统实现了内部、外部质量目标,但如果用户不满意,不能得到用户和市场的认同,即认为该系统未实现其质量目标。也就是说,对于一个软件系统,即便满足产品测度准则的要求,但并不足以确保其符合外部测度准则,而满足其质量特性的外部测度准则也并非足以保证符合使用质量准则的要求。此乃以用户为关注焦点的现代质量观,是基于能力战略的软件测试的核心思想。一般地,用户关注的典型质量特性如下:

(1)功能完备,性能优良,实现用户需求,超越用户期望。

(2)良好的人因工程,人机界面友好,操作简便,维护方便,给用户以美妙的体验。

(3)用户手册、支持文档、在线帮助、智能支持等功能完备准确,清晰易懂,使用方便。

(4)使用中不发生死机以及用户能感知的缺陷、运行缓慢等现象。

(5)运行过程中若发生问题,能够容易地排除或实现降功能使用。

2.1.2.2 产品质量模型

内部质量是软件系统质量特性的总体,由需求分析、软件设计、编码实现赋予,由设计评审、软件测试验证和确认。产品质量模型由与软件系统的静态属性、动态属性密切相关的功能性、效率、兼容性、易用性、可靠性、安全性、可维护性和可移植性8个质量特性及一系列子特性构成。软件产品质量模型如图2-5所示。对于每个特性及子特性,可以测量软件系统的一组属性,以确定其所达到的质量水平。

图2-5 软件产品质量模型

(1) 功能性 是指软件系统所实现的功能,达到设计要求(满足用户需求的程度),强调完备性、正确性和适合性。

(2) 效率 是指在确定的使用环境及任务场景中,软件系统对操作使用所表现出的时间特性,如响应速度;实现特定功能时资源的利用情况,如CPU占用时间、内存占用率等。若局部资源占用率高,则意味着存在性能瓶颈;当对并发用户数等进行测试和度量时,需要考虑系统的可伸缩性。

(3) 兼容性 包括共存性和互操作性两个子特性。共存性是指软件系统同系统平台、子系统及第三方软件等兼容的能力;对于特定软件系统,还包括国际化、本地化需求适宜性处理的能力;互操作性要求系统功能之间能够有效对接,涉及API和文件格式等。对于不同的平台系统,兼容性表现为适配性。

(4) 易用性 是指用户学习、使用及输入准备、输出理解的难易程度,如安装简单、界面友好、操作简便、维护方便,且能够适用于残疾人、老年人等特殊用户群体。

(5) 可靠性 是指在规定的时间内和条件下,软件系统正常工作(不发生失效)的能力。工程上通常使用平均失效时间(Mean Time To Failure,MTTF)、平均无故障间隔时间(Mean Time Between Failure,MTBF)等指标度量软件系统的可靠性。

(6) 安全性 是指在确定的条件下,确保软件系统登录、操作使用、数据传输、数据存储等安全的能力,包括用户身份认证、数据加密和完整性校验、关键操作防护、安全漏洞检测等技术措施,关键操作应具有完整的日志或记录,以支持对不同用户角色进行操作的审查。其包括保密性、完整性、抗抵赖性、可核查性、真实性等子特性。

(7) 可维护性 是指软件系统投入使用之后,当错误发生或用户需求、运行环境等发生变化时,能够进行修改的程度及升级的能力,包括模块化、可重用性、易分析性、易修改性、易测试性等子特性。

(8) 可移植性 是指软件系统从一个系统或环境移植到另一个系统或环境的难易程度,或一个系统和外部条件共同工作的容易程度。其包括适应性、易安装性、易替换性等子特性。

2.1.3 质量模型的GDQA应用框架

ISO/IEC 25000标准构建了一个通用软件质量要求和评价框架,用户可以根据评价需求开发评价模型,适用于不同领域,但未给出具体的实施指南以及应用领域的使用指南,而且所给出的度量属性相互独立,没有给出属性之间的关联关系及组合关系,在一定程度上制约了该系列标准的工程应用。为了解决该问题,Nihal Kececi和Alain Abran开发了一个图形化动态质量评估(Graphical Dynamic Quality Assessment,GDQA)框架模型,将软件质量的评估构建为软件过程、测试、管理乃至与人的因素相关的分层结构。

这里,我们构建了如图2-6所示的GDQA框架模型。该GDQA框架提供了一种应用ISO质量模型的思路和方法,其输入与开发过程绑定,适用于开发过程。在该框架结构中,其高层由软件质量特性构成,而底层则由质量属性组成。质量因子的可测性,既是软件系统的特性,也是内外部质量属性的组合,分别表征产品质量和使用质量。

图2-6 GDQA框架模型

GDQA框架模型所关注的焦点是自顶而下或自底而上确定高层质量特性与基础数据之间的关系。GDQA框架模型使用步骤如下:

(1)建立分层结构树模型,分解软件质量特性、子特性及属性。

(2)确定质量属性的优先级和权重。

(3)定义属性间的关系。

(4)确定间接测量值与质量特性及子特性之间的关系。

(5)确定开发过程文档、源代码、测试及维护报告等评价输入。 7kCo7iR1eZNoPL6cJ7aktHo5b3zUSuTNlJ6Fylzq//cCr3Qdw0CYzJnd6aYX4JUn

点击中间区域
呼出菜单
上一章
目录
下一章
×