这个点了,老是觉着有点不舒服,起因是因为今天去面试,被人问了写过测试吗?我回答从来没有写过测试。 然后面试官的神情让我感觉很不舒服,觉得好像什么都不会似的,一直别扭到现在。 我从接触 ruby 一直没用过测试,以前是自己写的功能,然后点点功能看能否正常运作,不正常就 debug 看哪里有问题,正常就发版了,后来也是 自己先过一遍,再交给测试人员去测试功能。
我只知道项目中有自带的 Test::Unit 的东西,但是从来没用过,今天也搜了一些帖子,还是不太明白。 所以想问问,写测试的意义是什么,写测试到底有无必要,如果有必要,那我应该从哪方面入手,看帖子说还有个 Rspec 的框架,也是用的非常多。
感激不尽。
当你发现你的生产环境中有一坨代码像屎一样(可能是当时脑袋被门夹了),然后你要重构这部分代码,如何轻松的验证重构后的代码没有问题呢? 重构的代码不敢上,这个时候你就会意识到要是一开始写了测试该多好
我看了@rei的测试指南以及各位的回复,我暂时的理解:测试就是为了以后重构代码的时候,不必再人肉点来点去,运行一遍就能知道有没有影响原来的功能,不必担心发版有什么问题。 熬夜的各位辛苦了,很晚了,各位晚安。
#9 楼 @suxiaohun 这个也能算熬夜?= =!写测试算是一种习惯吧,也是开发的流程,一般大的公司会有严格的发布流程,测试是必不可少的一个环节。当然,我也有见过某公司几万行代码一行测试都没写的……
测试是为未来节约时间。每次程序升级、功能增加修改、代码重构,都需要测试。 你可以人肉测试,但是这样需要招聘很多人,写很多人肉测试用例,然后还会有很大概率漏掉 Bug。 自动化测试可以给你省下几万几十万的钞票,并提供更一致的测试结果。
#10 楼 @cassiuschen ~~我以为晚上这个点,刷论坛的人应该不多了。。。 测试的作用我大致了解了,那么大家都是怎么来写测试的?用测试框架?用哪个比较多?
#2 楼 @suxiaohun 一样没写过测试。知道测试的好,但看到很多项目的测试感觉没到位,就象走过场一样。 认为测试的 case 重要于测试的技术,人肉也是要跑 case 的。 认为集成远重要于单元测试,在 rails 里注意基本的写法,除非很复杂的逻辑,单元测试起到的作用不大。但集成麻烦啊。 认为就算测试写得再好,肉测也还是要继续,不能依赖自动化测试。因为测试也是代码,也会有 bug。 认为软件质量里,需求 > 设计 > review > 测试。当然,每一个都要做好。
其实最怕的就是时间紧的时候,抽出时间写测试,导致代码质量很差,测试代码也很差。又自我感觉有测试了,质量有保证,人肉也不测了,结果一团糟。
最后,论坛上有 Testing 的节点,247 篇文章,而论坛共有 > 28902 篇文章,占比 1% 都不到。各位认为测试很重要的,发的文章里测试主题占比多少?写的 gem 里测试的占比有多少?是测试很简单吗?还是叶公好龙?
同样不写测试,但是换个角度去想,站在管理者的角度,手下人的水平参差不齐,合作开发项目质量得不到(心理上)保证,所以就有了 UT 这一出啊,也可以解释为什么很多人测试走过场。
如果有人问我写测试吗?我的回答是:自己写的 lib 会写点,业务相关的逻辑一律不写,现在需求变的太快了,写不过来。
我觉得人肉测试的技巧,可以去隔壁学学 https://testerhome.com/topics 专业的测试人员找出的 bug,比 UT 来的多。
我昨天刚把一个项目从 Rails 3.2 升级到了 4.2.5.1,附带升级了大量的 gem,一天内搞定。升级后损坏的测试逐个解决,重新通过。如果没有测试,简直就是瞎眼抓黑。
#4 楼 @suxiaohun 个人觉得对测试的理解、把握程度,是两个能力层级的分界。我曾经由于测试写得不好被一家公司拒绝过,在我有点补齐了这方面的知识,知道应该怎么写(之前只是知道需要写)之后,我更深刻地理解了这点。
遇到最麻烦是 gem 的升级,比如: