• ACCP软件工程师
  • BENET网络工程师
  • JAVA+大数据
  • Python工程师
  • 云计算工程师
  • Web前端工程师
  • 软件测试工程师

分布式系统设计和测试总结

2012年08月28日 11:25供稿中心:兆隆教育

摘要: 序言:在当今,有一门技术很是热门,那就是分布式技术,也许很多人对分布式技术很疑惑,但是实际上,你总是与分布式技术打交道,我们若想更好的把握住以后的测试机遇,那么则要让自己不断的对这些系统基础知识了解,这样才能去创新。有不对的地方请指教,谢

序言:在当今,有一门技术很是热门,那就是分布式技术,也许很多人对分布式技术很疑惑,但是实际上,你总是与分布式技术打交道,我们若想更好的把握住以后的测试机遇,那么则要让自己不断的对这些系统基础知识了解,这样才能去创新。有不对的地方请指教,谢谢啦

  一、分布式系统和编程

  1、分布式计算:将一个大型的高难度的计算拆分成若干个子进程进行计算,然后计算完毕后,回收结果。这个需要区分的是并行计算,并行计算是指并发执行,分为空间和时间的并行,空间则是我们常说的多核,而时间则是利用了流水线,错开时间。他们的共同点是解决对象上,都将大任务化为小任务,这是他们共同之处。区别在于前者的每个任务具有独立性,并且更关注的是任务间的通信。后者的任务包是一个划分,之间的联系很大。

  2、分布式操作系统:一个分布式系统是若干个计算机操作系统组成,但是对于用户而言,就像一个巨型计算机一样。

  3、分布式编程:简单而言,,其主要特征是分布和通信。即将一个大型软件系统,分割成若干个模块,然后模块之间利用规范好的接口进行通信。

  例如:我常用的是Java的分布式编程,包括:RMI、Corba以及SOAP

  RMI是java虚拟机模块之间的通信。

  Corba是通过IDL描述接口,不同编程语言模块之间可通过Cobra服务进行通信。

  SOAP是靠XML来描述接口,通过HTTP协议进行通信。

  4、分布式存储:将一个大型计算机资源可以分配到不同的存储系统上,整体可以看做一个大型存储系统。例如:现在很火的Hadoop的HDFS就提供了这么一个功能。

  所以,总之,分布式重点就在于:能够统一管理和分配资源,协调好各个分布式模块之间的通信。

  二、分布式应用

  举几个简单的例子说说分布式

  1、我们常用的web也是分布式的,浏览器和服务器之间的交互是通过http协议,而可以将各个资源分配到各个服务器,而我们常说的云计算就是这么来的。

  2、在一些C/S系统中,也利用了分布式,将计算和资源进行分配,互相之间利用接口进行通信。

  三、分布式测试和应用

  常见的测试范围

  1、模块测试;对分布式系统中的单个模块进行测试。因为分布式模块中的模块有一定独立性,所以先保证每个模块的功能。这部分可以考虑用白盒测试来实现一部分测试。

  2、接口测试;因为分布式系统之间的通信主要应用接口,所以专门针对接口进行测试。这方面可以考虑用通过自动化进行请求和相应实现一部分测试。

  3、系统测试;全面将各个模块进行部署,按照功能需求进行测试。这部分的话,可以依靠一些上层的自动化测试,例如:WEB的话可以是ui级别的自动化测试。

  4、性能压力测试;高压力和高并发下测试,各个模块之间的响应速度和接收程度等。例如:web系统的高并发测试,C/S系统的多个客户端同时请求服务器。

  5、模拟测试;即尽可能真实模拟应用环境。如果系统太过庞大,也可计算比例进行模拟。

  四、分布式自动化测试平台

  1、测试资源可以分配到各个执行端进行测试。

  2、测试结果可以统一收取集中到服务器上进行查看。

  3、可以多个服务器保存测试资源。

  4、可以监控和跟踪自动化测试过程

  总之,即测试执行资源可以进行分配、测试数据可以分配、测试结果可以分配。但是对于整个外界而言却是一个整体系统。

  总结:不同的软件系统有不同的测试方法,我们如果要对一个系统能够充分进行测试,一定要了解其运作原理、然后从原理出发,合理划分其测试类型和测试需求,根据测试类型和测试需求然后找到具体的测试方法,这样才能一步一步提高我们的测试效率。不能做其然而不知其所以然吧。

 

©陕ICP备18020405号-2 Copyright  ©  2001-2018隶属于西安兆隆计算机培训中心版权所有