规则”(Rule)在程序中有广泛的应用,本文将介绍在对“规则”进行单元测试(Unit Testing)时的一些独特之处。希望能与读者探讨。
引言
一个例子
我们先看一个例子,以了解对”规则”做单元测试的特点。我们有一个性能调优工具 WPA, 它能够将与性能相关的参数的值进行评估并推荐最优值。它的评估和推荐最优值算法都是基于”规则”的。
Java 虚拟机的初始堆大小(JVM initial heap size)是一个影响 JVM 的性能的关键参数。性能调优工具 WPA 有一套规则对“ JVM initial heap size ”的值进行评估(参见清单 1)。评估的结果有 5 个级别。级别“ 1 ”表示设置良好,可提高性能;级别“ 5 ”表示设置很差,会降低性能。
清单 1. JVM initial heap size rating algorithm
Rating3UpperBounds = 1024 Rating3LowerBounds = 48 Rating5UpperBounds = 1536 Rating5LowerBounds = 32 Rating3Multiplier = 4 Rating5Multiplier = 3
absoluteMaximumValue= Math.min(currentMemoryPoolSize, overallMemoryOnPartition) / Rating3Multiplier if (initialHeapSize > absoluteMaximumValue) { return 4; } if ((initialHeapSize < Rating5LowerBounds) || (initialHeapSize > Rating5UpperBounds)) { rating = severe problem (5) } else if ((initialHeapSize < Rating3LowerBounds) || (initialHeapSize > Rating3UpperBounds)) { rating = probable problem (3) } …… } if (initialHeapSize * Rating5Multiplier > currentMemoryPoolSize) { return severe problem (5) } else if(initialHeapSize*Rating3Multiplier > currentMemoryPoolSize) { return max(rating, 3) } else if(initialHeapSize*Rating2Multiplier > currentMemoryPoolSize) else { return max(rating, 1) } |
在这一套规则中,有三个输入参数:
本文转自IBM Developerworks中国
请点击此处查看全文