aBit

阿比特

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

              测试驱动开发

1.          引言

1.1.        介绍

Test Driven Development

TDD过程:
1
、编写用来测试的代码(测试不能通过,因为没有为应用程序编写实际代码)
2
、编写应用程序代码,使测试通过

3、重构已有的代码

 

其它的xUnit家族版本通常都有一个base class(基础类)

测试先行"开发代码过程中的主要工作之一

1.2.        测试驱动开发有什么好处

工匠的故事:

工匠一:先拉上一根水平线,砌每一块砖时,都与这根水平线进行比较,使得每一块砖都保持水平。
工匠二:先将一排砖都砌完,然后拉上一根水平线,看看哪些砖有问题,再进行调整。

2.          .NET中的单元测试工具

Unit Testing Tool List:

1).   NUnit

2).   NUnitAddin

3).   NUnitAsp

4).   csUnit

5).   .NET Mock

6).   X-Unity - MIIK Ltd.

7).   HarnessIt - United Binary

8).   SilkPerformer .NET Explorer - Segue

9).   Test.NET – Parasoft

10).DotUnit

2.1.        NUnit

.2.1.1.          <实例>

.2.1.2.          NUnit执行顺序

[TestFixtureSetUp]  // 只运行一次

 

---[SetUp]---

[Test] Test1

---[TearDown]---

 

 

---[SetUp]---

[Test] Test2

---[TearDown]---

 

 

---[SetUp]---

[Test] Test3

---[TearDown]---

 

[TestFixtureTearDown]   // 只运行一次

3.          测试用例

  任务简述
  队列是一种在程序开发中十分常用的数据结构,在此我就以编写一个实现队列功能的类--Queue为例进行说明。该类将实现以下基本运算:
  判断队列是否为空:empty()
  插入队列(即在队列未尾增加一个数据元素):inqueuex
  出队列(也就是将队列首数据元素删除):outqueue()
  取列头(也就是读者队列首数据元素的值):gethead()
  清空队列(也就是将队列的所有数据元素全删除): clear()
  查询x在队列中的位置:searchx
  测试案例分析
  在测试驱动开发实践中,第一步就是考虑测试方案,通过分析该类的功能,我们可以得到以下测试案例:
  1 队列为空测试
   TC01 队列新建时,应为空;
   TC02 清空队列后,应为空;
   TC03 当出队列操作次数与插入队列操作次数一样时,应为空;
  2 插入队列测试:
   TC04 插入队列操作后,新数据元素将插入在队列的未尾;
   TC05 插入队列操作后,队列将一定不为空;
  3 出队列测试
   TC06 出队列操作后,第一个数据元素将被从队列中删除;
  4 取队头测试
   TC07 取队头操作将获得队列中的第一个数据元素。
  5 清空队列测试
   TC08 清空队列操作后,队列将为空队列;
  注: 此处为了讲解的方便,并未将所有的测试用例都列出,同时也选择了一些十分简单的测试用例。

4.          NUnit.Framework

// 特征

Attribute

       Test--

       TestFixture--

              TestFixtureSetUp--

              TestFixtureTearDown--

       SetUp--

       TearDown--

       ExpectedException--

       Ignore--

       Suite--

 

// 断言

Assert

       AreEqual()

       AreSame()

       Fail()

       IsFalse()

       IsNotNull()

       IsNull()

       IsTrue()

Assertion

       Assert()

       AssertEquals()

       AssertNotNull

       AssertSame()

       Fail()

TestCase

       SetUp()

       TearDown()

5.          相关资源

《测试驱动开发》

《敏捷软件开发》

《拥抱变化: 解析极限编程》

http://www.51cmm.com/SoftTesting/No108.htm

posted on 2004-08-02 10:46  aBit  阅读(690)  评论(0编辑  收藏  举报