• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

从企业的运行价值链说起——我眼中的测试驱动开发(TDD)

发布: 2010-6-09 09:57 | 作者: 不详 | 来源: 领测测试网采编 | 查看: 56次 | 进入软件测试论坛讨论

领测软件测试网

  SmartAssistor assistor = new SmartAssistor();

  Assert.IsNotNull(assistor);

  assistor.Search(control.Categaries);

  assistor.Store();

  }

  此时,我发现在写Search()和Store()方法的断言时,有些问题存在。这两个方法返回的结果应该是什么?是布尔值吗?那么搜索得到的结果呢?存储后形成的文件呢?对于用户而言,是否只需要这两个行为呢?

  仔细分析,我认为,Search()和Store()方法返回布尔值是可行的,但Search()还应该返回搜索结果。Store()方法也应该指定存储的路径和文件的格式。而用户不仅仅需要搜索和存储,同时还应该提供显示的功能。所以,上面的测试代码需要完善:

  [Test]

  public void TestSmartAssistor()

  {

  SmartAssistor assistor = new SmartAssistor();

  Assert.IsNotNull(assistor);

  SearchResult result = new SearchResult();

  Assert.IsTrue(assistor.Search(control.Categaries,out result));

  Assert.IsTrue(assistor.Store(result,@”D:\Smart Assistor\”,”               result.xml”));

  assistor.List(result);

  }

  此时根据测试代码写出的程序,应该说就具备个人智能助理的雏形了(所谓智能,还应具备自动搜索,自动匹配,自动分类等诸多功能,本文只是根据该项目提出TDD的一些观点,因此这些功能省略)。

  二、通过TDD进行重构)

  “发现价值”的过程远远没有结束。通过测试代码,我们从客户的角度来考虑,会发现一些问题。在已经实现的代码中,SmartAssistor类型实现了Search,Store和List的功能。但这些职责是否真的应该由它承担呢?表面上来看,是这样的。然而根据OO的思想来看,这个SmartAssistor所承担的责任是否太多了?它和搜索的结果、显示的方式耦合度是否太紧密了?这个设计将实现抽象出来了吗?这些都应该是我们考虑的重点。考虑的时机,可以是设计之初,也可以是重构之时。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网