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

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

追求代码质量: 通过测试分类实现敏捷构建

发布: 2008-6-23 17:58 | 作者: 不详 | 来源: 测试时代编辑整理 | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网

如果这样说不会(令您)很痛苦的话,请设想您是一名任职于一家 2002 年早期创建的公司的开发人员。在金钱的驱动下,您和您的团队接到了一项任务,即使用最新且最强大的 Java™ API 构建一个大型的数据驱动的 Web 应用程序。您和公司管理层都坚定不疑地相信这就是最终将被称为敏捷过程 的东西。从第一天起,您就用 JUnit 构建测试,且把它作为 Ant 构建过程的一部分尽可能频繁地运行。还将设置一个定时任务在夜间运行构建。在接下来的某个时刻,有人会下载 CruiseControl,不断增长的测试套件会在每次签入时运行。

时至今日

经过过去几年的努力,您的公司已经开发了一个庞大的代码库和一个同样庞大的 JUnit 测试套件。一切都很正常,直到大约一年前,测试套件包含了 2000 个测试,同时人们开始注意到运行构建过程用时超过三个小时。在此之前的几个月,由于 CI 服务器资源紧张,您在代码签入时通过 Continuous Integration(CI)停止运行单元测试,并将测试切换到夜间运行,这使得之后的早晨时间非常紧张,于是开发人员努力去弄清楚是什么出错以及为什么出错。

这些天,似乎测试套件整晚极少超过一次运行,为什么会这样呢?因为它们费时太多!没人会仅仅为了弄明白系统是否运行良好而几个小时守在那里。此外,整个测试套件都是在晚上运行,不是吗?

由于测试运行得太不频繁,它们常常充满了错误。因而,您和您的团队开始质疑单元测试的价值:如果它们对代码质量那么重要,那又为什么会让人这么头痛呢?你们的结论是:单元测试有其重要的作用,但必须要能用一种更为敏捷的方式运行它们。

尝试测试分类

您所需要的是一个将构建转换到一种更为敏捷状态的策略。您需要这样一种解决方案,使一天当中运行测试的次数超过一次,并使测试套件恢复到要用三个小时才能完成构建之前的水平。

为完整地恢复整个测试套件,在试图提出一个策略之前,很有必要弄清楚通用术语 “单元测试” 的含义。诸如 “我家有一个动物” 和 “我喜欢车” 这样的表述并不很具体,“我们编写单元测试” 也是一样。这年头,单元测试能代表一切。

就拿之前有关动物和车的表述来说:它们导致了更多的疑问。例如,您家有哪种动物?是一只猫、一条蜥蜴还是一头熊?“我家有一头熊” 和 “我家有一只猫” 截然不同。同样,当和汽车销售员交谈时,只说 “我喜欢车” 没什么用处。您喜欢哪种车:赛车、卡车还是旅行车?任何一个答案都能带来截然不同的结果。

同样,对于开发人员测试来说,按照类型 将测试分类也是很有用的。这样做能够实现更为精确的语言,并且能使您的团队以不同的频率运行不同的测试类型。为了避免运行所有 “单元测试” 所需的令人恐惧的三小时构建时间,分类是关键。


三种类型

测试套件可以形象地分为三层,每一层代表一种不同的开发人员测试类型,该测试类型由其运行时间的长短决定。正如在图 1 中看到的那样,每一层都增加了总的构建时间,要么增加了运行时间,要么最终增加了编写时间。


图 1.测试分类的三个层次
测试分类的三个层次lrY.gif" width=397 border=0> 

延伸阅读

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

TAG: 代码 分类 构建 质量

71/71234567>

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

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