测试模式是一种针对软件测试领域的某种高频率出现问题而采取并经过实践证明行之有效的专门化、高效的解决途径(方法),它在软件理论和实践两者之间起着 “ 桥梁 ” 的作用。在面向对象语言JAVA程序测试的过程中,一个较为棘手的问题就是 JAVA 类的可视性问题。 “ 信息隐蔽 ” 固然是面向对象语言设计的一个突出的优点,但是同时也给测试带来诸多不便,有关 “ 隐蔽信息 ” 的可测试性成为这类测试的一大突出结症。为此我们针对 JAVA 类不同的 “ 可视性 ” 要求的场合,采取相应的测试模式来支撑相关 JAVA 类(包)的测试。本文主要总结五个常用的 JAVA 测试模式,以飨读者。这五个模式同样适合于其它面向对象类(包)的测试,只不过在具体细节上要考虑与 JAVA 语言信息隐蔽性的差异。比如: JAVA 的可视性以包为界,同一个包内的类对其他类具有相同的存取权限。而 C++ 则以类为界,只有子类和友员函数方可对基类的隐蔽信息进行存取。
我们在下面以图表的方式给出 五个常用 JAVA 测试模式详细描述,有关模式的描述类目分别是模式名称、测试对象、针对问题、约束条件、解决方法、实例、约束解决方式和该测试的设计原理。
模式(一) Main 模式
模式名称 |
Main |
测试对象 |
JAVA 类 |
针对问题 |
测试人员不知道在何处javascript:tagshow(event, '%B1%E0%D0%B4');" href="javascript:;" target=_self>编写驱动和初始化被测试类的测试代码 |
约束 |
测试必须容易运行、测试代码能够访问该类所有的特征(所有的属性和方法) |
解决方法 |
将测试代码放入类的 public static void main(String[] args) 方法中去 |
实例 |
public static void main(String[] args){ SomeClass result; // perform thetest… System.out.print(“result is..”); } |
约束解决 |
该测试代码能够率先被激活和执行、并能够访问被测试类所有的特征 |
设计原理 |
JAVA 类可以拥有 public static void main(String[] args) 方法,它是类在 JVM 中被率先执行的方法,控制着整个类的执行逻辑, main 方法能够访问所在类的所有属性和方法 |
模式(二) toString 模式
模式名称 |
toString |
测试对象 |
作为运算结果的类 |
针对问题 |
测试人员不知道如何检验一个运算对象的中间结果和最终结果 |
约束 |
测试结果代表对象内部的一个状态,而该状态必须能够被测试 |
解决方法 |
通过使用 toString 方法来对类状态进行描述,描述结果可以通过打印与预期结果进行比较 |
实例 |
class SomeClass { //… public String toString(){ // custom representation } }
|