魔扣论坛

魔扣源码论坛业务
查看: 1707|回复: 10

测试是浪费时间,我的程序肯定没问题

[复制链接]
  • TA的每日心情
    开心
    2018-10-28 00:07
  • 签到天数: 17 天

    [LV.4]神出鬼没

    25

    主题

    1

    回帖

    4

    积分

    魔扣新手

    Rank: 1

    魔扣币
    3
    贡献
    3
    威望
    0
    发表于 2018-8-12 22:49:51 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    (点击上方公号,可快速关注)



    作者:progfu
    译者:techug
    链接:http://www.techug.com/testing-is-waste-of-time

    尽管关于测试驱动开发(TDD)的书和文章有成百上千之多,仍然有很多人从未感受过测试的强大力量。


    之所以不愿意去写测试程序不外乎有以下几个理由:



    • 太费时间。
    • 不值得。
    • 我很懒。
    • 我不知道如何做。
    • 我知道我的程序好用,我运行过一次,没出问题。
    • 我是超人,我从来不犯错误。


    除非你的答案是6.(如果是这样,我很羡慕你),否则,你应该继续读下去。


    让我们从一个简单的例子开始。就说你要写一个Email地址校验程序。


    你也许会使用正则表达式,或手工实现每个字符的对比,来完成这个任务。


    现在你想验证一下你的代码是否有效。你会怎么做?你可以手工输入不同的值来验证它是否符合你的要求,结果你就测试了像下面的这些东西:


    foo
    foo@bar
    foo@bar.baz
    ...


    如果你要改变/调整校验算法会发生什么?你需要把之前所有的过程全部重复一遍,把每个值都再输入一遍,看看校验的结果。如果让计算机自动的帮你校验这些是不是会更好些呢?


    通过把测试过程自动化,你可以在任何时候对程序进行任何遍次的测试。这不仅仅在以后会节省你大量的时间,而且会增加你的自信心,因为每次当你感觉到程序可能出错时,只要运行一下你的测试程序,看看测试结果就行了。


    现在设想一下你正在编写一个更加复杂的程序,比如XML解析器。


    你不可能编写出解析器后不去测试它,问题是,你如何测试它?通常,你会创建一个XML样板文件,把它输入解析器里,手工检查解析的结果。当你看到解析器按照要求输出了你期望的结果后,你确信你完成了任务,解析器没问题。


    问题就在于如果你发现了一个Bug。那你就需要去修改你的代码,再验证一次它是否好用。可是我们程序员都是一群懒人,我们会只测试我们遇到的这个Bug,几乎从来不会去测试解析器的其它部分。这会产生什么问题呢?你能确保没有把什么东西改坏?


    当你写了单元测试程序后,这个工作流程会变的怎样?


    首先,你已经对程序进行过测试,之前你必须对每个函数进行手工的测试,手工的检查输出结果。如果这种事情你只需要做一次,那也没什么了,但当有东西出错时,你不想一遍一遍的重复做这个事情,没有人喜欢来回重复的做相同的事情,特别是无聊的事情。


    另一种情况,你为你的解析器里的每个功能都写了自动测试程序。在这个例子中,你已经测试过你的程序,对这个过程你并不陌生。你需要做的是把手工的检查改为assertions,它们会为你自动测试程序。


    当Bug出现时,巨大的变化发生了。


    如果没有自动化测试,你必须手工的检查所有的东西来确保你在修正一个Bug时不会引入其它的错误。当有数个Bug出现时,你会变得极不耐烦,你开始不再检查其它部分的代码,只关注你的这个Bug。但假如你为程序写好了自动化测试,你唯一要做的就是点击一次按钮,让所有的测试程序运行起来,你马上就能看到测试结果,几乎不需要在其它任何事情。


    当有了测试程序后,修改Bug是怎样进行的?


    首先,你需要重现这个Bug。无论如何,在你修改前,你必须要认定这个Bug是否真实的存在。如何做到这些?你要写出一个测试用例来重现这个bug,这个必须要在你做任何的修改这个bug的工作之前完成。


    如果这个bug不能重现,问题就可能出自其它地方,如果不能用自动化测试来重现这个bug,你可能在错误的地方修改了这个bug,很可能改坏了你的程序。当你写出测试程序,你必须先运行它确保它会失败。如果测试没有失败,什么地方可能出了问题,你没能正确的重现它。


    当你修改了这个Bug,你也有了针对它的测试程序,你可以立即发现这个bug是否还会出现。


    当你这时又发现另外一个bug时该怎么做?


    相同的做法。写一个测试程序,重现这个bug。即使你没有时间来立即修正这个bug或者这不是个致命的bug,你也应该有个能够让它重现的测试程序,当日后你回来解决这个问题时,你就能知道该做什么了。


    Python开发者

    微信号:PythonCoder



    长按上图,弹出“识别二维码”后关注



    人生苦短,我用 Python。Python 越来越受广大程序员的喜爱。「Python开发者」是最受欢迎的、专注分享 Python 技术的微信公众号,主要分享 Python 、大数据、机器学习相关资讯、技术文章、工具资源、热门教程和高薪职位等。






                        
                            


    来源链接: http://mp.weixin.qq.com/s?__biz=MzA4MjEyNTA5Mw==&mid=403370321&idx=1&sn=3c0b22d9c2faac81ca1576b21c03e1b5&3rd=MzA3MDU4NTYzMw==&scene=6#rd

    该用户从未签到

    0

    主题

    230

    回帖

    460

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    230
    贡献
    230
    威望
    0
    发表于 2018-8-26 21:58:09 | 显示全部楼层
    温暖在你心里,只是你自己还没有发现它。',

    该用户从未签到

    0

    主题

    251

    回帖

    502

    积分

    高级魔扣

    Rank: 4

    魔扣币
    251
    贡献
    251
    威望
    0
    发表于 2019-2-10 18:14:51 | 显示全部楼层
    前排顶,很好!

    该用户从未签到

    0

    主题

    249

    回帖

    498

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2019-2-17 20:36:12 | 显示全部楼层
    不错 支持一个了

    该用户从未签到

    0

    主题

    240

    回帖

    480

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    240
    贡献
    240
    威望
    0
    发表于 2019-4-16 11:34:52 来自手机 | 显示全部楼层
    因为有缘,让我们在空间里相识。友情是绵绵的细雨,滋润心田;友情是浩瀚的海洋,博大精深;友情是天上的白云,绚丽多彩;友情是陈年的佳酿,醇香溢人;友情是梦中的舞者,引人如醉;友情是优美的音乐,曲曲感人。魔扣源码论坛祝好友心情永远愉快,永远事事顺利,永远平安吉祥、如意!

    该用户从未签到

    2

    主题

    259

    回帖

    521

    积分

    高级魔扣

    Rank: 4

    魔扣币
    260
    贡献
    260
    威望
    0
    发表于 2019-7-5 15:53:22 | 显示全部楼层
    有一种祝福不只是在网上,而是在心里;没曾见面,却在心里留下了一个身影;没有擦肩,却留下了瞬间的感动;不知对方姓甚名谁,却在心上久久停留,淡淡地牵挂、默默地关注魔扣源码论坛、遥遥的祝福;即使一切是短暂的,也将定格成我永恒的回忆,成为我一生中最美丽的风景。让我们互牵友情之温柔的手,齐攀人生的友情之巅吧!来吧,亲爱的伙伴,亲爱的您!让我们共筑博客空间美好梦境!

    该用户从未签到

    0

    主题

    247

    回帖

    495

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    248
    贡献
    248
    威望
    0
    发表于 2019-7-18 10:14:36 | 显示全部楼层
    宝贝儿,只要你幸福,我就幸福,魔扣源码论坛不管你在谁身边。

    该用户从未签到

    1

    主题

    242

    回帖

    485

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    242
    贡献
    242
    威望
    0
    发表于 2019-11-1 10:32:42 | 显示全部楼层
    这么强,支持楼主,佩服

    该用户从未签到

    2

    主题

    279

    回帖

    561

    积分

    高级魔扣

    Rank: 4

    魔扣币
    280
    贡献
    280
    威望
    0
    发表于 2019-12-12 17:36:15 | 显示全部楼层
    佩服佩服!

    该用户从未签到

    2

    主题

    246

    回帖

    494

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    246
    贡献
    246
    威望
    0
    发表于 2020-4-23 19:02:58 来自手机 | 显示全部楼层
    友谊是纷菲春雨,滋润心田;友谊是浩瀚的海洋,博大情深;友谊是蓝天上的白云,绚丽多姿;友谊是陈年佳酿,醇香飘溢;友谊是优美的音乐,乐在其中;魔扣源码论坛愿我们的友谊长在!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表