RubySpec官方网站及其参与Google编程之夏的学生

发表于:2008-5-28 11:19

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

 作者:未知    来源:网络转载

关键字:单元测试软件测试

        Brian Ford宣布开通了RubySpec项目的官方网站: 

        该项目的目标是基于RSpect风格的规范(specs)为Ruby编程语言建立一个完整的可执行规范。这个项目一开始只是一个早期Rubinius开发者眼里的小火苗。后来它发展到由热心的人们贡献的超过6900个实例和25600个期望。 
        Ruby语言并没有一个正式的标准来规定它的表现和性能。而且Ruby的实现版本越来越多,因此必然需要一个规范。在现代软件开发的精神下,可执行的规范要好于用其他形式的规范。因为它能够执行,而且几乎可以立即给出反馈。这样就很容易对一致性进行验证。

        Federico Builes和Arthur Schreiber两位同学正准备参加即将开始的Google编程之夏(Google Summer of Code)活动。他们打算对Ruby规范进行改进和扩展。我们访问了他们两个,谈了他们准备在这个夏天做哪些工作

        Federico Builes是哥伦比亚大学的学生。他是两年前在寻找用什么来代替C时开始接触Ruby的。现在他正在参与Rubinius项目的开发。我们问了他在这次在Google编程之夏活动中的目标: 

        项目的第一部分是为一些标准库和内核库写规范(软件测试),包括REXML、YAML、 Logger、Socket和IO。

        剩下的部分(由Charles Oliver Nutter所建议)是看一看其他Ruby实现版本所使用的不同的软件测试用例,并把它们移植到Rubyspec中,使我们的规范尽可能完整。
我们还问了Federico怎样找出缺少软件测试的代码: 

        由于我已经确定了要用的哪些库,我就直接找出这些库的文档,查看一个方法的功能,然后写出相应的规范。如果这个方法像文档所写的那样工作,就非常好。如果不是,我就去读源代码,看看到底是怎么回事。

        先阅读文档而不是直接去读代码的一个好处是,你能经常看到有些东西不按照要求来工作。当我阅读REXML规范时,我在一天内就为一些小错误和过时的文档发了 三四个补丁。现在,他们在Ruby 1.9中都修补好了。由于Rubyspec是MRI的一部分,我想这类错误应该会被很快发现并修补。

        另外,MSpec是一个我们在Rubyspec中使用的RSpec复制品,它能帮你为还没有测试的库建立标志,然后你可以把它们标记成未完成、就绪、在X或Y实现版本上失败等状态。这样你就能看到一些库会在某些Ruby实现版本中出问题,然后着手去解决。慢慢地你就会发现软件测试用例覆盖了所有的改变。
19岁的Arthur Schreiber来自德国,他是另一个参与此项目的学生。他从2007年5月开始接触Rubinius,提交了许多补丁,修补了一些错误和许多文档。我们问了他同样的问题:

        在这次GSoC活动中,我的目标是为一些Ruby标准库建立或者改进规范,包括CGI、StringIO、Net、Set以及其它一些更小的库。

        我们使用的主要工具之一是MSpec。它是一个兼容RSpec的BDD框架,是由Rubinius团队的Brian Ford开发的。MSpec的目的是通过回避Ruby语言的高级特性,让未完成的实现也能运行规范。

        MSpec支持一种基本的覆盖功能,可以指出尚没有规范的方法。可是这个功能已经被去掉了,分别放进了MSpec和Rubyspecs各自的库里。Brian Ford准备尽快把这个功能重新加进去。还有一种想法,是采用RCov来检查标准库的规范覆盖情况。

更多单元测试相关的软件测试文章http://www.51testing.com/?action_category_catid_90.html

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号