论坛首页 综合技术论坛

在新公司引入敏捷开发。我写unit test,下属写商业逻辑,可行吗?

浏览 26615 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-25  
dennis_zane 写道
非典型程序员 写道
xly_971223 写道
我觉得,其实写商业逻辑的人不用太考虑 unit test 这方面的东东,只要他严格按照设计好的接口,以及商业逻辑要求来做就行了。而我作为写 unit test 的开发领导,就需要付起更多的责任。

我倒是十分好奇lz对哪些类进行测试 哪些类不进行测试
业务逻辑都不测试了? 难道还有比业务逻辑更重要的东西?


你误解我的意思了。业务逻辑当然要测试。

我计划的做法是,先在会议中固定某个业务逻辑模块的设计(精确到方法),然后再分头写 unit test 和业务逻辑。在这时候,写业务逻辑的下属就不太需要关注我的 test case 怎样写的,因为大家都是按照同一个设计来行事。而我作为team lead,就要负起责任,做好一切质量保障,以及协调沟通上的工作。

我觉的这是不现实的,精确到方法的设计实在太难把握,修改的频繁以及你和开发者之间的协调工作将浪费很多时间



多谢!我会仔细思考这个问题的。

或许楼上有人说的 结对编程 是个可能的解决方案。但要在新公司实施结对编程,难度太高了。老板绝不可能容忍程序员数目除以二的!嘿嘿,肉食者B啊~~~
0 请登录后投票
   发表时间:2007-07-25  
adamzhao 写道
扯的太多其实也没什么用处。
建议LZ先不要猜测。可以先跟头沟通一下,做一个计划出来。有兴趣的话大家可以讨论一下计划。

至于能否成功,只有实践能告诉我们。 也希望LZ能够实践后总结一下经验和教训,供后人借鉴。




这当然是最实干的做法。不过,目前我暂时还没有进入新公司,所以很想先看看其他人的经验。
0 请登录后投票
   发表时间:2007-07-25  
unit test 和 商业逻辑 分开来写,到底行不行??

楼上有的兄弟说可以,但更多的兄弟指出问题~~~ 唉,困惑ing...
0 请登录后投票
   发表时间:2007-07-25  
引用
这当然是最实干的做法。不过,目前我暂时还没有进入新公司,所以很想先看看其他人的经验。

等你到了新公司,也许真正要考虑的就是不是这些了
而是要考虑怎么团结好这个团队。 先把你的团队管理好了 让他们能够接受你 尊重你 拥护你 然后在tdd 敏捷。
就是说先让他们接受你的人 再接受你的思想,如果上来就给他们套tdd 敏捷。。。
路漫漫其修远兮 吾将上下而求索
0 请登录后投票
   发表时间:2007-07-25  
这样分开的话,也就蜕化成了代码级的白盒测试,而失去了测试驱动的驱动含义

可以先通过一个模块来实践一下,过程中,估计一个模块还来不及完成就会暴露出问题,然后再来调整,只要有那个方向和意识,逐渐引入逐渐实施,一步到位的实施是有很多条件的

这种方式肯定是值得怀疑的,建议通过逐渐的培训和交流建立测试驱动的共识为最好
0 请登录后投票
   发表时间:2007-07-25  
qinysong 写道
这样分开的话,也就蜕化成了代码级的白盒测试,而失去了测试驱动的驱动含义

可以先通过一个模块来实践一下,过程中,估计一个模块还来不及完成就会暴露出问题,然后再来调整,只要有那个方向和意识,逐渐引入逐渐实施,一步到位的实施是有很多条件的

这种方式肯定是值得怀疑的,建议通过逐渐的培训和交流建立测试驱动的共识为最好
同意
TDD不是那个样子。
0 请登录后投票
   发表时间:2007-07-25  
个人认为在一个新的环境马上要采用这个方法,还是会有难度的,因为你首先面临的是那里的开发人员是否能够信任你的问题,如果处理不好关系,你布置的任务,即使想法很好,也可能很难都倒实施(可能是大公司里面会碰到多一些)。

我还没有做过TDD,不知道现在是不是大多数公司都用了,我现在的公司里没有用,都是边写代码边写测试,最后交付的时候连同测试代码一同提交。这里也想请教一下楼主

1) 在原先的公司里面测试和代码是一个人写的还是分开不同的人写的,如何分开,是team leader写unit test,然后开发的人完成代吗? 写测试的人和写代码的沟通会产生问题吗? 设计上的问题以谁为准?

2)  如果team leader们都把class的接口都定义出来了,那么下面开发的人是不是轻松了点,还有就是team leader会有这么多时间去写这些class设计吗,我个人觉得设计的时间会占用比较多一些。



0 请登录后投票
   发表时间:2007-07-25  
xly_971223 写道
引用
这当然是最实干的做法。不过,目前我暂时还没有进入新公司,所以很想先看看其他人的经验。

等你到了新公司,也许真正要考虑的就是不是这些了
而是要考虑怎么团结好这个团队。 先把你的团队管理好了 让他们能够接受你 尊重你 拥护你 然后在tdd 敏捷。
就是说先让他们接受你的人 再接受你的思想,如果上来就给他们套tdd 敏捷。。。
路漫漫其修远兮 吾将上下而求索




很有道理。可能我有些太操之过急了。
0 请登录后投票
   发表时间:2007-07-25  
qinysong 写道
这样分开的话,也就蜕化成了代码级的白盒测试,而失去了测试驱动的驱动含义

可以先通过一个模块来实践一下,过程中,估计一个模块还来不及完成就会暴露出问题,然后再来调整,只要有那个方向和意识,逐渐引入逐渐实施,一步到位的实施是有很多条件的

这种方式肯定是值得怀疑的,建议通过逐渐的培训和交流建立测试驱动的共识为最好



在讨论中逐渐理顺了我自己的思路。的确,我计划中的东东算不上真正的 TDD,只能是个以保证产品质量位目的的折衷。

唉,敏捷惯了,要退回去不容易啊。
0 请登录后投票
   发表时间:2007-07-25  
happylu 写道
个人认为在一个新的环境马上要采用这个方法,还是会有难度的,因为你首先面临的是那里的开发人员是否能够信任你的问题,如果处理不好关系,你布置的任务,即使想法很好,也可能很难都倒实施(可能是大公司里面会碰到多一些)。

我还没有做过TDD,不知道现在是不是大多数公司都用了,我现在的公司里没有用,都是边写代码边写测试,最后交付的时候连同测试代码一同提交。这里也想请教一下楼主

1) 在原先的公司里面测试和代码是一个人写的还是分开不同的人写的,如何分开,是team leader写unit test,然后开发的人完成代吗? 写测试的人和写代码的沟通会产生问题吗? 设计上的问题以谁为准?

2)  如果team leader们都把class的接口都定义出来了,那么下面开发的人是不是轻松了点,还有就是team leader会有这么多时间去写这些class设计吗,我个人觉得设计的时间会占用比较多一些。



1)原先(也就是目前)公司里面,测试和商业逻辑都是每个程序员各写各的,每个人都必须保证自己的商业逻辑可以通过自己写的测试。但是我们实行了 review 的政策,就是 team lead 有责任保证程序员的代码(包括测试和商业逻辑)质量。

2)正如楼上有人指出来,设计要细致到class的接口(也就是说,每个方法都要决定)是很难做到的。我们目前也是这样,系统设计一般都在class之间的关系这个级别,很少有真正深入到class内部,去定义每一个方法的签名。

假如设计真能细致到class内部,我觉得,测试和商业逻辑 这两种代码分开来写可行性会高些。
0 请登录后投票
论坛首页 综合技术版

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