[软件质量和软件测试 软件质量度量和配置管理]
最编程
2024-05-02 10:42:20
...
文章目录
- 第三章 软件质量度量和配置管理
- 3.1概述
- 3.1.1 度量
- 3.1.2 软件度量
- 3.1.3 软件度量的作用
- 3.2软件质量度量
- 3.2.1软件质量和软件质量要素
- 3.2.2影响软件质量的因素
- 3.2.3质量保证模型
- 3.2.4 缺陷排除效率
- 3.3软件过程度量
- 3.3.1 软件过程度量概念
- 3.3.2 软件过程度量常见问题
- 3.3.3 基于目标的软件过程度量方法
- 一个目标主要受几个因素的控制
- 使用GQM模型进行软件质量管理时,如何获得问题和选择数据项
- 3.4软件配置管理
- 3.4.1 软件配置管理的目标
- 3.4.2 软件配置管理角色职责
- 3.4.3软件配置管理过程描述
- 3.4.4 软件配置管理的关键活动
- 3.4.5 常用的软件配置管理工具
- 3.5小结
第三章 软件质量度量和配置管理
3.1概述
3.1.1 度量
- 度量是指用数值来表达实体属性的过程。在软件质量保证中,度量是对软件质量和过程进行评价的一种有效手段。
3.1.2 软件度量
- 软件度量是对软件产品和软件过程的特征,进行定性和定量分析的一种方法。
3.1.3 软件度量的作用
- 通过软件度量增加理解;
- 通过软件度量管理软件项目,主要是计划和估算、跟踪和确认;
- 通过软件度量指导软件过程改善,主要是理解、评估和包装。 软件度量对于不同的实施对象,具有不同的效用
3.2软件质量度量
3.2.1软件质量和软件质量要素
- 软件质量是指软件产品同时满足用户需求和期望的能力。
- 软件质量要素包括功能性、可靠性、易用性、效率性、可维护性和可移植性等方面。
3.2.2影响软件质量的因素
- 人
- 过程
- 技术
3.2.3质量保证模型
- McCall模型:将软件质量定义为“软件的特性或特征对使用者需要和期望的满足程度”。该模型将软件质量分为11个方面,包括正确性、可靠性、效率、可维护性、灵活性、易用性等。这些方面被视为软件质量因素,是评估软件质量的重要指标。
- Boehm模型:将软件质量定义为“预定目标的符合程度”。该模型在质量因素上提出了6个大类共75个质量特性因素,并结合成本、进度等因素进行综合评估,是一种比较全面的软件质量评估方法。
- FURPS模型:将软件质量定义为“软件系统在使用过程中满足用户需求的能力”。该模型在功能、可用性、可靠性、性能和支持五个方面来描述软件质量,可以帮助开发者更好地理解用户需求,从而设计出更符合用户期望的软件产品。
- ISO9126:将软件质量定义为“软件产品满足规定的特性和相关的标准和程序要求的程度”。该模型将软件质量分为6个特性:功能性、可靠性、可用性、效率、可维护性和可移植性,是一种标准化的软件质量评估方法。
3.2.4 缺陷排除效率
- 缺陷排除效率是指在软件开发生命周期内,发现缺陷并将其纠正的成本和时间。
3.3软件过程度量
3.3.1 软件过程度量概念
- 软件过程度量是指对软件开发过程中的各个环节进行定量化分析的方法。
3.3.2 软件过程度量常见问题
- 度量的太多、太频繁
- 度量的太少、太迟
- 度量了不正确的事物或属性
- 度量的定义不精确
- 收集了数据却没有利用
- 错误的解释度量数据
- 自动化工具欠缺
3.3.3 基于目标的软件过程度量方法
- GQM模型是一种层次状结构,最上层,是一个目标, 对该目标细化就得到几个问题,构成问题层。 这几个问题,将关注的方面分解为几个部分
一个目标主要受几个因素的控制
- ISSUES(侧重点):度量对象的质量重点。
- VIEWPOINT(立场):信息使用者。
- OBJECT(对象):要度量对象。
- PURPOSES(目的):一般是理解、控制和改进要度量 的对象
使用GQM模型进行软件质量管理时,如何获得问题和选择数据项
- 对于特定目标陈述中的对象,应该抓住可以量化的特征。例如,在评估同行评审效率时,可以关注同行评审的缺陷检测率、评审流程的符合度等可量化的特征。
- 结合模型中的侧重点,应该对这些特征进行描述,并评价度量对象的这些特征。例如,在评估同行评审效率时,可以计算同行评审效率的偏差和趋势,以及每人发现的缺陷数量的变化等。
- 在选择数据项时,应该尽可能利用现有数据,但也要考虑数据的有效性和稳定性。对于成熟、稳定的度量对象,应该多应用客观度量,而对于不成熟、不稳定的对象,则可以结合主观判断来获得数据。
- 在使用GQM模型进行软件质量管理时,应该意识到这是一个渐进的过程,所选择的度量项不仅可以评价度量的对象,也反映了模型本身的可靠性和质量。
3.4软件配置管理
3.4.1 软件配置管理的目标
- 软件配置管理的目标是为了确保软件产品的正确性、完整性和可追溯性。
3.4.2 软件配置管理角色职责
- 项目经理(Project Manager,PM)
- 配置控制委员会(Configuration Control Board,CCB)
- 配置管理员(Configuration Management Officer,CMO)
- 系统集成员(System Integration Officer,SIO)
- 开发人员(Developer,DEV)
3.4.3软件配置管理过程描述
- 在项目计划阶段,首先CCB根据项目的开发计划确定各个里程碑和开发策略。然后,CMO根据CCB的规划,制定详细的配置管理计划,并提交给CCB审核。如果通过审核,CCB会将配置管理计划交给项目经理进行批准,并发布实施。
- 在项目开发维护阶段,软件配置管理工作主要由CMO完成。具体地说,SIO和DEV会执行软件配置管理策略,而CMO则负责管理和维护整个过程。在这个阶段,变更流程起着重要的作用,可以帮助团队及时、有效地处理变更请求,确保软件配置的正确性和一致性。
3.4.4 软件配置管理的关键活动
- 软件配置管理的关键活动包括配置项识别、配置项控制、变更控制、版本管理和审核等环节。
3.4.5 常用的软件配置管理工具
- 第一级别是入门级的工具,主要用于简单的版本控制,例如Concurrent Version System (CVS)和Visual Source Safe(VSS)等。这些工具的功能相对简单,适合小型项目或者个人使用。
- 第二级别是项目级配置管理工具,适合管理中小型的项目,例如PVCS和MKS等。这些工具可以提供更为复杂的配置管理功能,如需求管理、缺陷管理、任务管理等,并且支持协同开发和团队合作。
- 第三级别是企业级配置管理工具,具有强大的过程管理功能。例如CCC Harvest和ClearCase等,它们能够处理大规模、复杂的软件开发项目,提供完整的项目生命周期管理,包括需求管理、版本管理、构建管理、测试管理和发布管理等各个方面。
3.5小结
- 测量使得管理者和开发者能够改善软件过程;辅 助软件项目的计划、跟踪及控制;评估产生的产 品(软件)的质量。
- 过程度量使得一个组织能够从战略级洞悉一个软件过程的功效。
- 软件配置管理覆盖了整个软件的开发过程,因此是改进我们的软件过程、提高过程能力成熟度的 理想的切入点
上一篇: 软件质量管理的困境与对策
下一篇: 说明 - 软件质量管理
推荐阅读
-
35 岁实现财务*,腾讯程序员手握2300万提前退休?-1000万房产、1000万腾讯股票、加上300万的现金,一共2300万的财产。有网友算了一笔账,假设1000万的房产用于自住,剩下1300万资产按照平均税后20-50万不等进行计算,大约花上26-60年左右的时间才能赚到这笔钱。也就是说,普通人可能奋斗一辈子,才能赚到这笔钱。在很多人还在为中年危机而惶惶不可终日的时候,有的人的35岁,就已经安全着陆,试问哪个打工人不羡慕?但问题是有这样财富积累必然有像样的实力做靠山。没有人可以不劳而获。 看到这里,肯定有人说,那么对于普通人来说,卷可能真就成了唯一的出路。但是卷也有轻松的卷,“偷懒”的卷法,对于程序员而言,刨除掉一时无法改掉的开会传统占用的大部分时间,如何把有限的时间和精力放在真正重要的架构设计、需求设计上,而不是重复的造*,编码、改bug、手动测试。因此在科技改变生活的今天,学会使用AI工具成为程序员们的必备技能。 以全栈式全自动的软件开发工具飞算SoFlu软件机器人为例,作为全球首款面向微服务架构设计和最佳实践的软件机器人,SoFlu软件机器人改变了原来手工编码的作业模式,通过可视化拖拽方式以及参数配置就能实现等同于编写复杂代码的业务逻辑,在设计业务逻辑时就完成了微服务应用开发,做到“业务即图,图即代码”,实现“软件开发,十倍提效”。 而作为飞算SoFlu软件机器人的一个重要组成部分,FuncGPT(慧函数)支持所有类型函数创建。通过自然语言描述Java函数需求,实时生成高质量、高可读性的Java函数代码。生成代码可直接复制到IDEA,或一键导入Java全自动开发工具函数库。 FuncGPT(慧函数)具有五大核心能力: ● 自然语言:通过自然语言即可生成函数,降低软件开发门槛。 ● 秒级函数开发:全自动秒级开发函数,秒级完成,效率千倍提升。 ● 一站式函数开发应用:函数生成即可直接应用,效率、安全有保障。 ● 质量可靠:生成的函数代码符合业界规范、具备良好的可读性,符合最优解。 ● 灵活生成:可以根据开发人员的具体需求生成并支持调整和修改。 以“将文件流转换为File对象”这个需求为例,以下是FuncGPT(慧函数)秒级生成的代码: / 类名:FileConverter // 函数名:convertStreamToFile // 函数功能:将文件流转换为File对象 // POM依赖包:无 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; public class FileConverter { /** * 将文件流转换为File对象 * @param inputStream 文件流 * @param filePath 文件路径 * @param fileName 文件名 * @return 转换后的File对象 * @throws IOException 如果发生I/O异常 */ public static File convertStreamToFile(InputStream inputStream, String filePath, String fileName) throws IOException { File file = new File(filePath + File.separator + fileName); // 创建File对象 try (FileOutputStream outputStream = new FileOutputStream(file)) { // 创建文件输出流 byte buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { // 从文件流读取数据并写入文件 outputStream.write(buffer, 0, bytesRead); } } return file; // 返回转换后的File对象 } } // 函数示例 // 将文件流转换为File对象示例 // 入参:inputStream,文件流 // 入参:filePath,文件路径 // 入参:fileName,文件名 // 出参:file,转换后的File对象 // 调用示例: // InputStream inputStream = new FileInputStream("example.txt"); // String filePath = "C:\\Users\\User\\Documents"; // String fileName = "example.txt"; // File file = FileConverter.convertStreamToFile(inputStream, filePath, fileName); // System.out.println(file.getAbsolutePath); // 输出结果:例如,将文件流转换为File对象后,文件的绝对路径为:C:\Users\User\Documents\example.txt // 则输出结果为:C:\Users\User\Documents\example.txt 通过分析,不难发现以上代码:
-
软件质量目标设定和指导的 4 个步骤
-
软件质量保证和质量控制
-
软件质量工程的标准和模型
-
如何促进 QC 小组软件工程质量管理的效率和质量提升
-
[软件质量和软件测试 软件质量度量和配置管理]
-
如何评估软件测试中的质量风险?记住以下 5 个核心要点
-
软件质量:软件质量:表征、控制和改进-2。
-
软件测试基础复习(二十)--边界值分析和等价划分(附示例
-
软件质量保证的常用测试方法 - 界值测试、等价类测试、路径测试