• 软件质量


    软件质量

    一、  质量

    质量:ISO定义质量为一个实体的所有特性,基于这些特性可以满足的明显的或隐含的需求,而质量就是这些特性满足需求的程度。

    软件质量的特性是基于软件质量模型,评价的标准是基于需求(显示需求,隐式需求,用户的实际需求)

    符合需求:符合开发者的明确定义的目标,可度量的,必须做和必须不做,内部质量,即软件启动到交付用户之间产生的所有中间产品的质量

    符合用户显示需求:客户明确说的目标,SRS,验收质量,即用户在验收时品鉴产品的质量

    符合用户的实际需求:显示需求&&隐式需求,使用质量,即用户在实际使用的过程中对产品的质量评价。

    二、 质量大师

    戴明(deming’s 14 point)戴明环

    戴明环:PDCA(plan  do check action),将出现的问题投入至戴明环中,结束后若还有问题,则将未解决的问题也投入至戴明环 直至问题全部解决。

    主要观点:引起效率低下和不良质量的原因是公司的管理系统

    朱兰:质量来源于客户的需求

    克劳斯比:‘零缺陷之父’‘世界质量先生’《质量免费》《质量再免费》《质量无泪》

    JIT,just in time ,强调一次性将事情做好,不给自己留有弥补的余地

    质量四项基本原则:

    质量就是满足要求

    工作的标准就是零缺陷

    产生质量的系统是预防

    用不符合要求的代价来衡量质量

    费根鲍姆:全面质量控制的创始人,他要求用系统或全面的方法管理质量,在质量过程中要求所有职能部门参与,不局限于生产部门。

    石川馨:《质量控制指南》为QC准备的非物质技术分析课本,总结了QC小组的七种常用工具:因果图,控制图,流程图,直方图,帕累托图,趋势图,散点图

    田口玄一

    项目铁三角:质量,时间,成本

    质量铁三角:流程,组织,技术

    三、 软件质量管理体系

    CMM   ISO  6西格玛

    ISO:国际标准组织。是普遍适用的质量管理体系

    CMM:能力成熟度模型,过程能力等级分为五级,不同能力等级的过程能力满足的KPA不同(key process area,关键过程域),总计有18个KPA,CMM级别越高,可视度越高。

    PSP:个人开发能力,注重个人技能

    TSP:团队开发能,注重团队的高效工作和产品交付能力。

    CMM:注重组织能力和高质量的产品。

    CMMI:能力成熟度模型集成

    6西格玛:数据的分散程度,6西格玛表示一百万个产品的不良产品不多于3.4个

    实施方法(七步骤法):

    找问题:找出需要改善的问题

    收集并整理现时的生产数据;

    找出原因:找出当时发生错误的原因

    计划制定解决方案

    检查效果:检查解决方案的效果

    将有效方法制度化:将解决方法融入公司的规章制度中

    检讨成效并发展新目标

    管理原则:

    注重客户;注重流程;全员参与;预防为主;事实依据决定;持续和突破性的改进;

    四、 软件质量模型

    任何一款软件必须遵循的特性,子特性的依存性:隐式需求

    以下六个特性可以分为内部质量和外部质量

    功能性:可以完成的事情

    1、适合性:提供了相应的功能(是否完成需求)

    2、准确性:正确(用户需要的,与需求对比)

    3、互操作性:产品与产品之间交互数据的能力(与其他的软件硬件的交互能力)

    4、保密安全性:允许经过授权的用户和系统能够正常的访问相应的数据和信息,禁止未授权的用户访问.......(物理意义:是否安全;信息方面:信息的保密与安全性,是否可以访问到合法的可以访问到而数据与是否会被非法的访问)【安全性测试】:注册。登录,密码设置,网络是否留痕,配置,权限,跨站点脚本攻击,伪站点请求,数据库注入,协议,防火墙等,

    5、功能性的依从性:国际/国家/行业/企业 标准规范一致性

    可靠性:产品在规定的条件下,在规定的时间内完成规定功能的能力

    可靠性的三个指标:平均正常运行时间,平均故障时间,平均无效时间间隔

     1、成熟性:防止内部错误导致软件失效的能力(软件系统本身的问题)

    2、容错性:软件出现故障,自我处理能力(收到外部攻击是是否可以容忍错误继续保持稳定)

    3、易恢复性:失效情况下的恢复能力(发生问题是恢复到正常工作的能力)

    4、可靠性的依从性

    易用性:在指定使用条件下,产品被理解、 学习、使用和吸引用户的能力【性能测试

    】吞吐量,CPU利用率等

    1、易理解性:软件的提示信息,软件的提示按钮等。(尊重标准规范)

     2、易学性:软件是否提供了学习使用手册

    3、易操作性:

    4、吸引性:软件系统吸引人的能力(标题党)

    5、易用性的依从性:

    效率性:在规定台条件下,相对于所用资源的数量,软件产品可提供适当性能的能力

    1、时间特性:平均事务响应时间,吞吐率,TPS(每秒事务数)(快慢)

    2、资源利用性:CPU 内存 磁盘 IO 网络带宽 队列 共享内存(运行某软件或模块占用的内存)

    3、效率依从性:

    软件维护性:"四规", 在规定条件下,规定的时间内,使用规定的工具或方法修复规定功能的能力(仅针对内存质量)

    1、易分析性:分析定位问题的难易程度(软件出错后是否提供详细的文档,如日志等)

    2、易改变性:软件产品使指定的修改可以被实现的能力(结构化强,高内聚,低耦合,全局变量少,软件系统出现问题后,修改对其他部分的影响)

    3、稳定性:防止意外修改导致程序失效(问题修复后,系统是否可以平稳的运行)

    4、易 测试性:使已修改软件能被确认的能力(专业,能够准确的测量)

    5、维护性的依从性

    软件可移植性:从一种环境迁移到另一种环境的能力

    1、适应性:适应不同平台

    2、易安装性:被安装的能力(安装过程简单)

    3、共存性:(同类软件在同一系统)【兼容性】

    4、易替换性(软件升级,打补丁)

    5、可移植性的依从性:

    软件度量分类:规模(软件工作产品的大小),工作量(完成各项软件工作产品和活动所用人时);进度(各项软件工作产品和活动开始饿结束时间);质量缺陷(在各项软件产品和活动中产生的缺陷数量)

    五、  规模度量 

    EXAMPLE:

  • 相关阅读:
    golang匿名变量
    golang实现九九乘法表
    bootstrap输入框从数据库读取数据
    celery 使用multiprocessing 问题记录
    django 使用jquery ajax post数据问题
    centos 7 epel地址
    python 2.6升级到2.7
    python给多个发送邮件附件,参考于《python自动化运维》
    nginx+webpy 出现 upstream timed out
    webpy + nginx + fastcgi 构建python应用
  • 原文地址:https://www.cnblogs.com/shanshanliu/p/6486565.html
Copyright © 2020-2023  润新知