多语言展示
当前在线:1417今日阅读:86今日分享:14

测试人眼中的系统架构

什么是系统架构  软件系统架构就是组成系统的主要重要模块、过程、数据的管理和分配、用户界面的种类 和风格,以及系统运行平台等。其中包括它们的结构和彼此间的准确关系,他们可被扩展和修改的方式,他们依赖于某种技术,是怎样得到系统性能和灵活性的,又是如何确定系统实施或修改计划的。通俗的说法就是 系统内部、外部如何组织和关联的。
工具/原料
1

测试人员如何了解系统架构

2

通过开发和架构师提供的各种维度的视图,进行了解系统的架构

3

a)、逻辑视图。它提供了系统开发中对象间或实体间相互关系的静态快照。这种视图实际上可能有两个或更多的表现层。一个概念模型,另一个是数据库模式中模型的实现。往往现在数据库架构师使用PowerDesigner描述实体的逻辑关系,所以需要我们测试工程师学会查看数据库实体描述,从而了解系统中的数据库设计,例如关键字,索引、表实体之间的关系等。

4

b).过程视图。过程视图描述设计的并发性和同步性因素。我们了解过程视图,从而会了解系统中各个模块之间的时间、空间关系。原来的结构化编程中经常用流程图来表示,而现在面向对象的编程经常用一些建模工具描述对象实体。

5

c).物理视图。物理视图描述软件到硬件的映射,其中包括实现高可用性、可靠性、容错性和性能等目标的处理部件的分布情况。常用Rose部署图来描述物理视图,也可以使用Visio等绘图工具绘制系统架构图来描述。

方法/步骤
1

具体架构解析下面已Weblogic为例,说明常用的服务端的设计(我们自己实现的大部分和这个原理应该是类似的)。

2

ServerSocket监听accept到一个请求以后就会生成一个socket,然后我们会将这个socket封装成一个对weblogic内部子系统的请求,抛到后面一个执行线程池里,然后根据具体的请求会调用用户自己的servlet等。这个途径上有几个地方可能有问题,一个是对于非常大量的并发连接的话,在监听层次上,由于ServerSocket是同步接受请求的,如果在一个socket还没accept结束时,有新的请求进来,它会将新的请求放到一个queue里边,这个queue的长度由accept backlog来确定。如果这个queue满了,新的请求将不能进来,而被直接reject掉。这是可能就需要将accept backlog调大一些。请求被accept以后,就需要通过我们的reader线程来将其数据读出来,并封装成内部的一个ExecuteRequest。

3

其实oracle的共享连接方式的原理和这个也差不多。在我们项目中,对系统架构设计理解是我们经常会考虑下面的问题:系统是否采用了异步的处理方式增加处理能力和扩展性?系统采用的错误处理机制是什么样子的?系统都在什么层面设计了缓存?系统如何进行多节点的分布和调度,如何进行水平扩展?等等。

4

了解了系统的架构之后,对于测试来说,就应该做相应的准备工作。针对特定的结构采取相应的测试设计。例如,对于J2EE架构,则要考虑如何集成测试,采用何种集成策略。对于性能测试,考虑哪些测试。例如研发采用Weblogic作为应用服务器,则我们要考虑该服务器哪些配置参考会影响系统的性能。物理架构中具有中间件服务器,则我们对中间件服务器如何测试。

注意事项

系统架构

推荐信息