使用JUnit对规则进行单元测试(上)

发表于:2009-2-27 14:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:贾少亮    来源:IBM

  引言

  一个例子

  我们先看一个例子,以了解对”规则”做单元测试的特点。我们有一个性能调优工具 WPA, 它能够将与性能相关的参数的值进行评估并推荐最优值。它的评估和推荐最优值算法都是基于”规则”的。

  Java 虚拟机的初始堆大小(JVM initial heap size)是一个影响 JVM 的性能的关键参数。性能调优工具 WPA 有一套规则对“ JVM initial heap size ”的值进行评估(参见清单 1)。评估的结果有 5 个级别。级别“ 1 ”表示设置良好,可提高性能;级别“ 5 ”表示设置很差,会降低性能。

  清单 1. JVM initial heap size rating algorithm

  view plaincopy to clipboardprint?

  1. Rating3UpperBounds = 1024

  2.  Rating3LowerBounds = 48

  3.  Rating5UpperBounds = 1536

  4.  Rating5LowerBounds = 32

  5.  Rating3Multiplier = 4

  6.  Rating5Multiplier = 3

  7.

  8.  absoluteMaximumValue= Math.min(currentMemoryPoolSize, overallMemoryOnPartition)

  9.     / Rating3Multiplier

  10.  if (initialHeapSize > absoluteMaximumValue) {

  11.      return 4;

  12.  }

  13.  if ((initialHeapSize < Rating5LowerBounds) ||

  14.       (initialHeapSize > Rating5UpperBounds)) {

  15.       rating = severe problem (5)

  16.   }

  17.   else if ((initialHeapSize < Rating3LowerBounds) ||

  18.            (initialHeapSize > Rating3UpperBounds)) {

  19.       rating = probable problem (3)

  20.   }

  21. ……

  22.  }

  23.  if (initialHeapSize * Rating5Multiplier > currentMemoryPoolSize)

  24.  {

  25.     return severe problem (5)

  26.  }

  27.  else if(initialHeapSize*Rating3Multiplier > currentMemoryPoolSize)

  28.  {

  29.     return max(rating, 3)

  30.  }

  31.  else if(initialHeapSize*Rating2Multiplier > currentMemoryPoolSize)

  32.  else {

  33.     return max(rating, 1)

  34.  }

  在这一套规则中,有三个输入参数:“initialHeapSize”(“JVM initial heap size”的值),“currentMemoryPoolSize” (内存池的值)和“overallMemoryOnPartition”(物理内存的值)。为了得到这些值,我们需要使用 Application Server 和 OS 提供的 API 。在使用这些 API 的时候,我们必须构造出 API 所需的运行环境。

  在这一套规则中,包含很多不同的条件(见“ IF-ELSE ”语句)。在测试时(单元测试和功能测试),我们需要至少 24 组测试数据以覆盖所有的阀值(threshold value)和等价类(equivalent class)。参见表 1。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号