分布式系统测试的难点分析

发表于:2010-10-20 11:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:夏日冰凌    来源:51Testing软件测试博客

  分布式系统具有软硬件平台分布性、高稳定性、高可用性、高可扩展性、高可管理性、高并发性及数据一致性等多种特性。正是由于这些重要的特性,使得分布式系统的测试过程变得相对复杂和困难。本文主要从分布式系统测试的四个重要方面出发,探讨分布式系统测试过程中存在的一些难点问题并进行适当的分析。

  分布式系统测试环境

  一般来说,分布式系统是由一组服务器或者网络设备组成(如图1)。我们在部署测试环境的时候,所涉及的系统架构也会是比较复杂的,有以下几个方面:

  ● 网络架构。在图1中,我们应该如何在本地测试实验室环境中模拟分别位于北京和纽约的两个数据中心呢?由于地理原因,北京和纽约之间网络的RTT(Round Trip Time)至少不会低于某个值。所以,在正式进行测试之前,我们需要构建出测试所需要的网络环境,模拟出这样的固定网络延时。

  ● 硬件要求。例如,我们曾经测试过一个分布式的文件系统,数据服务器要求运行在裸盘设备上(数据的存储格式、寻址方式自定义以提高查找速度),所以,在安装操作系统时需要特别考虑这样的需求。同时,在测试前,我们需要按照系统设计的要求采购硬件设备。例如,硬盘的规格(SATA硬盘还是SAS硬盘)、内存的规格等。

  ● 配置复杂。分布式系统涉及的软硬件平台较多,整个系统中需要设置的参数项非常多,系统配置过程会相应地变得复杂、困难和易错。例如,在图1中,我们需要配置的系统配置文件至少有十多个。

图1  一个典型的分布式系统

  如果条件允许的话,分布式系统的测试环境应该由测试工程师自己来搭建。系统管理员、网络管理员等都没有办法完全代替测试工程师来进行这些工作,因为他们并不清楚在实际的测试过程中,测试工程师对软硬件环境的具体需求是什么,尤其是不同的测试用例对于环境的要求可能是不一样的。

  分布式系统功能测试

  在测试执行过程中,对测试结果的分析是一个需要进行深入思考的重点问题。分布式系统测试的重点在于对后端服务器集群的测试,而判定系统中是否存在Bug则是我们需要解决的重要问题。那么应该如何确定是否存在Bug呢?

  对于测试结果的分析,我们通常观察下面几种情况。

  ● 观察前端应用的返回结果。这里需要分两种情况来考虑:第一,按照前端应用业务功能点及流程进行操作,观察返回结果是否符合业务方的需求预期;第二,操作后端的服务器(通常是重启、宕机、断网等操作),观察前端应用的返回结果是否符合系统的设计需求。

  ● 分析服务器日志。在功能测试过程中,当我们在启动服务器的时候,需要将日志级别定义为Debug级别(最低级别)。这样做的主要目的是为了能便于测试工程师来分析日志和定位问题。为了能更好地定位问题,常常需要在服务器程序代码中进行日志打桩,把程序中的一些重要数据通过日志的方式展现出来。通常情况下,我们需要对日志的格式进行约定,在日志行中增加一些关键字来进行分类,这将便于测试工程师进行日志分析,也有利于开展分布式系统的自动化测试。另外,值得注意的是,我们尽可能地将打桩代码放在Debug代码中,避免影响系统代码,引入新问题。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • wy.apple
    2011-1-20 13:42:08

    很受启发!谢谢

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号