本章节主要讲解“软件质量框架”的内容,关于产品质量模型在国标中其实有详细的定义,《GB-T 16260.1-2006 软件工程 产品质量 第1 部分质量模型》《GBT 16260.3-2006 软件工程 产品质量 第3 部分内部度量》和《GBT 16260.2-2006 软件工程 产品质量 第2 部分:外部度量》三个标准体系中详细地介绍了产品质量模型,所以本章与其说是讲述软件质量模型,不如说是对这三个标准在使用过程中的一个详细说明。之所以需要对软件质量模型进行专门的介绍,是因为软件质量会影响到后期测试的很多内容,包括软件测试分类、软件测试方法等,所以对一名优秀的软件测试工程师来说,软件质量模型的特性是一定要掌握的。
一、软件质量框架
在整个产品研发过程中,产品的质量受到多个维度的内容影响,本小节主要介绍不同维度是如何影响产品质量的,以及在整个产品生命周期中,产品质量与产品生命周期每个阶段的关系。
1、质量途径
在整个产品生命周期中,产品质量受过程质量、内部质量、外部质量和使用质量的影响,关于质量传递途径如图5-1所示。
图5-1 生命周期中的质量传递途径
从图中可以看出,过程质量会直接影响到内部质量的好坏,内部质量会直接影响到外部质量的好坏,而外部质量会直接影响到用户使用的质量,而用户对产品质量的感受直接决定其是否购买我们的产品。从图中可以看出整个评估软件质量是软件开发生命周期中一个很重要的过程,也可以对应为我们平常说的测试过程。之所以对软件产品质量内部属性、外部属性和使用质量的属性进行评估,目的就是保证产品在指定的使用环境下具有所需的效用,也就是我们通常说的要满足客户的需求。
用户质量要求包括在指定的使用环境下对使用质量的需求进行评估,常用到的测试方法包括:验收测试、α测试和β测试。外部质量是指软件系统作为完整的整体运行时所表现出来的各方面的质量特征。常用到的测试方法包括:动态测试和系统测试。
内部质量是指软件研发过程中,中间过程产品的质量,如单元模块、功能点等。内部质量的测试通常包括静态测试和动态测试两个方面,静态测试包括需求说明书评审、概要设计评审、详细设计评审和代码评审。动态测试主要包括集成测试和单元测试。
过程质量是指对整个研发过程进行控制,通过控制过程进而控制质量,主要是评估过程设计的完善程度和过程执行的力度。使用的方法是SQA(Software Quality Assurance,质量保证),也就是通过一系统的质量保证方法来保证软件的质量。
二、产品质量和生存周期
内部质量、外部质量和使用质量的观点在软件生命周期中是变化的,不能说是一成不变的。在生命周期刚开始阶段,质量需求是从外部和用户的角度获得的,这与设计质量不同,设计质量属于中间产品质量,它是从内部和开发者的角度获得的。当然在实际过程中,在收集用户质量要求时,用户所反应的要求往往不是其真正的需求,之所以会出现这种情况,一般由以下几个方面影响:
(1)用户并不是经常可以意识到自己的实际需要。
(2)要求在被确定之后还是可能会发生变化的。
(3)不同的用户可能具有不同的操作环境。
(4)特别是对于现代软件,咨询所有可能类型的用户是很难办到的。
图5-2 软件生命周期中的质量
用户质量要求可通过使用质量的度量、外部质量、内部质量来确定为质量需求。确定后,这些需求应该作为准则来使用。当然获得满足用户的产品通常需要一个不断迭代的过程。外部质量需求从外观角度来规定要求的质量级别,也包括从用户质量要求派生的需求。外部质量需求用作不同开发阶段的确定目标,对在本部分中定义的所有质量特性,外部质量需求应在质量需求说明中用外部度量加以描述,宜先换为内部质量需求,而且在评价产品时应该作为准则使用。
内部质量需求从产品的内部度量来规定要求的度量级别。内部质量需求用来规定中间产品的特性,这可以包括静态和动态的模型、文档和源代码。内部质量需求可用作不同开发阶段的确认目标,也可用于开发期间定义开发策略以及评价和验证的准则。
内部质量是基于产品开发内部角度的特性总体,针对产品内部质量需求被测量和评价。通常内部质量过程包括代码实现、评审、测试等。当然内部质量并不会影响产品质量的基本性质,除非对内部设计进行重新设计。
外部质量是基于外部角度的软件产品特性的总体。在软件执行过程中,通常我们会在模拟环境中使用模拟数据进行测试,站在外部质量进行测量和评价。在测试期间,大多数故障都可以被发现和消除。当然这并不代表测试结束后产品就不存在故障,在测试后仍会有一些故障我们没有发现。
使用质量是基于用户角度的,软件产品在指定的环境和使用环境时的质量,测量用户在特定环境中达到目标的程度。
本章节关于“软件测试质量模型之质量框架”的内容就讲解到这里,大家觉得有用的话记得每天来这里和小编一起学习涨薪技能哦。