1 / 17

第 12 章 系统集成测试

第 12 章 系统集成测试. 本章介绍了系统集成测试需要的各种工具,主要包括系统跟踪、性能测试和内存测试 3 个方面。通过学习本章内容,可以了解一些基本的系统测试方法,用来解决系统性能方面的问题。. 本章目标. 系统跟踪工具 系统性能测试 系统内存测试. 12.1 系统集成测试. Linux 系统的内核、应用程序和文件系统分别来源于不同的软件工程,当把它们都集成到一个系统中时,可能会出现意想不到问题。解决这些问题需要一些测试过程。. 12.1.1 系统集成测试概述.

traci
Download Presentation

第 12 章 系统集成测试

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第12章 系统集成测试

  2. 本章介绍了系统集成测试需要的各种工具,主要包括系统跟踪、性能测试和内存测试3个方面。通过学习本章内容,可以了解一些基本的系统测试方法,用来解决系统性能方面的问题。本章介绍了系统集成测试需要的各种工具,主要包括系统跟踪、性能测试和内存测试3个方面。通过学习本章内容,可以了解一些基本的系统测试方法,用来解决系统性能方面的问题。 www.farsight.com.cn

  3. 本章目标 • 系统跟踪工具 • 系统性能测试 • 系统内存测试

  4. 12.1 系统集成测试 • Linux系统的内核、应用程序和文件系统分别来源于不同的软件工程,当把它们都集成到一个系统中时,可能会出现意想不到问题。解决这些问题需要一些测试过程。

  5. 12.1.1 系统集成测试概述 • 集成测试环境与交叉开发环境的建立步骤是基本相同的,不同的是已经包含了新开发的内核、应用程序以及文件系统配置。测试环境建立的前提是已经完成所有内核和应用程序开发,仍然采用NFS文件系统方式,添加测试程序和配置文件。

  6. 12.1.2 系统集成测试要求 • 对于嵌入式系统,需要测试的指标可能很多。从Linux操作系统角度来说,主要包括下列3个方面的测试。 • 系统功能测试 • 系统性能测试 • 内存泄漏测试

  7. 12.2 系统跟踪工具 • Strace是单个Linux进程的跟踪工具,它能够跟踪并且打印出程序调用的所有系统调用。它使用ptrace系统调用跟踪调试运行中的进程。它不要求重新编译要跟踪的程序,即使没有源代码,同样可以调试跟踪。 • Ltrace工具也是单个Linux进程的跟踪工具。Ltrace与Strace跟踪的对象不同,它跟踪的是动态库函数的调用;两者使用的方法基本相同,都不需要重新编译程序。 • LTT通过一个内核模块来监测主要的内核子系统。内核的跟踪模块采集产生的数据,转发给用户空间的守候进程并且记录到磁盘上。LTT还提供了事件观测工具,用3种不同的格式来分析跟踪的数据(事件图、进程分析、原始事件)。LTT对于系统性能分析是很有用的;对于获取实时或者非实时的任务在内核和用户层面的交互信息也非常有用。

  8. 12.3 系统性能测量工具 • 对于Linux服务器来说,系统性能是衡量产品的一个重要标志。由于嵌入式Linux系统的处理器是千差万别的,系统的性能也不可能有统一的指标。然而,Linux的各种性能测量工具可以用来优化调整嵌入式Linux系统的特定性能。

  9. 12.3.1 代码效率测量 • 1.gprof • gprof是代码执行测试工具,它可以测量程序中函数执行所花的时间,还能计算代表其他进程运行的时间。 • 2.gcov • gcov是代码覆盖测试工具,它可以分析程序源代码行的调用次数,看其中哪些频繁调用,哪些没有调用过。 • 3.Oprofile • Oprofile是一种代码评测和性能监控工具。 • Oprofile工具包含内核模块和用户空间守护进程两部分。内核模块可以访问性能计数寄存器,用户空间的守护进程负责从这些寄存器中收集数据。在启动守护进程之前,Oprofile需要配置事件类型以及每种事件的样本计数(sample count)。Oprofile被设计成可以在低开销下运行,从而使后台运行的守护进程不会扰乱系统性能。 • Oprofile评测的过程是在目标板本地运行过程中进行的。下面是基本测试流程。 • (1)配置Oprofile • (2)清除采集数据 • (3)启动评测 • (4)停止评测 • (5)获取评测数据

  10. 12.3.2 LTP • LTP(Linux Test Project)是SGI、IBM、OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性、健壮性和稳定性。LTP是Linux内核和相关特点测试的一整套工具集,它力求通过自动化的测试方法改进Linux内核 • LTP提供了大量的测试工具和脚本,基本的测试流程如下。 • (1)以root用户身份登录。 • (2)解压ltp软件包。 • (3)编译安装。 • (4)运行runalltests.sh脚本,顺序执行全部测试。 • (5)按照项目分别测试。

  11. 12.3.3 LMbench • LMbench是一种benchmark(性能测试,后面将直接引用英文单词)软件,针对各种通用系统应用而设计。多数情况下,用来测试系统实际性能问题,并且常用于比较不同系统的实现。有些情况下,benchmark可以发现一些新的BUG和设计缺陷。LMbench包含一个可扩展的测试结果数据库。

  12. 12.4 测量内存泄漏 • 对于嵌入式系统来说,内存是非常宝贵的资源。 • 12.4.1 mtrace • mtrace是最简单的一种内存泄漏跟踪工具。 • mtrace可以探测由于不成对使用malloc/free函数调用引起的内存泄漏。使用mtrace有3个方面最关键。 • (1)包含mcheck.h; • (2)设置MALLOC_TRACE环境变量; • (3)调用mtrace()函数。

  13. 12.4.2 dmalloc • dmalloc(Debug Malloc Library)是替代malloc、realloc、calloc、free和其他内存管理函数的库。 • dmalloc可以配置包含线程支持和C++支持。它能够作为共享库和静态库编译。所有这些选项在编译的时候选择,在链接应用程序的时候用到的这些库。

  14. 12.4.3 memwatch • memwatch是一种C语言内存错误检测工具。它是由Johan Lindh编写的,开放源代码memwatch不仅能够探测malloc和free错误,而且能够探测越界(fencepost)情况。 • memwatch的核心是memwatch.c文件。它实现了封装和地址检查的代码。使用memwatch前要做好以下准备。 •  必须在源码中包含memwatch.h头文件。 •  必须在编译命令行定义变量MEMWATCH(-DMEMWATCH)和MW_STDIO(-DMW_STDIO)。 •  必须和应用程序同时使用memwatch.c文件,memwatch.c生成的目标模块必须链接到应用程序中。

  15. 12.4.4 YAMD • YAMD(Yet Another Malloc Debugger)是辅助查找C和C++程序中动态内存分配问题的工具包。 • YAMD具有以下特点。 •  使用处理器的页面管理机制,确定分配内存块的边界。 •  每一步操作都会记录,不仅仅对文件和行号,还有完整的回溯。 •  在底层模拟“malloc”及其相关函数。可以跟踪其他非直接调用“malloc”的函数。 •  不需要修改应用程序源代码。 •  支持通用的内存调试功能。

  16. Q&A www.farsight.com.cn

  17. 谢谢! www.farsight.com.cn

More Related