基于质量特性的测试设计
- 简介
主要用来满足用户的不同质量要求和解决产品质量特性的覆盖问题。从质量的描述中可以看出质量带有内在的主观性。对于同一个产品,不同的利益相关者对质量的理解和要求不同。因此测试人员在测试过程中,需要站在不同的利益相关者的角度对测试对象的质量进行检查和验证。- 如何获取利益相关者的不同质量要求
- 如何设计测试用例以满足客户不同的质量要求
- 如何分析和评估最终软件产品的质量
- 如何让提高客户对软件产品的满意度
- 质量模型
- McCall质量模型
主要针对系统开发人员和系统的开发过程,试图通过同时反映用户和开发人员观点的软件质量因素,在用户和开发人员之间架起一座桥梁。从某种程度上,软件开发可以完全看成是文档编写的过程,从需求规格说明到代码都是不同的文档形式。到目前为止,几乎没有好的技术能详细评估文档编写工作的质量。- 简介:为了能够更好地评估软件的质量,McCall将软件质量分解成多个质量因素,每个质量因素能够分析部分质量特征。McCall质量模型通过全面且分等级的方式定义软件质量。通过将质量因素分解为面向软件的标准,然后根据其选择能够评估的度量指标,最后达到评估软件整体质量的目的。McCall质量模型中的质量因素和标准应该在软件开发过程中不断地度量。
- 软件质量因素
主要考虑产品修改/产品迁移/产品运行三个方面- 可维护性Maintainability
在运行的系统中定位并修复一个错误所需要的工作量 - 适应性Flexibility
修改一个运行程序所需要的工作量 - 可测试性Testability
测试一个程序以保证它完成所预期的功能所需要的工作量 - 可移植性Portability
将程序从一种硬件配置和/或软件系统环境迁移到其他配置或环境上所需要的工作量 - 可重用性Reusablility
程序可以在其他应用中被使用的程度 - 互操作性Interoperability
系统和其他系统组合所需要的工作量 - 正确性Correctness
程序满足规格说明和用户目标的程度 - 可靠性Reliability
程序按照需要的进度运行的程度 - 效率Efficiency
程序执行一个功能所需要的计算资源和代码的数量 - 完整性Integrity
对未授权的用户访问软件或数据的控制程度 - 可用性Usability
用于学习,运行,准备输入和分析输出所需要的工作量
- 可维护性Maintainability
- 软件质量标准
每个软件质量因素包括多个软件质量标准,软件质量因素是面向用户的;软件质量标准是面向软件的。- 一组软件质量标准可以更好地定义该质量因素,明确该质量因素的内容
- 当一个软件质量标准影响多个软件质量因素时能够体现不同软件质量因素之间的关系
- 软件质量标准的确立有助于选择度量指标
- 软件质量度量
软件质量标准代表了最终软件产品的属性,而软件质量度量为其提供量化的数据所有的度量都针对需求分析,设计和实现三个步骤- 对比型度量
如已实现的需求占总需求的百分比 - 布尔型度量
这种度量的结果有真和假两种值,表示某些规则是否存在,如所有的缺陷报告是否被否决
- 对比型度量
- Boehm质量模型
- Dromey质量模型
- ISO/IEC 9126
- 内部质量
- 外部质量
- 使用质量
指的是软件产品使指定用户在特定的使用环境下达到满足有效性、生产率、安全性、及满意度要求的特定目标的能力,它是基于用户观点的质量。
- McCall质量模型
- 功能测试
功能性是指软件产品在指定条件下使用时,提供满足明确和隐含要求功能的能力- 适应性测试
评估和确认测试对象完成任务的合适性,即软件产品是否能够帮助用户执行期望的任务,或者是否实现了用户需要的功能。 - 准确性测试
软件产品提供具有所需精度的正确或者相符结果或者效果的能力,主要关注预期和计算的准确性 - 互操作性测试
用于验证软件产品在多种指定的目标环境(如硬件、软件、中间件和操作系统)下是否可以正常工作。 - 安全保密性测试
防止信息被未授权者非法使用是安全保密性最为关注的问题,安全保密性测试评估系统应对威胁的弱点以及试图破坏系统安全性的策略等 - 辅助性测试
在信息无障碍领域需要通过消除信息通信技术手段中的一些障碍,并通过技术的创新使该技术更加方便人们的生活
- 适应性测试
- 非功能测试
- 可靠性测试
监控软件成熟度在时间上的统计度量指标,并于既定目标相比较。例如平均失效间隔MTBF - 易用性测试
主要从用户的角度考虑软件产品被理解、学习、使用和吸引用户的能力 - 效率测试
主要关注软件产品的时间特性和资源特性,常见的有性能测试、负载测试和压力测试 - 可维护性测试
关注产品可被修改的能力,维护活动分为纠正、适应、完善和预防4类 - 可移植性测试
考察软件产品从一种环境迁移到另一种环境的能力
- 可靠性测试