一个面向应用过程监控系统的测试工具.doc
《一个面向应用过程监控系统的测试工具.doc》由会员分享,可在线阅读,更多相关《一个面向应用过程监控系统的测试工具.doc(23页珍藏版)》请在三一文库上搜索。
1、一个面向应用过程监控系统的测试工具Application process oriented testing tool to monitoring system LI Yeqing MA Xiaoxing LV Jian (State Key Laboratory for Novel Software Technology Nanjing University Nanjing 210093 China) Abstract:To facilitate the automatic testing of these systems proposed a finite state machinebase
2、d approach for the behavior modeling of both the monitoring systems and the target business systems. Based on this modeling developed a prototypical distributed testing tool and corresponding script language. The tool is then used to perform the testing of a commercial monitoring software product an
3、d the result shows that the tool is effective. This can tell us that the method can greatly reduce the cost of testing and raise the efficiency. Key words:application process monitoring; automatic testing; FSM 0 引言 随着信息技术的迅猛发展和各种计算机设备的日益普及,公司和机构内部软硬件设备构成了一个复杂的信息系统,这些设备会通过LAN 连接成一个整体,并且还可能连接到更大的网络环境,
4、如Internet。这样系统行为就变得更加复杂。当这个系统能够访问一些关键或机密信息时,规范系统的行为就变得非常重要。一个典型例子就是银行内部的信息系统。银行是重要的金融机构,其内部的信息流动背后就是资金流动,所以银行对于其信息安全性要求特别高。提高信息安全性,一方面通过法律法规约束相关人员的行为;另一方面则通过引入监控系统在系统行为层次降低风险1。为了保障企业的信息安全,除了完成日常业务的软件,还会引入保障系统,如入侵检测系统、监控系统等。虽然监控系统在目的和实现上与防火墙、入侵检测系统有很多相似之处,但是它与这些系统有一个很重要的区别:这些系统关注点在防止入侵上,如黑客、病毒、木马等;监控
5、系统虽然也会一定程度上考虑这些方面的问题,但是更多地集中在发现或制止内部人员有意或无意威胁到信息安全的行为,也即监控系统更多的是为了内控。因为从现实的角度来看,无论从发生危害的可能性以及危害的后果来说,内部非法行为都要高于外部入侵,一来这样的行为更容易实施,二来内部人员对于内部信息的使用更加清楚。所以信息系统应用过程监控审计软件就成为了企业必不可少的防御工具。 针对信息系统应用过程设计的监控系统,在实现上自然地以用户操作集为中心进行分析设计。这种观点虽然直观,但是却给系统实现和测试造成了困难。根据用户日常操作对要实现的部件进行分类以后,各种部件之间没有统一的参考模型。这样就无法统一地对各个部件
6、的需求进行分析。每一类操作的分析都是从头做起,并且设计的好坏很大程度上取决于设计人员对于用户操作经验的丰富程度。另外,这种零散的设计方式也不利于评估和验证系统设计。例如设计测试用例时对用户操作的熟悉程度的依赖性很高。离散的功能设计也会导致系统被部署进行确认测试或系统测试时很难实现自动化,现实中常常需要雇佣大批操作人员进行测试。 另外,监控系统内在的分布性加上行为模拟难以实现自动化造成了确认测试和系统测试的困难。当对系统进行确认测试和系统测试时,需要把系统部署在更大、更接近真实应用场景的大计算系统中。这个是由监控系统所面向环境的特点所决定的。如果行为模拟不能方便统一地实现自动化,那么就需要利用大
7、量的测试人员进行手工操作。这样在实现上成本高,并且人员之间也难以协调,影响了测试质量。 在这种情况下,本文提出了信息系统应用过程的状态机模型。该模型用更抽象的观点看待所有信息系统应用过程,将应用过程分成从安装到卸载的生命周期中的各个状态,运行过程也细分了输入/输出等状态。这样,监控系统的职能在于等待目标系统的某个状态变迁,并采取相应的措施。应用这个模型,能将各类目标系统的行为统一到同一概念框架下讨论,也能为系统设计提供清晰的参考。实现时可以针对目标的状态变迁进行深入研究,各类行为之间的实现框架也能够统一。 状态机模型除了能够使得系统设计有更清晰的参考以外,也使得自动化测试工具的设计有了更可行的
8、模型。因为各种信息系统的行为已经建立了一致的状态机模型,则测试用例的实施本质上即驱动目标系统特定的状态变迁。当实现了一个统一的状态机框架以后,只要将具体行为填入框架,就能成为对特定系统的测试驱动系统。 最后,笔者再为写成的各个具体测试驱动系统建立一个分发部署运行的分布式测试框架,这样就构成了完整的测试工具。这个工具首先要支持分布式的对象分发和部署,能够远程运行测试用例,还要支持自动化测试脚本,以方便测试用例的实施。本文后面就实现了这样一个完整的原型工具,验证了上面模型的有效性。 1 监控系统 为了建立方便合理的测试工具,首先要对被测试的一类系统有一个清楚的认识。本章首先介绍监控系统的作用,进而
9、分析监控系统的通用结构和监控的一般过程,以对应用过程监控系统的过程有个基本理解;然后分析当前监控系统发现信息系统行为视角的不足;最后提出信息系统的状态机模型。 1.1 监控系统的作用 在程序的设计过程中,人们通过各种方式来确保程序的正确性。这种正确性包括内涵的和外延的。内涵的正确性包括语法上和语义上的。语法上的正确性是指输出的结果在形式上符合预期,而语义上的正确性则是指定的过程产生的确实是合理的结果。外延的正确性表示软件系统不被用在不恰当的场景中。例如一家公司内部的计算机软硬件系统的作用可能是管理公司资源以及开展公司业务,那么公司的负责人(也就是这些设备资源的所有者)不会希望雇员用这些设备有意
10、或无意地泄露公司机密,或在工作时间做私人的事情。这类事情就属于不恰当的场景。为了确保这点,负责人可能会在这些设备中引入一个系统对这些场景进行监控,即信息系统应用过程监控系统(下面简称监控系统)。这类系统针对特定的信息系统,检查其输入、输出或状态是否属于指定的集合。 1.2 监控系统结构 当监控的目标对象确定后,通常实现会有两种途径获得目标对象的输入/输出和状态(图1)。 a)检查目标对象与环境的交互。这里把目标对象边界之外凡可能与目标对象交互的对象集统称为环境。这时,目标对象被看做一个黑盒子。 b)使用目标对象提供的接口。如果对象本身提供这样的接口,那么直接使用目标对象提供的接口也许是更方便的
11、做法。这时,目标对象被看做一个灰盒子。 无论是用底层环境提供的接口,还是使用目标对象提供的接口,都面临着为每个目标对象单独开发一套监控机制的问题,并且这样开发出来的系统很难复用。对于桌面系统来说,不断涌现的软件资源反而造成监控系统开发人员工作的困难。后面将会再讨论这个问题。 接下来是如何处理这些得到的监控信息。通常的做法是使用规则标志违规操作,然后应用规则来对监控信息进行匹配,确定要采取怎样的善后措施。由于目标对象的多样性,监控信息获取的随意性造成了这些规则的形式很难统一。这样,就不得不为每个或者每一类目标对象设计一套检查机制。而且检查机制设计的测试和验证也耗时费力,无疑增加了开发的成本。 一
12、个监控场景可能包括以下部分: a)决策者。使用监控进行决策的人或程序。 b)监控对象。也即上面所说的目标对象。 c)环境。监控对象边界之外的对象集合。 d)监控系统。具体执行监控动作产生报告的软硬件。这部分包括: (a)嗅探器。运行在与目标对象相同的环境下,收集关于监控对象的决策者感兴趣的信息。 (b)收集器。订阅嗅探器得到的信息局部汇总。一般收集器可能还要负责启动相关的嗅探器。 (c)控制器。从各个收集器得到监控信息进行全局汇总,并进行相关的处理。 (d)执行器。在必要的时候能够实现对监控对象及其环境的干涉。 在这个框架下,监控信息处理过程是:首先监控对象产生了该事件;然后嗅探器感知到这个事
13、件的发生,打包监控结果信息发送给收集器;收集器得到消息后随之向控制器发送消息;控制器中有配置好的事件处理机制,通过匹配事件的类型决定是否记录日志、发出警报、产生处理动作由执行器执行或进行其他处理。 1.3 信息系统应用过程的状态机模型 分析了监控系统通用结构和监控的一般过程以后,下面深入到当前监控查看信息系统的视角,通过分析现有观点的一些不足,引入信息系统应用过程的状态机模型。 监控系统是基于用户日常操作行为来看目标对象的,本文称之为基于用户操作的行为模型。这种模型的优点是直观:系统的规则直接反映了使用信息系统的人平时可能进行的操作集合。但是这个模型也会造成一些困难:首先,在测试时使得开发测试
14、用例没有统一的词汇,表面上各个功能之间没有联系,也就造成了要实现测试自动化很困难,要为每个特定分类独立设计用例,测试用例的执行也要各自从头开始;另外,在监控系统实现时也是各自为政,如实现文件类监控的就不用关心网络管理类监控,这样造成各个部分无法统一讨论,也就没办法在一个维度上保障软件质量,软件质量很大程度上依赖组内开发人员的经验。监控系统体系结构如图2所示。 为了能够更好地理解信息系统行为,使得监控系统的测试和开发都能摆脱单纯依靠经验的问题,本文将每个被监控信息子系统(软件、硬件和数据)看做一个对象。这样信息系统行为就可以看做是对象状态的变迁。于是测试监控系统的过程不过是驱动特定对象的状态变迁
15、。将状态机A定义为一个五元组A=(Q,q0,F)2。形式地,目标对象的状态机At为 Qtqitqit is target object state tjtjt is input symbol of target object tQttQt is transition function q0tstart state Ftqftqft is final state 目标对象的状态机如图3所示。 它包括以下三大状态变迁过程: a)安装。一个对象要经过安装才能被使用。如果安装成功,则对象就绪可以进一步运行;如果安装失败,则对象生命周期结束。 b)运行。如果安装成功,则对象只是静态成为系统一部分,这时可
16、以使得对象进入运行状态,如将软件装载进内存运行。通常对象处于空闲状态,如果有请求到达,则进入交互状态。交互过程也包含自己的子自动机。 c)交互。主要是获得输入,更新自身状态。如果这个过程失败,则会产生交互错误,并最终返回空闲状态。 类似地,定义监控系统在不对目标对象进行监控时,状态机为Am=(Qm,m,m,q0m,Fm),各个成分意义类似At所述。 当监控系统开始对目标系统监控时,假设需要监控的变迁是qit?荭要?ktqjt。 假设qidlem为监控系统的空闲状态,qcheckm为监控系统对信息进行匹配的状态,则开始对目标状态进行监控后,监控系统的状态机为 Qm=Qm,?颉洫?m=?颡?m=q
17、it?荭要?ktqjt m=mqidlem?荭摇?qcheckm, q0m=q0m,Fm=Fm? 直观地说,对于一个目标对象,在设计时需要回答的问题是在哪个状态变迁上监听消息。用状态机来表达如图4所示。目标对象开始被监控时,其状态变迁会同时触发监控系统的状态变化。所以监控系统的输入集合需要加入它所感兴趣的事件,这个事件也就是目标对象的一次状态变迁。然后,监控系统会处于匹配规则的状态,此时监控系统试图确认所得到的信息是否意味着违规操作。若匹配失败,则监控系统再次回到等待状态;若匹配成功,则监控系统将会进行进一步处理。 2 测试工具设计 2.1 系统测试和确认测试 软件的确认测试始于集成测试的结束
18、,这时已测试完单个构件,软件已组装成完整的软件包。测试主要关注于用户可见的动作和用户可识别的输出。确认测试主要是为了确保软件满足所有的需求。系统测试则是将软件部署到真实的计算机大系统中,对其进行一系列不同侧重点的测试。系统测试包括恢复、安全、压力、性能等。这两种测试的实施依次位于软件开发的后期。 从监控系统本身的分布性以及对象的多样性,将系统部署到接近真实应用环境中进行测试的过程本身就要耗费相当大的成本。显然,这种测试往往只能在小环境中使用大量的人力进行测试,这样的做法效率很低,而且人员之间也不易协调,测试的质量很难提高。 通过分析测试中存在的困难可以发现,要实现一个自动测试工具中的几个基本需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 面向 应用 过程 监控 系统 测试 工具
链接地址:https://www.31doc.com/p-1591631.html