第 12 章 测试与监视并发应用程序

软件测试在每个开发过程中都是一项重要任务。每个应用程序都必须满足最终用户的需求,而测试就是对此进行验证的阶段。应用程序必须在可接受的时间里按照指定格式生成有效结果。测试阶段的主要目标是尽可能多地检测软件中的错误并进行修正,以提高产品的整体质量。

在传统的瀑布模型中,测试阶段是在开发过程达到非常高级的阶段后才开始的。但是现在,越来越多的开发团队开始采用敏捷方法论,将测试阶段整合到开发阶段之中。其主要目的就是尽可能快地测试软件,以便在开发过程中尽早发现错误。

Java中有很多可以自动执行测试的工具,如JUnit、TestNG等。还有一些像JMeter这样的工具,可以帮助你测试自己的应用程序可以同时供多少用户使用。还有其他像Selenium这样的工具,可用来在Web应用程序中进行集成测试。

在并发应用程序中,测试阶段更加重要且更加困难。你可以同时运行两个或者多个线程,但是无法控制其执行顺序。可以对一个应用程序做大量测试,但是不能保证不同线程以某种顺序执行时不会导致竞争条件或死锁。这种情形也导致了错误再现比较困难。你会遇到仅在特定环境下出现的错误,这样就很难找到造成该错误的真实原因。本章将介绍下述主题,以帮助你测试并发应用程序。

  • 监视并发对象。
  • 监视并发应用程序。
  • 测试并发应用程序。