软件测试与质量保证2 软件质量保证

ISO 软件质量标准结构

  • ISO9001:设计/开发、生产、安装和服务中质量保证模式;
  • ISO9002:生产和安装中的质量保证模式; 
  • ISO9003:最终检验和测试中的质量保证模式;
  • ISO9004:质量管理和质量体系要素导则。 

ISO9000-3

ISO9000-3其实是ISO质量管理和质量保证标准在 软件开发、供应和维护中的使用指南,并不作为质 量体系注册/认证时的评估准则,主要考虑软件行业 的特殊性制定。 

  •  软件开发、供应、维护中应用ISO9001的指南
  •  是指南,不是标准
  • 依然困惑:依然强调的是供应商和顾客的关系,不是 程师该如何做 

CMM思想和结构体系 

CMM即软件能力成熟度模型(Capability Maturity Model)是向软件组织提供如何增加对其开发和维护软件过程的控制能力。

软件测试与质量保证2 软件质量保证

CMM五个等级: 一级为初始级, 二级为可重复级, 三级为已定义级, 四级为已管理级, 五级为优化级。

个体软件过程PSP与团队软件过程TSP

PSP

软件测试与质量保证2 软件质量保证

TSP

软件测试与质量保证2 软件质量保证

能力成熟度模型集成 CMMI

 CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成

目前版本CMMI 1.3

连续式表现方法则通过将CMMI中过程区域分为四大类:过程管理项目管理工程以及支持。对于每个大类中的过程区域,又进一步分为基本的高级的。 

能力度等级

  • 0 不完整级 
  • 1 已执行级 
  • 2 已管理级  
  • 3 已定义级 
  • 4 量化管理级 
  • 5 最优化级

软件质量保证 SQA

软件质量保证(Software Quality Assurance)软件开发过程中四点要求:

  1. 确保SQA活动要自始至有计划的进行
  2. 审查软件产品和活动是否遵守适用的标准、规程和要求并得到客 观验证。 
  3. SQA的活动和结果要保证全员参与,沟通顺畅。 
  4. 逐级解决不符合问题

是从第三方角度独立审查软件是否遵循已制定的计划、标准 和规程,提供给开发人员和管理层产品和过程的质量信息和数据。

SQA的工作内容

重点

  • 为项目准备SQA计划:与项目开发计划一致,得到评 审确认。
  • 参与开发项目的过程定义和描述:评审项目制定的开发 过程定义,确保与组织企业的政策和标准相一致 
  • 评审项目实施中的各项软件工程活动:核实、记录、跟 踪不符合项 
  • 审计预定的软件工作产品:核实、记录、跟踪不符合项 
  • 处理不符合问题:按照SQA规程处理不符合项 
  • 形成报告:书写SQA报告,发布给相关人员和高层 

SQA的工作措施 

  • 应用好的技术方法:指导项目组使用适合的开发技术方法和 工具平台,保证高质量的开发结果 
  • 进行正式的技术评审:在项目里程碑之处,组织正式的技术 评审,严格审查软件产品 
  • 组织实施多种软件测试策略:通过测试发现大多数软件缺陷
  • 遵循软件质量标准:按照国际、国家或行业标准来制定评审 要求
  • 严格控制修改变更:减小变更带来的缺陷引入 
  • 度量:选择完善的信息数据进行收集,并使用分析手段分析 
  • 记录、保存和报告质量信息:软件质量保证收集分析的数据要提供给项目组成员或者高层管理者

SQA与软件测试的关系  

  • SQA 是管理工作,审查对象是流程、强调以预防为主 
  • 测试是技术工作、测试对象是产品、主要是以事后检查
  • SQA指导测试、监控测试 
  • 测试为SQA提供依据 

评审

评审是为了提高软件产品的质量、降低软件开发的成本, 从而逐步提高生产率,在管理和技术的合适层次上进行检查

不实际运行程序,而是通过检 查和阅读等手段来发现错误并 评估代码质量的软件测试技术。 也称为静态测试技术。

包括走查和审查和同行评审。

走查

开发组内部进行的,采用讲解、讨论和模拟运行的方式进行的 查找错误的活动。 

检查要点:逻辑错误、代码标准/规范/风格 

审查

开发组内部进行的,采用讲解、提问并使用Checklist方式进行 的查找错误的活动。一般有正式的计划、流程和结果报告。 

是一种正式的审查。以会议的形式,制定会议目标、流程和规则,结束后要编写报告。

检查要点:设计需求 

同行评审

开发组、测试组和相关人员(QA、产品经理等)联合进行的,采用 讲解、提问并使用Checklist方式进行的查找错误的活动。一般有 正式的计划、流程和结果报告。 

检查要点:需求与设计、文档的完整性和一致性 

评审类别

将软件生命周期内的评审分成三类:管理评审、技术评审、 SQA评审和审计。 

评审流程 

  1. 评审策划
  2. 评审准备 
  3. 执行评审 
  4. 评审问题记录和管理