如何对分布式系统进行测试

来源:互联网 发布:普通收据打印软件 编辑:程序博客网 时间:2024/06/10 01:34

如何对分布式系统进行测试

>> 问题摘要

目前分布式系统在产品上的应用比较多,相对而言分布式系统运行环境比较复杂。分布式的一些特点,例如,网络化、开放性、动态性、实时性,使得测试难度加大很多。当前,分布式系统测试的方法比较零散,其中有一些测试方法还有待提高。

 

>> 问题背景

有以下三个方面研究:异步测试工具、时序控制方法、数据正确性和完整性验证。异步测试工具,在分布式中异步通信较常见,对这块的测试希望更加方便,向自动化方式发展。分布式的数据库存储量是惊人的,对其中数据的正确性完整性的测试尤其重要,同时因为数据量很大,希望能够在处理速度上进行优化,尽可能在短时间内完成处理。

分布式测试环境的初始状态是确定的、已知的,但随着系统的运行,各种动态实体在环境中变化,同时对环境产生影响,使得环境也发生某些变化,这种动态变化带来了不确定性。分布式测试系统必须具有处理这种不确定性的能力。

 

>> 当前的研究和技术现状

使用系统级别测试,组建大规模的测试集群模拟线上环境,可以在模拟环境中进行压力负载、性能仿真和功能业务联调等方面的测试,以发现在小规模环境中无法发现的问题。

在环境异常场景,利用断链路、容错机制重连机制模拟丢包异常情况;使用模拟和录制回放等手段重现重包问题。利用异步测试框架模拟异步时序混乱情况。对于资源类异常、磁盘读写失败、磁盘满、内存分配失败、带宽资源不足,利用相关的工具可以进行模拟实验。同

时采取注入的方式来模拟更多异常。

 

>> 技术关键点

1. 预知异常情况:通常会出现预料之外的异常情况,需要能够预知系统运行情况,以便应对突发情况。

2. 大型环境的模拟:有些问题只会在复杂的环境中触发,但构造维护大型环境的成本太高,需要小成本的方法。

3. 非确定性:如何在不影响系统正常执行的前提下,通过技术手段避免由于系统内部并发或并行执行导致的执行非确定性问题。

 

>> 实现后的价值

硬件和软件资源有限的情况下,提高分布式系统的测试效率以及质量,提高分布式系统测试的深入度,以期发现更多深层次的问题,更早的,更容易的暴露出分布式的问题。

原创粉丝点击