主题:【原创】闲聊敏捷编程——测试驱动开发(一) -- 代码ABC
比如我现在最大的问题就是基于某些框架和方案,这往往是难以做白合性质的单元测试,只能用一些框架去做自动化的确认测试,维护成本非常高。而且我感觉也失去了tdd的本意。最适合开发人员写的,应该是百盒才对。
不知道这方面你有什么好建议? 特别是ui这块,很多web 框架都是基本不可测试的。 httpunit或selenium那样的东西,感觉上有些跑题了,而且对应的测试用列的维护台痛苦。
另外测试代码和实际代码的比例达到一个什么程度为好,也值得讨论。tdd虽然给出了一些结果导向的标准,但是实际做下来感觉还是不够清晰。我们有些程序员基本上都只写大方法的,这样的测试覆盖率太低。
说到这,又要提重构了。但是基于历史原因,很多代码也是比较难用勇气做重构的。比如今天就是,2个人pp 重构完了别人的代码,提交以后cc服务器变红。虽然自己基本确定不是改动那部分的任务, 但是因为test case的覆盖率不高,还是需要手工去检查核实,挺痛苦的。这也再次说明没有完善测试用列的重构是非常危险的。
agile开发说起来真是一言难尽,目前看到最接近agile本质的团队还是在国外的时候。国内的所谓agile圈子里做的,很多都是挂个皮而已,有些所谓专家翻译了一堆书,真跟他们讨论起来,发现也只知道皮毛而已。
举个最简单的例子,勇气这一点,国内程序员就很难做到。昨天发现一个资深程序员居然不明白数据库的索引是如何使用的,对基本概念有完全错误的认识,而且对我的提醒还很是自信,特意写了个长邮件调侃了他一下,就是这样,他也只是答复说忘记加索引了,不肯承认自己对索引概念的认识是错误的。国人做事将情面,但是技术人员如果没有勇气把这些面子的屏障脱去,就很难真正有效的进行沟通。
最近跟经理闹矛盾,其中一点就是个人发现几个大牛对数据库的认识很肤浅,由着他们去倒腾性能优化很危险,希望能强制对他们进行一下基础普及教育,结果上下都不感冒。程序员不乐意承认自己不懂基础,经理觉得我是浪费时间,也在打压大家工作积极性。 这算是文化背景的巨大差异了。
算了,比起国内某著名技术人员,号称作了n年的dba,居然连数据库范式都不明白,我们这些大牛也算不错了,用经理的话来说,可以解决问题么,你折腾啥,又不是火箭工程。但是本质上,就少了国外程序员那种不断追求细致,追求细节,追求完美的精英作风。这点我看来也是敏捷的本质之一,敏捷中的程序员不要求是大牛,但是要有追求完美的愿望,而且乐意从小事做起,从细节做起,而我们太多人只喜欢做那些炫耀技巧性质的东西。
- 相关回复 上下关系8
🙂晕 白兔大牙 字106 2009-06-09 03:40:34
🙂我也晕 代码ABC 字82 2009-06-09 06:42:48
🙂测试驱动开发(二) 14 代码ABC 字4456 2009-06-08 20:54:37
🙂TDD虽然不错,实际做下来还是很多问题
🙂个人的一些意见 4 代码ABC 字1228 2009-06-09 08:41:02
🙂对程序员来说,不能过分强调测试驱动, 木头人 字212 2009-06-08 21:10:44
🙂对于xp来说,全覆盖的测试是不可能,也是不需要的 风北客 字242 2009-06-09 07:43:02
🙂测试不仅仅是用来验证和明确需求 代码ABC 字354 2009-06-08 21:21:59