1. 软件质量模型
- 质量定义:一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。质量就是实体基于这些特性满足需要的程度
- 质量定义包含的要素:实体+特性集合+需求
- 软件质量定义:软件与明确的或隐含定义的需求相一致的程度
- 影响软件质量的要素:流程、技术、组织
2. 软件质量活动
- CMM能力成熟度模型:Capacity Maturity Model,精髓是过程决定质量
- CMM过程能力等级:
(1)初始级(不可控)
(2)可重复级(可以重复以前的过程)
(3)已定义级(标准化)
(4)已管理级(定量)
(5)优化级(改进) - 软件质量活动:软件质量保证、度量和测试
- SQA软件质量保证与测试的关系
(1)SQA从流程方面保证软件质量
(2)测试从技术方面保证软件质量
(3)只进行SQA活动或只进行测试活动不一定产生好的软件质量 - SQA工作范围
(1)保证制度体系
(2)使用过程改进
(3)指导项目实施
(4)增加透明度
(5)评审项目活动
(6)审核工作产品
(7)协助解决问题
(8)提供决策参考
(9)进行缺陷预防
(10)实现质量目标 - 度量的概念:对事物属性量化表示
- 软件度量:对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程
- 度量目的:
(1)提高软件生产率,缩短产品研发周期,降低研发成本和维护成本
(2)提高软件产品质量,提高用户满意度
(3)为组织持续改进提供量化的指标和反馈 - 度量的作用:理解、预测、评估、改进
- 度量的过程
(1)识别目标
(2)根据度量目标,定义度量过程
(3)数据收集
(4)数据分析与反馈
(5)过程改进
3. 测试的复杂性和经济性
- 测试的复杂性
设计测试用例是一项细致并且需要具备高度技巧(策略)的工作,稍有不慎就会顾此失彼,发生不应有的疏漏。
(1) 完全测试是不现实的
(2) 软件测试是有风险的
(3) 杀虫剂现象
(4) 缺陷的不确定性
- 什么是黑盒测试?
把被测试程序看成一个打不开的黑盒,测试人员在不考虑程序内部结构和内部特性的情况下,只根据需求规格说明书,设计测试用例,检查程序的功能是否符合规范说明的规定正确的执行 - 黑盒测试复杂性:黑盒测试要想查出软件中的所有缺陷,只能采用穷举输入测试,有如下问题
(1)所需要输入量太大
(2)测试的输出结果太多
(3)软件实现的途径太多 - 什么是白盒测试?
白盒测试方法将被测对象看做一个打开的盒子,允许人们检查其的内部结构。测试人员根据程序内部的结构特性,设计和选择测试用例,检测程序的每条路径是否都按照预定的要求正确地执行 - 白盒测试的复杂性
(1)白盒穷举路径测试看起来它同穷举输入测试一样是不现实的。即使程序中每条路径都测试过了,仍不能保证程序没有故障
(2)穷举路径测试不能保证程序实现符合规格说明的要求。例如,如果要求编写升序排序程序,结果程序被错误地编写成按降序程序。这时,穷举路径测试是毫无用处的
(3)穷举路径测试不可能查出程序中因遗漏路径而出现的错误
(4)穷举路径测试可能发现不了有关数据的故障 - 为了降低测试成本,选择测试用例时应注意遵守测试的经济性原则
(1)根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级;
(2)认真研究测试策略,以便能开发出尽可能少的测试用例,发现尽可能多的软件故障 - 软件测试的经济性有两方面体现:
(1)体现在测试工作在整个项目开发过程中的重要地位;
(2)体现在应该按照什么样的原则进行测试,以实现测试成本与测试效果的统一。 - 影响测试费用的主要因素有:
(1) 软件面向的目标用户
(2) 可能出现的用户数量
(3) 潜在缺陷造成的影响
(4) 开发机构的业务能力