质量模型和测试——持续测试(06)

发表于:2022-9-21 09:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈磊    来源:51Testing软件测试网原创

  1.5  质量模型和测试
  那么如何衡量软件质量效果这个抽象和笼统的问题呢?为了回答这个问题,测试工程师引入了软件质量模型。
  软件质量模型分为以下两类。
  基于经验的模型:依据经验,使用典型的质量因素构建一个多层质量模型。基于经验的模型又分为层次模型和关系模型两种。其中,层次模型的典型代表有McCall模型、Boehm模型、ISO/IEC 9126模型、ISO/IEC 25010模型,关系模型的典型代表有Perry模型、Gillies模型。
  基于构建的模型:通过一些方法构建一个模型,包含质量属性之间关系的构建和对质量属性的分析,典型代表为Dromey质量模型。
  McCall模型也称为GE(General Electric)模型。它最初起源自美国空军,主要面向系统开发人员和系统开发过程。1977年,Jim A. McCall试图通过一系列软件质量属性指标弥补开发人员与最终用户之间的沟壑,提出了McCall模型。
  McCall模型指出,特性是软件质量的反映,因此软件属性可用于(软件质量的)评价准则,通过对软件属性定量的度量就可以反映出软件的质量。
  McCall模型是一个三层模型,自顶向下分别是质量因素、质量准则和质量度量。
  其中的质量因素是面向管理观点的产品质量,软件的最终用户尽管不了解软件的内部实现细节,但是很了解自己的需求,用户从外部视角定义和描述软件,形成从外部可观察到的特性,这就是McCall模型中顶层的质量因素的来源。次顶层是质量准则,开发人员从内部视角构建软件属性,这些属性是从内部可以观察到的属性,是决定产品质量的属性;底层是定量地度量软件属性的质量度量。
  如图1-15所示,McCall模型将质量因素分为产品修正、产品转移和产品运行。每一类质量因素都有自己的质量准则。产品修正包含可维护性、可测试性、灵活性,产品转移包含可移植性、可复用性、互连性,产品运行包含正确性、可靠性、效率、可用性和完整性。
图1-15  McCall模型中的质量因素
  这11个质量标准是通过23个衡量指标来度量的。这23个衡量指标包含了简单性、简明性、工具性、自描述性、可扩展性、通用性、模块性、机器独立性、软件系统独立性、通信通用性、数据通用性、可追溯性、完备性、一致性、准确性、容错性、执行效率、存储效率、存取控制、存取审查、可操作性、培训性和通信性。
  McCall模型中的质量因素、质量准则和质量度量如图1-16所示。
  McCall模型已经对质量做了特性的细化,但是整个模型中缺少了硬件属性。众所周知,没有硬件资源,软件系统就没有了运行的“土壤”,因此Barry W. Boehm在1978年提出了Boehm模型,通过一系列的属性指标量化软件质量。Boehm模型类似于McCall质量模型,采用层次结构(见图1-17),包含高层属性、中层属性和原始属性。
图1-16  McCall模型中的质量因素、质量准则和质量度量
图1-17  Boehm模型的层次结构
  Boehm模型中的高层属性包括可移植性、可用性和可维护性。
  中层属性包含7个质量要素,分别是可移植性、可靠性、效率、人机界面、可测试性、可理解性和可修改性。原始属性包含设备独立性、自包含性、准确性、完备性、完整性、一致性、可说明性、设备效率、可访问性、通信性、自描述性、结构化性、简明性、易读性及可扩展性。
  Boehm模型已经囊括了软件和硬件的属性,但是最终的原始属性和前面介绍的质量要素交叉映射,这为Boehm模型的广泛推广造成了一些影响。因此,ISO/IEC 9126模型综合了Boehm模型和McCall模型的优点与缺点,站在用户、开发者、管理者的角度,从外部质量、内部质量、使用中质量三个方面完成了质量模型的建设,从外部和内部对质量进行度量。
  其中,外部度量在测试和使用软件产品的过程中进行,通过观察软件产品的系统行为,完成对其系统行为的测量,得到度量的结果;内部度量在软件设计和编码过程中进行,通过对中间产品的静态分析完成,其目的是确保获得所需的外部质量和使用质量。
  ISO/IEC 9126质量模型(见图1-18)包含了6个质量特性和27个质量子特性,特性和子特性一一映射,不存在交叉问题,但是还不够完善。因此有了后来的GB/T 25000质量模型,其中包含系统质量、使用质量等,这在后续章节中会进行介绍。
图1-18  ISO/IEC 9126质量模型
  被誉为当代“伟大的管理思想家”“零缺陷之父”“世界质量先生”的克劳士比,致力于“质量管理”哲学的发展和应用,将源于制造业的概念扩展到了所有商业领域。作为美国的商界传奇人物和创业企业家,他拥有40余年的管理经验,创造了许多专业词汇,如“零缺陷”“符合要求”“预防”“不符合要求的代价”“可信赖的组织”等。他对质量的定义是客体的一组固有特性满足要求的程度。
  这些质量的理念和名词也影响着软件质量,自从1991年软件产品质量评价国际标准ISO/IEC 9126提出了外部质量、内部质量和使用质量的概念之后,评价一个软件的质量好坏就是要从软件的内部、外部、使用中的表现的角度看软件是否满足规定或潜在用户需求的能力,这也就是软件质量的度量内容。
  1979年出版的The Art of Software Testing一书明确了软件测试为发现错误而执行的一个程序或者系统的过程。1983年Bill Hetzel在The Complete Guide to Software Testing一书中再一次明确了测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。
  现在,随着质量保障体系的逐渐发展,质量保障已包含测试、质量分析。其中,质量分析主要通过数据、日志、监控及缺陷的表现识别系统的风险(这既可能是技术风险也可能是业务风险),并持续反馈到制品中,由交付团队进行修改,一起保障交付物的质量。再次强调一下,质量保障的重要工作是通过预防、检查与改进软件缺陷保证软件质量。
  1.6  小结
  持续测试不等同于自动化测试,也包括手工测试,比如,每次迭代中新功能的测试采用手工(探索式测试)测试会更快,因为人更灵活、更智能。再比如,人工的需求评审、设计评审和代码评审也必不可少。测试左移中的这些测试活动可以帮助团队在早期预防缺陷,让随后的研发活动更加顺利,通过生产环境中的监控手段、业务巡检方式等促成测试右移,保障持续测试的覆盖度,从而建立从需求到生产的连续性持续测试实践方法。
查看《持续测试》全部连载章节
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号