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

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

极限编程XP活用原则

发布: 2008-5-26 10:41 | 作者: 不详 | 来源: IBM developerWorks中国网站 | 查看: 178次 | 进入软件测试论坛讨论

领测软件测试网

  测试优先和单元测试XP中属于同一个实践,但是它们仍然是由区别的。测试优先强调行为,在写代码之前写测试,单元测试主要指的是测试的范围或级别。我们说,测试优先实践真正关心的,并不是测试是否要先于代码,关键在于你是否能够编写出适合于测试的代码,是否能够从测试的角度来考虑设计,考虑代码。 从另外的一个角度上说,坚持测试优先的实践,可以让你从一个外部接口和客户端的角度来考虑问题,这样可以保证软件系统各个模块之间能够较好的连接在一起,而开发人员的思考方式,也会逐步地从单纯的考虑实现,转移到对软件结构的思考上来。这才是测试优先的真正思路。而坚持先写测试,只不过是帮助你转变思维习惯的一种措施而已。对于一些优秀的程序员来说,只要能达成目的,是否测试优先,倒并不是最关键的了。

  其实做测试是一件很难的事情,因为很多时候,我们不能够完全的模拟出测试环境,或者是完全模拟出测试环境的代价太高。软件开发总是在一个固定的时间和成本的前提下进行,因此我们必须尽可能用小的成本来达成我们的关键目标。很多关于测试的书中都提到诸如磁盘出错之类的错误是很难进行测试的,但实际上,还有很多很多的内容是难以进行测试的。例如,一个业务逻辑,它使用到了14个业务实体和其它的一些配合的类,如何测试它?使用Mock Object方法,建立测试Fixture的代价将会很高,此外,如果实体类是可以控制的(例如,该实体类可以使用程序来初始化数据,而不是从数据库中获取数据),这个测试的成本还可以接受,如果不是(例如,第三方提供的技术),这个成本将会更高。类似的情况还有很多,但是为什么会出现这些问题呢?其中一个很大的原因就是我们并没有真正的把测试作为软件开发的一个重要的组成部分, 坚持测试优先的思考方式,可以大幅度的降低测试成本。现代的软件开发往往都依赖于特定的中间件或是开发平台,如果这些第三方产品没有提供一个强大的测试机制的话,要对最终的产品进行全面的测试往往是很难的。例如,在J2EE提供的Jsp/Serverlet环境,模拟Http的输入和输出是一件很难的事情。如果在软件设计阶段不考虑测试,那么最后的测试将会是寸步难行的。但是实际上,如果在软件设计时考虑到测试的困难程度,并将业务代码和环境控制代码区分开发,使之彼此之间没有过大的耦合。这样,测试工作就可以针对独立的业务代码进行,而这个成本就会低很多。


public class UserLog
{
public Service()
{
//难以进行测试的代码
//需要测试的业务代码
}
}

 

延伸阅读

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


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

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