软件是一种逻辑实体,具有抽象性,没有明显的制造过程,虽然没有磨损、老化的问题,但为了适应硬件、环境以及需求的变化而进行修改,这些修改常常会引入错误,导致软件失效率升高,软件质量降低。因此大量的软件系统其可靠性得不到保证,几乎没有不存在错误的软件系统。
本文章主要介绍如何进行软件的可靠性测试。
Quick Guide
定义
软件的可靠性:在各种异常情况下,产品的容错性和恢复能力。
测试类型
- 外界输入,引起内部故障
- 异常值输入:属于功能测试,一种使用系统不允许用户输入的数值(即异常值)作为测试输入的可靠性测试方法。
- 稳定性和压力测试:属于性能测试
- 环境因素
- 故障注入: 把系统放在有问题的环境中进行测试的一种可靠性测试法
测试环境
- 组网方式跟生产一样:不同组件之间和同一组件内部
- 各个组件不可缺少
测试场景设计
- 从用户的业务环境中,筛选出哪些故障、错误或问题
- 常用环境因素考虑
- 网络:弱网、断网
- 硬件(硬盘):硬盘占满、内存占满、机器重启
- 软件:内存泄漏、内核故障、文件丢失
- 组网方式:
- 单点故障
- 集群故障
- 影响级别
- 造成重大损失,
- 造成较大损失
- 造成较小损失
- 不造成损失
测试步骤
- 验证功能是否正常
- 注入故障
- 验证功能是否受到影响
- 恢复故障
- 验证功能是否恢复
结果和分析
通过测试结果进行分析,生成可靠性评估报告