其神若何,月射寒江。

白盒测试动态测试之----监控审计

上一篇 / 下一篇  2010-05-13 17:41:01 / 个人分类:白盒测试研究

白盒测试很多理论中,并没有谈到监控问题,

可以说这个理论也是我们自己首创的。我们认

为白盒测试必须包含监控,才算完整。而且监

控的也非常重要,可操作性很高,自动化程度

高,可以从不同的角度去考量产品的质量。

1、 监控审计

按照某方面进行监控,把日常监控的结果保存下来,对监控数

据进行分析。分析系统的性能,分析系统的健康状况。

监控审计,更多的是分析系统的各方面的状况。包括开发期的情

况、测试期的情况、上线期的情况。需要监控的内容,就是我们

分析的素材。我们可以监控系统的性能,大的方面cpu、内存、io

方面的情况;更加细节的方面,函数调用的消耗时间、执行sql

时间、对象消耗的内存等等。同时,还可以监控系统上线运行的

数据,用于分析用户行为,了解系统的健康状况。

 

 1.1、 监控系统资源

监控系统资源可以采用操作系统进行命令进行监控,也可以采用

商业工具进行。

 

 

l        Cpu

Cpu短缺的特点:等待进程过多(大于4),空闲CPU太少

(少于40

 

l        Mem

如果内存的占用率比较高,但是,CPU的占用很低

的时候,可以考虑是有很多的应用程序占用了内存没有释放,但是,

并没有占用CPU时间,可以考虑应用程序,对于未占用CPU时间和

一些后台的程序,释放内

 

l        IO

等待IO的进程数目过大(大于3),CPU IO等待的时间过多,说

明系统IO性能不高。

 

 

l        network

网络冲突率,网络丢包率,可以统计是否网络是否负荷过大,网

络设备是否有问题

 

 1.2监控应用资源

监控应用资源,监控应用的每个细小的部件,窥探应用里面的可

能造成系统问题的地方。同时对这些监控的结果,可以判断应用的健康状况。

 

 监控函数调用

无论是面向对象还是面向过程,都是有许多的函数组成的,每个

函数代表了一个事务,函数之间又存在调用关系。

>>监控内容

主要是函数调用的耗费时间。

>>监控的切入点

函数的调用栈往往是非常深的,原则上在每一层都是可以进行

监控的。在实践中,我们往往挑选比较核心或者有代表性的那

层函数进行监控。比如业务层,该层代码一般都是代表一种业

务,那么我们可以监控每层业务的耗费时间。

 

>>监控的方法

代码嵌入法,把我们监控代码嵌入到被测代码之间,用于拦截

调用前后的时间。这中方法往往被测代码提供可嵌入的方式。

比如java webfilter可以拦截action层,面向切面的编程能够把代

码编织进去。该方法,往往我能够比较大限度、自由的取到我们

需要的数据。

往往需要我们自主开发工具,比如我们的工具filterLogTool

容器的统计工具,apachetomcat等容器都有统计处理请求的

时间统计功能,但是仅仅是统计请求的执行时间,统计的参数

也是固定的。

商业监控工具,比如jprofiler能实时的监控所有的方法调用情况。

易用性比较好。

 

 

监控sql执行时间

在依赖数据库的应用当中,sql语句的耗时,对系统的影响不亚于

应用代码执行的耗时。

>>监控内容

监控sql的执行耗费时间。

>>监控的切入点

代码嵌入法,在执行sql的地方嵌入耗时统计工具。该方法在外

面设计代码的时候必须考虑到该问题。

数据库的统计功能,往往数据会有统计sql的功能,但是无法知道

是哪个应用的sql

商业工具,比如jprofiler能实时的监控该应用执行的sql耗时,以及

能够追踪到调用该应用的方法。

 

 

监控对象内存

在应用中监控内存,一般跟踪应用整体消耗内存的情况,以及跟

踪应用内部对象的消耗内存情况。

>>监控内容

跟踪整体的应用耗费内存,在java中跟踪永久区、old区、new

区的整体情况非常重要。

跟踪应用组件的消耗内存,比如java中的对象,如果对象消

耗内存过多,往往是逻辑控制不好,比如没有进行分页显

示,把所有对象都装进内存了。

>>监控的切入点

 

>>监控的方法

对于java堆内存,可以用jdk提供的监控工具,比如jconsole.

对于对象的大小,可以用jprofiler进行,不但可以监控堆,还可

以监控对象的大小。

 

监控线程死锁

线程死锁,表象往往是系统很久都没有响应,表面上看是系统

慢。

>>监控内容

监控线程之间是否存在资源争用,一旦争用导致线程死锁,

往往导致系统崩溃。

资源有应用里面的锁,也有数据库里面的锁。

>>监控的切入点

 >>监控的方法

数据库的锁,一般提供了sql语句可以查询到锁住的资源。

应用的锁,java中可以用jconsole,jprofiler

 

 

 

监控用户行为

>>监控内容

 监控很多时候是监控事务的情况。监控的目的是监控用户的行

为,可以此来了解用户

 习惯,了解哪些事务使用的频率。

>监控的切入点

 我们可以选择一层来实现,比如事务层。

>>监控的方法

自主开发工具,比如我们自己开发的filterlogtool工具。

商业工具,包括一些容器都有类似的或者部分功能。

 

------------------river.liu 2010-5-13


TAG: filterlogtool filterLogTool jprofiler 监控 java

 

评分:0

我来说两句

xiaohanjiang

xiaohanjiang

River.liu又名小寒江。曾经从事多年JAVA软件开发工作,这几年一直从事软件测试工作。多年来,一直致力于软件工程、软件开发、软件测试方面的研究。不喜欢自称高手,不愿意自封资深;科学研究讲究的是务实、实践。真理、真知才是硬道理。茫茫海洋,我只希望我的每个理念能游弋于业界之间。我的思想能在你的脑海中徜徉。

日历

« 2024-04-16  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 39681
  • 日志数: 52
  • 建立时间: 2009-12-15
  • 更新时间: 2011-03-14

RSS订阅

Open Toolbar