单元测试 的一些概念 l 几个相关的概念 白盒测试 —— 把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对 测试人员 是公开的。 回归测试 —— 软件或环境的修复或更正后的 “ 再测试 ” , 自动测试 工具对这类测试尤其有用。 单" name="description" />
l 几个相关的概念
白盒测试——把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人员是公开的。
回归测试——软件或环境的修复或更正后的“再测试”,自动测试工具对这类测试尤其有用。
单元测试——是最小粒度的测试,以测试某个功能或代码块。一般由程序员来做,因为它需要知道内部程序设计和编码的细节。
JUnit ——是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。主要用于白盒测试,回归测试。
l 单元测试概述
单元测试的好处
A、提高开发速度——测试是以自动化方式执行的,提升了测试代码的执行效率。
B、提高软件代码质量——它使用小版本发布至集成,便于实现人员除错。同时引入重构概念,让代码更干净和富有弹性。
C、提升系统的可信赖度——它是回归测试的一种。支持修复或更正后的“再测试”,可确保代码的正确性。
l 单元测试的针对对象
A、面向过程的软件开发针对过程。
B、面向对象的软件开发针对对象。
C、可以做类测试,功能测试,接口测试(最常用于测试类中的方法)。
目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。该测试框架的第一个和最杰出的应用就是由Erich Gamma (《设计模式》的作者)和Kent Beck(XP(Extreme Programming)的创始人 )提供的开放源代码的JUnit。在移动平台上,目前只有Jbuilder 2005的MicroUnitTesting框架,这个框架就是Junit在J2ME平台上的扩展。
l JUnit的特征
A、使用断言方法判断期望值和实际值差异,返回Boolean值。
B、测试驱动设备使用共同的初始化变量或者实例。
C、测试包结构便于组织和集成运行。
D、支持图型交互模式和文本交互模式。 (MicroUnitTesting可以将测试结果显示到手机屏幕上,个人认为是鸡肋功能)
l JUnit框架组成
A、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。
B、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。
C、测试结果的描述与记录。(TestResult) 。
D、测试过程中的事件监听者(TestListener)。
E、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素(TestFailure)
F、JUnit Framework中的出错异常(AssertionFailedError)。
l 从JUnit的应用来分析
A、 测试驱动开发的重要组成部分,应该在代码编写之前编写测试用例。
B、 单元测试实际上是用穷举法列出所用可能性,针对每一种可能都有测试用例。(AI怎么测?能穷举吗?)
C、 对于drawImage这样的方法,只靠断言(Assertion)不能得到我们期望的测试结果(断言图片画出来没有?不如直接用肉眼看来的快。那么如何断言图片是否显示正确?目前没有发现相应的框架,还是直接用肉眼看来的快。)
l 从移动游戏应用的特殊性来分析
A、 面对对象特性不强(非常非常非常的差!!!),主要是游戏的性能和容量的限制。
B、 类方法功能不够明确,针对一个方法设计用例十分困难。比如AI的状态机,状态之间的切换牵涉到太多的变量,参数。各种变量参数之间的组合可能有上百种,无法设计用例。
C、 游戏应用的重要部分在显示部分,目前没有发现测试显示部分的框架。