关闭

使用测试驱动

发表于:2007-10-30 11:27

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

 作者:cLich    来源:cLich的专栏

        这篇记录了一些我使用测试驱动的一些感想。
        因为正好要实现一个网络通讯录,这是个不大的项目,就拿来练手了。
        记得以前刚开始写程序时,要在里面添加一个功能时,都是在主程序里直接添加,对小程序来讲这是最快的方法,但随着项目越来越大。写一个小功能都要在主程序上运行好些遍,当碰到有登陆框时更是麻烦,就是采用让启动自动化,速度还是很慢。后来就干脆分离出来做,将小功能的接口都想好,另建一个工程。这样对实现低耦合也很有好处,因为引用不到外部的数据,只能以建立接口的方式。但是还是遇到了麻烦,每个小功能都建立一个工程来做,显然很难管理,特别是当要做个普通的类实现一个小功能时。这个方法我想更适合项目中一些功能相对比较独立的模块的。因此我的代码测试这块做的并不是很细,直到后来发现了X-UNIT。
        原来测试可以做到这么细的,并且是全自动的~~在将功能分了一个个类后,对一些主要的类都写一个继承于TTestCase的类,加入测试工程,具体可参考X-UNIT的Demo,网上也有很多这方面的教程。
        比如我要写个TPersons类,实现人员的添加、删除、查找、选择分组等等功能;分别为Add,Del,Find,PersonsOfGroup等等方法。现在我们可以先写测试类        TPersonsTest,里面有TestAdd,TestDel,TestFind,TestPersonOfGroup等方法,分别用来测试TPersons类的方法。像TestDel我是这样(DELPHI语言):
  TestAdd;//添加一个记录
  try
    FPersons.Del(0);//测试删除
  except
    Check(false,'Del error');
  end;
  Check(FPersons.Count = 0,'Del Failed');//删除是否成功
 
        接下来我们再编写Tpersons.del的具体实现。这个在XP中叫测试驱动,很Cool的名字吧:)
        然后我们运行时测试工程会自动调用,显示错误的地方,或测试不通过的地方。像调用FPersons.Del(0)后,FPersons.Count还为1时就显示'Del Failed'。根据不同的被测试类要考虑不同的情况,模拟各种输入值等等。
        最后所有测试都通过,一片绿色~~~心里特安心!
        初看在写个类时都编写测试用例的方式感觉浪费时间,先不说调查数据和XP开发上说的各种好处。起码我自己觉的我的代码都是能稳定工作。特别是代码行越来越多时,每次大的修改后,心里感觉都不塌实,怕哪里有遗漏。但使用测试驱动方式,只要测试写的好,每次修改,运行测试,只要看她的红绿灯就OK了。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号