内存的分析,一般是一个长期分析的过程,要做好不容易,首先要有长期奋战的准备,其
次内存泄漏的分析最好是放在单元测试之中同步进行,而不是要等到最后再去发现问题,当然出了问题也只好面对,一般这类问题都是在服务器运行了很久才暴露出来,一旦发现问题后,则需要定位问题,分析的原则采用子系统相互独立运行,找到最小问题的系统集,或是借助内存分析工具观察内存对象情况,初步定位问题,再用Purify进行运行时分析,通常C++ 内存问题比较多,Java与.NET比较少,一般由GC不合理引起。C++的内存错误就比较多了,主要常见的有:
1、 Array Bounds Read (ABR) :数组越界读
2、 Array Bounds Write (ABW):数组越界写
3、 Beyond stack Read (BSR):堆栈越界读
4、 Free Memory Read(FMR):空闲内存读
5、 Invalid pointer Read(IPR):非法指针阅读
6、 Null Pointer Read(NPR):空指针阅读
7、 Uninitialized Memory Read(UMR):未初始化内存读写
8、 Memory Leak:内存泄漏
注:如果需要更多的信息,可以参见Purify的帮助信息。
顺便提一句,为什么我要说单元测试时做这个比较好,由于单元测试针对的是单一功能,
这时结合单元测试案例做内存分析会更快的定位问题,同时由于问题较早的发现,则后期的风
险则会减少,当然如果结合代码覆盖工具PureCoverage 来做就更完美了。注:本篇只是对B/S应用的测试过程作一个整体的描述,对某一个阶段使用的工具只是作
大概的介绍,你也可使用你比较熟悉的工具达到相同的目标。
文章来源于领测软件测试网 https://www.ltesting.net/