
1.1 软件质量
1.1.1 软件质量的概念
从现代质量管理的角度讲,质量是客户要求或者期望的有关产品或者服务的一组特性,落实到软件上,这些特性是软件的功能、性能和安全性等。
ANSI/IEEE Std 729-1983《软件工程术语的IEEE标准术语表》(Glossary of Software Engineering Terminology)定义软件质量为“与软件产品满足规定的和隐含的与需求能力有关的特征或特性的全体”。软件质量反映在以下3个方面。
●软件需求是度量软件质量的基础,不符合需求的软件质量不合格。
●软件需求开发过程中,往往会有一些隐含的需求没有显式地提出来。如软件应该具备良好的可维护性。
●软件研发的流程定义了一组开发准则和最佳实践,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量可能就得不到保证。
也就是说,为满足软件各项精确定义的功能、性能需求,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。特性是软件质量的反映,软件属性可用作评价准则,度量软件属性便可知软件质量的优劣。
1.1.2 软件质量模型
软件质量是各种特性的复杂组合,它随着应用的不同而不同,随着用户提出的质量要求不同而不同。软件产品各种质量特性的组合就叫作软件质量模型。
常见的软件质量模型有3种:Boehm质量模型(1976年)、Mc CALL质量模型(1978年)、ISO 9126质量模型(1993年)。
1.Boehm质量模型
Boehm质量模型是1976年由Boehm等人提出的分层方案,将软件的质量特性定义成分层模型(见图1-1)。

图1-1 Boehm质量模型
2.Mc CALL质量模型
Mc CALL质量模型(见图1-2)是1979年由Mc Call等人提出的软件质量模型。它将软件质量的概念建立在11个质量特性之上,而这些质量特性分别是面向软件产品的运行、修正和转移的。

图1-2 Mc CALL质量模型
3.ISO 9126质量模型
按照ISO/IEC 9126-1:2001,软件质量模型可以分为内部质量模型、外部质量模型、使用质量模型。而在质量模型中又将内部质量和外部质量分成6个质量特性,将使用质量分成4个质量特性,具体见图1-3。

图1-3 ISO 9126软件质量模型
不同的软件质量模型提出了不同的软件质量特性,为了更好地理解软件质量与软件质量模型,就要弄清楚这些质量特性的含义。常见的软件质量特性及含义见表1-1。
表1-1 常见的软件质量特性及含义

1.1.3 软件测试与软件质量
要保证软件质量,一方面要用规范化的方法和开发准则指导研发人员用工程化的方法开发软件,另一方面就是对软件进行充分的测试。
软件测试是软件质量控制中的关键活动,是软件质量保证的关键步骤。软件测试在软件生存周期中占有非常突出的位置,是保证软件质量的重要手段。
软件测试活动是有计划、有组织的活动,通过测试管理确保测试活动的顺利开展,项目的测试管理对测试工作的开展至关重要。