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

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

软件质量模型


简介


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



质量模型的分类



质量模型分为基于经验的模型和机遇构建的模型两大分类,基于经验的模型(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模型却仅仅构建了一个统一的质量模型,应用领域的特殊性、软件设计和实现的特殊性依然没有被考虑进来,最终致命的问题是这种方法只能应用于软件开发完成之后。



目录
相关文章
|
4月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
146 3
|
2月前
|
人工智能 物联网 测试技术
智能化测试基础架构:软件质量保障的新纪元
本文介绍了智能化测试基础架构的核心构成与优势。该架构融合AI、领域工程与自动化技术,包含智能测试平台、测试智能体、赋能引擎和自动化工具链四部分,能自动生成用例、调度执行、分析结果,显著提升测试效率与覆盖率。其核心优势在于实现专家经验规模化、质量前移和快速适应业务变化,助力企业构建新一代质量保障体系。建议从构建知识图谱和试点关键领域智能体起步,逐步推进测试智能化转型。
|
4月前
|
安全 测试技术 Linux
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
123 2
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
|
4月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
205 4
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
|
3月前
|
测试技术
软考软件测评师大题——案例分析之白盒测试
历年下午案例试题一固定考察白盒测试,主要包含三大核心问题:推导逻辑条件、绘制控制流图及计算环路复杂度、确定线性无关路径集合。内容涵盖覆盖层级标准(语句、分支、判定、条件覆盖等)、控制流图构建规范(顺序、分支、循环结构转换原则)、环路复杂度计算公式以及线性无关路径生成方法。通过典型题型示例解析,如代码路径分析与验证指标,帮助考生掌握解题思路和技巧。
|
3月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
3月前
|
安全 测试技术 持续交付
软考软件评测师——基于风险的测试技术
本文详细阐述了测试计划的核心要素与制定流程,涵盖测试范围界定、实施策略规划、资源配置及风险管理机制。通过风险识别方法论和评估模型,构建了完整的质量保障体系。同时,针对不同测试级别与类型提供具体配置建议,并提出技术选型原则与实施规范,确保测试活动高效有序开展,为项目成功奠定基础。内容结合实际经验,具有较强指导意义。
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
638 23
|
8月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。