
2.3 软件质量特性
在ISO9126中定义了衡量软件质量由6大特性、27个子特性组成,如图2-4所示。

图2-4 软件质量特性
以上特性是软件质量的核心。在实际测试活动中,测试工程师需要熟悉每个特性以及特性中的子特性,便于在测试需求的分析以及软件质量的评价中作为标准依据。
2.3.1 功能性
功能性(functionality)是指软件在指定的条件下,满足用户明确的和隐含的需求的功能的能力。功能性包含以下5个子特性。
1)适合性:软件为指定的任务和用户目标提供一组合适的功能的能力;
2)准确性:软件提供具有足够精确度的正确或符合要求的结果或效果的能力;
3)互操作性:软件与一个或更多的规定系统进行交互的能力;
4)保密安全性:软件保护信息和数据的能力;
5)功能性的依从性:软件遵循与功能性相关的标准、约定或法规及类似规定的能力。
2.3.2 可靠性
可靠性(reliability)是指软件在指定的条件下,维持规定的性能级别的能力。可靠性有“三规”:规定的环境、规定的时间、规定的性能。
可靠性指标:平均无故障时间(Mean Time To Failure,简称MTTF)、平均恢复时间(Mean Time To Restoration,简称MTTR)、平均恢复时间(Mean Time To Repair,也简称MT-TR)、平均失效间隔时间(Mean Time Between Failures,简称MTBF)。简单说MTTR值越小,说明故障修复时间越短,故障处理响应速度越快。MTBF指越大,说明故障率低,系统可靠性较高。可靠性包含以下4个子特性。
1)成熟性:软件为避免由软件中错误而导致失效的能力;
2)容错性:在软件出现故障或者违反指定接口命令的情况下,软件维护规定的性能级别的能力;
3)已恢复性:在失效发生的情况下,软件重建规定的性能级别并恢复受直接影响的数据的能力;
4)可靠性的依从性:软件遵循与可靠性相关的标准、约定或法规的能力。
2.3.3 易用性
易用性(usability)是指软件在指定的条件下,满足被理解、学习、使用和吸引用户能力。易用性包含以下5个子特性。
1)易理解性:用户理解软件是否合适以及如何能将软件用于特定的任务和使用环境的能力;
2)易学性:用户学习其应用的能力;
3)易操作性:用户操作和控制软件的能力;
4)吸引性:软件吸引用户的能力;
5)易用性的依从性:软件遵循与易用性相关的标准、约定、风格或法规的能力。
2.3.4 效率
效率(efficiency)是指软件在规定的条件下,相对于所有资源的数量,软件可提供适当性能的能力。功能性包含以下3个子特性。
1)时间特性:在规定条件下,软件执行其功能时,提供适当的响应和处理时间以及吞吐率的能力;
2)资源利用率:在规定条件下,软件执行其功能时,使用合适的资源数量和类别的能力;
3)效率的依从性:软件遵循与效率相关的标准或约定的能力。
2.3.5 可维护性
可维护性(maintainability)是指软件可被修改(包含修正、改进或软件环境、需求和功能规格的变化等)的能力。可维护性具备如下“四规”:规定的条件、规定的时间、规定工具和方法、规定的功能。可维护性包含以下5个子特性。
1)易分析性:诊断软件中的缺陷或失效原因或识别待修改部分的能力;
2)易改变性:软件中指定的修改可以被实现的能力;
3)稳定性:软件中避免由于软件修改而造成意外结果的能力;
4)易测试性:软件产品使已修改的软件能被测试的能力;
5)可维护性的依从性:软件遵循与维护性相关的标准或约定的能力。
2.3.6 可移植性
可移植性(portability)是指软件从一种环境迁移到另外一种环境的能力。可移植性包含以下5个子特性。
1)适应性:软件无须采用有别于为考虑该软件的目的而准备的活动或手段就可以适应不同的指定环境的能力;
2)易安装性:软件在指定环境中被安装的能力;
3)共存性:软件在公共环境中同与其分享公共资源的其他独立软件共存的能力;
4)易替换性:软件在同样环境下,替代另一个相同用途的指定软件产品的能力;
5)可移植性的依从性:软件产品遵循与可移植性相关的标准或约定的能力。