【软件质量】软件质量分析总结报告

news2024/9/25 19:22:05

        软件质量-----“软件与明确地和隐含地定义的需求相一致的程度”


一、质量的概念

Ⅰ、传统的质量概念:产品性能是否符合技术规范 

Ⅱ、质量是一组固有特性满足要求的程度

Ⅲ、适用性质量

Ⅳ、质量不仅指产品质量,也指过程和体系的质量

二、软件质量

Ⅰ、产品质量

Ⅱ、使用质量

三、质量的角度

Ⅰ、企业角度

Ⅱ、客户角度

四、软件质量管理的开展

五、质量管理的三套体系 

Ⅰ、建立预防体系

Ⅱ、建立有效检查体系

Ⅲ、建立快速抢救体系

六、从测试角度开展软件质量管理工作

Ⅰ、质量控制

Ⅱ、质量目标

Ⅲ、同行评审

Ⅳ、漏测预防

Ⅴ、发散测试


一、质量的概念

        符合性--------->适用性

Ⅰ、传统的质量概念:产品性能是否符合技术规范 

  • 质量特性处于规范值得容差范围内,合格产品或者质量高得产品。
  • 超出融创范围,不合格产品或次品。

Ⅱ、质量是一组固有特性满足要求的程度

  • 广义的质量概念,不仅要让客户满意,还要让客户愉悦,也就是,想在客户的面前,超出客户的期望。

Ⅲ、适用性质量

  • 让客户满意,不仅满足标准、规范的要去,而且满足客户的其他要求,包含隐含要求。

Ⅳ、质量不仅指产品质量,也指过程和体系的质量

  • 广义质量指产品的质量以及开发这种产品的过程、组织和质量体系的质量。

二、软件质量

        按照"ISO/IEC 25010:2011软件质量模型"的标准,分为产品质量和使用质量两个方面。

        从产品质量和使用质量两个方面,分为八大特性。

Ⅰ、产品质量

        产品质量是指在特定的使用条件下,产品满足明示的和隐含的需求所明确具备能力的全部固有特性(内在特性),体现了产品满足产品要求的程度(外部表现),是产品的质量属性,包含功能适用性、效率、兼容性、易用性、可靠性、安全性、可维护性和可移植性。

  1. 功能适应性(functional suitability):软件所实现的功能达到其设计规范和满足用户需求的程度,强调正确性、完备性、适合性等。
  2. 效率(efficiency):在指定条件下,软件对操作所表现出的时间特性(如响应速度)以及实现某种功能有效利用计算机资源(包括内存大小、CPU占用时间等)的程度,局部资源占用高通常是性能瓶颈存在;系统可承受的并发用户数、连接数量等,需要考虑系统的可伸缩性。
  3. 兼容性(compatibility),涉及共存和互操作性,共存要求软件能给与系统平台、子系统、第三方软件等兼容,同时针对国际化和本地化进行了合适的处理。 互操作性要求系统功能之间的有效对接,涉及API和文件格式等。
  4. 易用性(usability):对于一个软件,用户学习、操作、准备输入和理解输出所作努力的程度,如安装简单方便、容易使用、界面友好,并能适用于不同特点的用户,包括对残疾人、有缺陷的人能提供产品使用的有效途径或手段(即可达性)。
  5. 可靠性(reliability):在规定的时间和条件下,软件所能维持其正常的功能操作、性能水平的程度/概率,如成熟性越高,可靠性就越高;用MTTF (mean time to failure,平均失效前时间) 或MTBF(mean time Between failures,平均故障间隔时间)来衡量可靠性。
  6. 安全性(security),要求其数据传输和存储等方面能确保其安全,包括对用户身份的认证、对数据进行加密和完整性校验,所有关键性的操作都有记录(log),能够审查不同用户角色所做的操作。它涉及保密性、完整性、抗抵赖性、可核查性、真实性。
  7. 可维护性(maintainability):当一个软件投入运行应用后,需求发生变化、环境改变或软件发生错误时,进行相应修改所做努力的程度。它涉及模块化、复用性、易分析性、易修改性、易测试性等
  8. 可移植性(portability)软件从一个计算机系统或环境移植到另一个系统或环境的容易程度,或者是一个系统和外部条件共同工作的容易程度。它涉及适应性、易安装性、易替换性。 

Ⅱ、使用质量

        在使用质量中,不仅包含基本的功能和非功能特性,如功能(有效、有用)、效率(性能)、安全性等,还要求用户在使用软件产品过程中获得愉悦,对产品信任,产品也不应该给用户带来经济、健康和环境等风险,并能处理好业务的上下文关系,覆盖完整的业务领域。

三、质量的角度

Ⅰ、企业角度

  • 质量一方面反映企业组织的过程能力,如:过程/过程规范的符合度
  • 质量另一方面反映企业最终产品/服务的交付质量

Ⅱ、客户角度

  • 质量就是使客户满意
  • 质量就是适应性
  • 质量就是符合客户特定的要求

四、软件质量管理的开展

  1. 软件质量管理需要解决制定规则,执行规则,监督效果的问题;监督检查出来的问题要进行持续改进。
  2. 规则的制定需要考虑组织、流程、技术和最佳实践是个层面。
  3. 需要覆盖软件研发的生命周期。

五、质量管理的三套体系 

Ⅰ、建立预防体系

  • 专家培训,不断提高大家的技术水平、管理水平;
  • 流程化,不断提高规范化水平,把经验和教训固化在流程中。大家如果按照流程来做,软件质量不会差,但是如果不按流程来做,那软件质量不确定,有可能很差,也有可能很好。他依赖于人。流程化的目的就是希望产品质量不要依赖于人,而是要依赖于流程、制度、规范。这样公司的产品质量就比较稳定,即使人员变更也会比较稳定。这就是流程化的目的。
  • 复用化。处理相同的事最好尽量复用现有代码,或者把公共功能做成模块,便于大家复用。这样就可以预防问题的发生。

Ⅱ、建立有效检查体系

  • 技术评审。请专家对技术方案、思路进行评审,在编码之前找出可能的问题。质量管理大师戴明博士说过:质量是设计出来的。可见编码之前的设计方案是非常重要。设计时就埋下的缺陷隐患在后期是很难解决的。设计不好的软件就像体质不好的人,后期再多的调理也收效甚微。
  • 测试。测试是查漏补缺的重要手段。这里有各种测试方法,例如静态测试、动态测试、白盒测试、黑盒测试、单元测试、模块测试、系统测试、回归测试、功能测试、性能测试、易用性测试手工测试、自动测试。但是我觉得最重要的是要使所有的测试方法形成一套有效的测试系统。
  • 过程检查。软件开发过程中有一些大家公认的过程或规范能够避免产生一些问题,那这些过程和规范就应该被检查,保证软件开发过程与规范被大家遵守。这主要是QA的工作。
  • 代码评审。评审工作主要看代码是否与当初的设计方案一致。这样我们就能最大限制减少问题的产生。

Ⅲ、建立快速抢救体系

在软件产品发布之后,客户可能会发现问题。因此一定要尽早回应、解决,尽量减少对客户的影响,也有利于维护自己产品的声誉。

六、从测试角度开展软件质量管理工作

Ⅰ、质量控制

  软件质量控制对开发过程中的软件产品的质量特性进行连续的收集和反馈,通过质量管理和配置管理等机制,使软件开发过程向着既定的质量目标发展。质量控制是质量管理的的路标和动力,质量管理是质量控制的执行机制。

Ⅱ、质量目标

  为了达到质量控制,测试团队不但需要明确软件的功能,还要明确软件应达到什么样的质量标准,即制定软件的质量目标。为了达到这些目标,在开发过程的各个阶段进行检查和评价。在质量评价时,需要有对质量进行度量的准则和方法,但更重要的是,需要在软件生存期中如何使用这些准则和方法的质量保证步骤及提高该项作业生产率的工具。

Ⅲ、同行评审

  在软件开发过程中邀请同行对工作产品进行审查,以图尽早查找出工作产品缺陷,进行质量控制的一种质量活动。需要前期准备、计划,安排好时间进度表,而且越早开展对项目越有价值。

Ⅳ、漏测预防

  漏测是指软件产品的缺陷在某一阶段未被发现而遗漏到了后续阶段、经效果评估后,将有效的预防措施纳入到流程或相关预防平台中,制定改进措施和跟进实施。

Ⅴ、发散测试

  发散测试,顾名思义就是不以某个标准或者框框作为约束的一种测试,发散测试准确来说应该叫具备发散思维的探索性测试。为了提高测试执行覆盖率,在严格按照用例测试执行后,通常需要进行发散测试,这里包括自由测试和交叉测试。


        保证软件质量,是一个贯穿整个软件生存周期的重要问题。重视软件质量管理,规范软件质量管理体系,对整个软件项目管理起到非常重用的促进作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

教你如何用一行Python代码实现GUI图形界面

文章目录一、选择文件夹二、选择文件三、选择日期四、输入文本五、弹窗无按钮六、弹窗无标题七、弹窗只有OK按钮八、弹窗只有Error按钮(红色)九、显示通知窗口十、弹窗选择十一、自定义弹窗实战一、选择文件夹 首先导入PySimpleGUI库,并且用缩写sg来表示。 import…

Kubernetes 笔记(02)— 基本架构、工作机制简述、Master 组件、Node 组件

1. Kubernetes 的基本架构 Kubernetes 采用了现今流行的“控制面 / 数据面”(Control Plane / Data Plane)架构,集群里的计算机被称为“节点”(Node),可以是实机也可以是虚机,少量的节点用作控制…

【CUDA入门笔记】GPU存储结构模型(2)

GPU存储结构模型 1.CPU可以读写GPU设备中的Global Memory、Constant Memory以及Texture Memory内存储的内容;主机代码可以把数据传输到设备上,也可以从设备中读取数据; 2.GPU中的线程使用Register、Shared Memory、Local Memory、Global Me…

python网络程序设计,TCP协议客户端服务端智能聊天设计

计算机网络基础知识 网络体系结构,分层设计的好处 网络协议三要素:语法、语义、时序 常见应用层协议:ftp、http、smtp、pop3、telnet…… 传输层主要概念:TCP、UDP、端口号 IP地址 MAC地址 计算机网络基础知识 IP地址 1.IP地址 …

内核RCU的一次实践——实战中加深了理解

遍历内核链表是个常规操作,遍历链表过程可能会向链表增加新成员或者从链表剔除老成员,因此遍历链表时一般需要spin lock加锁保护。如果向链表增加新成员或者从链表剔除老成员不经常出现,大部分只是遍历查询链表中成员,此时链表遍…

Spring Cloud:eureka注册中心

在传统的单体应用中,所有的业务都集中在一个服务器中,当浏览器发起请求时,通过前端请求调用后端接口,后端接口调用相应的业务并在前端进行响应,整个的调用就是从请求到响应的一条龙服务。所以不存在服务之间的中转&…

jetson nano GPIO引脚控制舵机

文章目录一.舵机介绍二.舵机工作原理180度舵机360度舵机三.利用jetson nano GPIO控制舵机1.jetson nano与舵机接2.c编写程序输出脉冲(Qt做界面)一.舵机介绍 舵机,是指在自动驾驶仪中操纵飞机舵面(操纵面)转动的一种执行部件。分有&#xff1a…

代码随想录算法训练营第十三天(栈与队列)| 239. 滑动窗口最大值,347.前 K 个高频元素

代码随想录算法训练营第十三天(栈与队列)| 239. 滑动窗口最大值,347.前 K 个高频元素 239. 滑动窗口最大值 之前讲的都是栈的应用,这次该是队列的应用了。 本题算比较有难度的,需要自己去构造单调队列,建…

std::map使用方式以及注意事项(关于相同key的问题)

std::map的使用在C开发中也是经常会用到的一些东西,这里进行一些简单的使用记录,包括如何插入、删除以及修改等。 1、std::map插入: map的插入使用的是insert的方式,一个map包含了key与value两个值。首先需要对两个值进行赋值&a…

Spring Security认证授权练手小项目 腾讯视频VIP权限管理功能

腾讯视频VIP权限管理1、项目功能视频演示2、需求与设计1、需求2、功能概要3、接口设计3、项目源码结构4、项目源码下载5、项目部署1、部署架构2、数据库环境准备3、redis环境准备4、Spring Boot服务准备5、nginx负载均衡准备6、nginx静态资源服务器准备6、项目介绍1、技术架构2…

人工智能-集成学习

1、 集成学习算法介绍 1.1 什么是集成学习 集成学习通过建立几个模型来解决单一预测问题。工作原理:生成多个分类器/模型,各自独立地学习和做出预测。这些预测再结合成组合预测,因此由于任何一个单分类的预测。 1.2 机器学习的两个核心任…

优化RPC网络通信

文章目录什么是RPC通信RPCRPC框架SOARPC通信得重要性具体优化措施1.扩展其他RPC框架.2.选择合适的通信协议3.使用单一长连接4.优化Socket通信.5.高性能的序列化协议6.量身定做报文格式什么是RPC通信 RPC RPC(Remote Process Call),即远程服…

算法训练 —— 链表(2)

目录 1. LeetCode24. 两两交换链表中的结点 2. LeetCode19. 删除链表的倒数第N个节点 3. LeetCode160.相交链表 4. LeetCode141.环形链表 5. LeetCode142.环形链表II 6. LeetCode138.复制带随机指针的链表 1. LeetCode24. 两两交换链表中的结点 两两交换链表中的结点 …

机器学习时间序列特征处理与构造,这篇我建议你收藏

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。 那特征工程是什么? 特征工程是利用数据领域的相关…

vue3 antd项目实战——Form表单使用【v-model双向绑定数据,form表单嵌套input输入框、Radio单选框】

vue3 ant design vue项目实战——单选框(Radio)的使用以及Form表单的双向绑定知识调用(form表单的源代码附在文章最后)场景复现实现需求form表单整体架构的搭建input输入框文本域的嵌套单选组合Radio的嵌套button按钮组合的嵌套fo…

小米手机不为人知的秘密—后台静默安装任何应用

导读你是否拥有一台小米,HTC,三星或者是一加的 Android 手机呢?如果回答是肯定的,那么你应该意识到,几乎所有的智能手机厂商提供的定制 ROM,如 CyanogenMod、Paranoid Android、 MIUI 或者一些其它的 ROM 都…

再谈指针(12)

目录 1、字符指针 2、指针数组 3、数组指针 1、定义 2、&数组名VS数组名 3、数组指针的使用 1、二维数组的数组名 4、数组参数、指针参数 1、一维数组传参 2、二维数组传参 3、一级指针传参 4、二级指针传参 5、函数指针 6、函数指针数组 7、指向函数指针数…

SpringCloud之Sleuth全链路日志跟踪

文章目录1 Sleuth链路跟踪1.1 分布式系统面临的问题1.2 Sleuth是什么1.3 Zipkin是什么1.4 链路监控相关术语1.5 实战练习1.5.1 pom.xml1.5.2 添加yml配置1.5.3 添加控制器1.5.4 测试访问1.6 Zipkin1.6.1 下载与启动1.6.2 搭建链路监控步骤1.6.2.1 搭建8990提供者1.6.2.2 搭建89…

08 `.o`中的汇编信息 hopper disassembler 调试 HelloWorld

前言 上周[2020.05.23]想要 直接使用 fastdebug 版本的 jdk 来进行调试, 可惜失败了 原来是 缺少 可执行文件关联的, object file, 里面记录了 关联的源码的一些信息 看来还是 免不了, 需要 手动 编译 open jdk, 哎 本文主要是两个东西 : 1. 查看 object file 中的汇编信…

CSS权威指南(一)CSS概述

文章目录1.元素2.引入样式表3.样式表4.媒体查询5.特性查询1.元素 (1)置换元素和非置换元素 置换元素,指用来置换元素内容的部分不由文档内容直接表示。比如img标签。非置换元素,元素的内容是由用户代理在元素自身生成的框中显示…