论坛首页 编程语言技术论坛

一知半解用ruby开发

浏览 7297 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-26  
你这个是写法的问题吧,不是优先级别的

正确的写法应该是foo(p1,p2){....} 你把改写的括号省略了,当然会出现看似优先级别的问题,实际上你这个是完全不同的两个语句
0 请登录后投票
   发表时间:2008-10-28  
jack 写道


不是工具的问题,是测试粒度大小的问题,还有怎么测试。

model的函数,要测试吗,controller用到了这个model的这个函数,要测试吗,view中呢,都要一层一层测试吗。 测试那一层才是最有必要的?



结合自己的一些体会有感而发:
在freewheel的UI(UI指Web界面,不是单纯的指html、css)组工作1年多,一个较大的体会是流程化、自动化的控制做的比较好。我们有程序员level的单元测试,有ci服务器,有专门的QA team(QA team vs DEV team接近1 : 1的人数)

为什么我们这么重视测试?
因为商业软件特别是ASP product很注重SLA,一个在线商业服务软件,即使是一个月出现5分钟的down time(在maintenance window外)也是不可容忍的,因为带给客户的损失可能是非常巨大的。

测试的目的?
测试的目的就是为了保证软件服务质量,没有经过严谨的测试的软件谁敢用?没有经过24小时摇晃实验的机械手表你敢买?没有经过C-NCAP碰撞测试的汽车你敢开?

测试的种类?
测试有很多形成体系的分类,从程序员的角度来看最关注的就是单元测试。从QA的角度来看最关注的则是集成测试、验收测试、黑盒测试

为什么程序员要关注单元测试?
因为QA在集成测试时发现软件有bug,这时就会过来找程序员的麻烦。所以,为了减少一来一回的改bug和沟通的成本,程序员有必要站在开发人员的角度保证软件的基本单元的质量,即单元测试。好比汽车零件生产商要保证每个汽车零件的质量,电脑零件生产商要保证电脑零件的质量,这样组装起来的汽车、电脑的整体质量才能过关。

有哪些单元测试?
具体化到Web UI的开发结合流行的MVC框架来看,程序员最需要保证的就是业务逻辑的正确性,而业务逻辑都在Model层面,所以Model层是最重要的也是最需要测试的地方。在这里一个Model方法的测试就是一个单元测试。Controller层也需要隔离测试,因为Controller层是Web程序的Work Flow,Controller不测试的话怎能保证一个URL的访问能得到预期的结果?View层也是需要测试的,因为View层包含了一些动态网页的页面逻辑,如果不测试怎能保证页面渲染正确?

MVC三层的测试是最基本的单元测试需要覆盖的地方,一旦程序员保证了这三部分,则QA在做集成测试、验收测试时会大大减少出现bug的几率,从而也让程序员的生活更舒适。

为何需要自动化?
我们有自己的ci服务器做持续集成,每批次svn commit都会触发ci跑集成测试,自动化的目的就是及时发现bug的回归、减少手工跑测试浪费的时间、清楚的了解项目目前的质量水平。
ci可以设计的比较灵活,针对不同的层面来跑不同的测试,比如集成测试和单元测试可以分为两个项目来跑。ci上报错可以给开发人员发email通知来及时fix bug/test,以免bug扩散。

一句话,有了良好的测试才能保证软件质量,所以我们要认真对待测试,提高对测试的认识。
3 请登录后投票
   发表时间:2008-11-06  
我的学习路线是这样:
了解Ruby---学习Rails---学习Ruby---用Rails开发项目---深入Ruby

我猜大部分学习Ruby的程序员都或多或少有其他语言的基础,所以学这个的感觉就是,一开始很爽,其他语言很难解决的问题用Ruby很好就可以解决,可是,怎么有点晕呢...
0 请登录后投票
   发表时间:2008-11-09  
jack 写道
你这个是写法的问题吧,不是优先级别的

正确的写法应该是foo(p1,p2){....} 你把改写的括号省略了,当然会出现看似优先级别的问题,实际上你这个是完全不同的两个语句


既然所有人都是在某种“一知半解”的程度上,那么做结论前,最好先仔细考虑考虑、调查一下。

比如()的优先级,什么叫“正确的写法”
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics