测试工程师必备基础知识:软件质量模型概述

简介: 测试工程师必备基础知识:软件质量模型概述

软件质量模型


简介


软件测试的目的就是为了“验证产品质量是否满足用户的需求”。但是搞清楚,用户的需求并不是一件容易的事,因此在软件测试行业发展的漫长历史中,需要一种方式能够积累广大测试工程师的经验。这里的经验就是如何验证用户的需求。这也促使软件质量模型的诞生。软件质量模型是一个衡量软件整体质量效果的度量标准,反映软件满足明确或隐含需要能力的特性总和。如果你的测试活动脱离了软件质量模型,那么很有可能会有一些很重要的内容被忽略。软件质量模型发展到现在也经历了很多演进,但是每一种演进都是是为了交付好系统而发展的。



质量模型的分类



质量模型分为基于经验的模型和机遇构建的模型两大分类,基于经验的模型(Experience-based models),主要是依据质量工作人员的一些实践经验的总结,使用典型的质量因素构建一个多层的质量模型,基于经验的模型主要包含了层次模型、关系模型。基于构建的模型(Construction-base models)是通过提供一些方法从而构建一个质量模型,这其中重点在于质量属性之间关系的构建以及对质量属性进行分析,在构建模型中典型的就是Dromey质量模型。


当前被质量工程领域大部分专家所认可的就是基于经验的质量层次模型了,质量层次模型从 McCall 模型、Boehm 模型,最后发展到了ISO系列模型,充分说明了层次模型和质量特性的合理性。但是这也并不是否定了基于经验的关系模型、基于构建的质量模型就是不对的,每一个质量模型都有其在质量管理方面的优越性的。


基于经验的质量模型

软件质量层次模型的产生要追溯到1977年。Jim A.McCall 试图通过一系列的软件质量属性指标来弥补开发人员与最终用户之间的沟壑,最终提出了McCall模型,也被称为GE模型(General Electrics Model)。McCall质量模型是一个三层模型,自顶向下分别是质量因素、质量准则和质量度量。但是我们都知道,一个软件系统的质量因素除去其自身的软件相关属性之外还有硬件的一些属性的支持,所有软件的质量准则和质量度量都是在硬件属性之上展现的,没有硬件资源,软件系统就没有了运行的土壤,因此Barry W.Boehm在1978年提出了Boehm模型,通过一系列的属性的指标来量化软件质量,Boehm模型类似McCall质量模型,采用了层级的质量模型结构,包含了高层属性、中层属性和原始属性。**Boehm模型在某种程度上可以看你做McCall的下一代质量模型。**


但是,就算软件质量层次模型从McCall模型发展到了Beohm模型,却还是没有讲最原始的质量属性和一些质量要素区分清楚,这两类约束混杂在质量准则、质量度量上,因此ISO/IEC 9126质量模型综合了Boehm模型和McCal模型的优越性和问题,站在用户、开发者、管理者的角度,从外部质量、内部质量、使用中质量三个方面完成了质量模型的建设,从外部和内部对质量进行度量。这也是第一次彻底从将质量层次模型讲分清楚。ISO/IEC 9126质量模型包含了6个质量特性和27个质量子特性,特性和子特性一一映射,不存在交叉问题,但是还不完善,因此发展到后来的GB/T 25010全套的质量模型,包含了系统质量、使用质量等。


软件质量关系模型,重点是反映了质量属性之间的关系,通过描述质量属性之间的正面、反面或者中立的关系,来阐述软件质量。Perry模型就是一个典型的关系模型,它使用一张二位的表格来阐述各个质量属性以及它们之间的关系。可想而知,对于软件质量属性想要通过一个二位表格描述清楚其实还是有其局限性的。比如质量属性之间的动态可变的相互制约关系或者两个以上的质量属性之间的制约关系,这些在Perry模型也不能很好地表达。


基于构建的质量模型


基于构建的质量模型中最为典型的就是Dromey提出的一种质量模型,也称为Dromey模型。这种模型是由三个主要的元素组成,包含了质量属性、组件以及组建特性,通过提供建立模型的方法来构建质量模型。构建该种质量模型包括以下五个步骤:

  • (1)确定产品的一系列高级质量属性;
  • (2)确定产品组件; 
  • (3)对每个组件的最重要的、切实的、质量相关的属性 进行确认和分类; 
  • (4)为连接产品属性和质量属性提供系列的规则; 
  • (5)对模型进行评价,指出它的弱点,进行重定义或者废弃重新建模型。


人们可以通过由以上五个步骤组成的过程来针对具体软件产品的质量模型进行初始化和重定义。并且,针对软件的需求定义、设计和实现这些软件开发中关键的产品论证了该方法的应用


总结


以上的各种软件质量模型各有各的优越性,也有各式各样的缺陷:

  • 基于经验的层次模型由一些质量因素、质量准则和质量度量等组成,这也导致了只能表达质量属性之间的正面的关系,但是对于一些反面的、更复杂的关系却没有能力表达出来
  • 基于经验的关系模型能够表达质量属性之间关系,这些关系有可能覆盖正面、反面、中立的关系,但对于一些更为复杂的关系则同样无法表达。
  • 基于构建的质量模型认识到了软件质量模型需要通过质量相关属性和软件产品组件构建,但是应该Dromey模型却仅仅构建了一个统一的质量模型,应用领域的特殊性、软件设计和实现的特殊性依然没有被考虑进来,最终致命的问题是这种方法只能应用于软件开发完成之后。



目录
打赏
0
0
0
0
75
分享
相关文章
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
探索自动化测试在软件质量保证中的关键作用
本文深入探讨了自动化测试在现代软件开发生命周期中的重要性,以及它是如何成为确保软件产品质量的不可或缺的一环。通过分析自动化测试的优势、挑战和最佳实践,本文旨在为读者提供对自动化测试全面而深刻的理解,从而帮助他们在实际工作中更有效地应用自动化测试策略。
37 2
软件测试中的自动化策略:提升效率与质量
在软件开发过程中,测试是确保产品质量的关键环节。随着敏捷开发模式的普及,自动化测试成为提升测试效率和质量的重要手段。本文将介绍自动化测试的基本概念、实施步骤以及如何通过自动化测试提高软件测试的效率和质量,同时分享一些实用的自动化测试工具和技巧。
66 3
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
73 3
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
54 2
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
40 5
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
72 11
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等