Content #
测试,是一个用来证明变更前后系统的某些领域相等性的手段。每个在变更前后都能通过的测试降低了分析系统可靠性变化中的不确定性。完善的测试可以提供足够的细节信息,以帮助我们有效地预测某个系统未来的可靠度。
测试的数量直接取决于所服务系统的可靠性要求。随着代码的测试覆盖度上升,每次改动的不确定性和降低系统可靠度的可能性都降低了。足够的代码测试覆盖度可以让我们对系统做出更多的改动,而不会使系统可靠度下降到可接受水平之下。
如果我们在短时间内做了大量改动,那么预测的系统可靠性就会趋近于可接受的极限。这时,我们应该停止引入新的改动,等待监控数据再累积一段时间。累积的监控数据和测试的覆盖数据可以用来证实新的代码执行路径的可靠程度。假设该服务的客户端是随机分布的,我们可以通过监控指标的采样统计数据推断出系统行为是否发生了变化。这些统计数据指出了需要完善和调整测试的区域。