博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
没有测试的开发是多么的悲催哇
阅读量:6812 次
发布时间:2019-06-26

本文共 1047 字,大约阅读时间需要 3 分钟。

因为某个新增需求,我修改了一坨代码,不长,就那么4,5行,在用户注册环节里,作为负责的程序员不是写出来就完事,还需要验证修改的代码是正确的,可问题是为了验证这几行代码的正确性,我至少要保证他们被执行过一次,要求没有异常,并且它们要做的事情正确的做了,OK。为了触发这几行代码,那可费死劲,因为并不是只要用户注册这几行代码就可以被执行到的,如果我们把代码的执行流程看作一棵树,每个if语句都会让这棵树长出一个分支出来,那么显然,逻辑越复杂,树的分支越多,不幸的是,我要测试的代码处于一个不经常执行到的分支上,在这块代码前面有许多if语句挡住了它,那么我要精确的准备测试条件,保证代码在执行过程中不会走到其他分支去,而是像过关斩将一样,越过一个个if语句成功的执行到我要测的代码块上,如果很不幸的,前面的代码里潜伏了一个BUG冒出来,这个时候,我们就必须先解决别的BUG,并且,如果我的代码有错误,那么很不幸的,我上述工作还要重做一次。

那么,这次我需要做哪些准备工作呢:
1)回忆,思考,我这段代码块什么时候会被调用
2)发现这块代码是邀请朋友。朋友注册以后才会触发的代码
3)那么朋友怎么注册呢,需要用户的ID,到数据库查到用户ID
4)进入命令行用特殊的命令处理,该命令会把用户ID变成一个不可读的字符串并打印出来,复制之
5)  打开浏览器,输入特定URL, 并把刚才生成出来的字符串追加进URL里,回车
6)浏览器重定向到登录窗口,输入注册信息,点击登录
看起来准备工作结束了,别高兴,这个时候我们的测试流程才刚刚开始,这个时候代码才开始从树的顶点往下执行,如果之前的用户ID有错,代码就不会进入到我期望的分支,然后执行那段代码,那么所有工作重来,重来,重来。。。
不管幸运还是不幸运,我们都会越过上一步,就是代码被执行了 ,有异常处理异常,没有异常还要查看,程序执行以后,根据业务逻辑增加的贡献值有没有增加了,好吧,所有的工作都结束,该庆祝了,我得坦白这只是我一堆任务中的第一个,今天得晚上加班了,既然时间这么紧张我为啥还是要写这个呢?我觉得工作就是要记录要总结,那么下次再提起这些事情就有切肤之痛了,促进自己改进自己的工作。
其实,这些追加的功能有可能并不那么复杂,那么在一个较大的系统里,走一遍流程就费劲了,这些工作其实极大的磨灭了我们的热情

转载于:https://www.cnblogs.com/code-style/archive/2012/11/15/2772262.html

你可能感兴趣的文章
美团即时物流的分布式系统架构设计
查看>>
GitOps:Weaveworks通过开发者工具实现CI/CD
查看>>
访谈:关于持续敏捷交付与服务矩阵
查看>>
为什么AppDynamics重构指标服务时选择了HBase而不是别的NOSQL
查看>>
GitLab公布关于开发者趋势的问卷调查结果
查看>>
测试人员的GitHub
查看>>
微软宣布提供Azure Cognitive Services容器支持
查看>>
红帽收购混合云管理提供商NooBaa,混合云爆发节点临近!
查看>>
《F# Deep Dives》书评与作者问答
查看>>
InfoQ播客:Randy Shoup谈Stitch Fix的技术栈,数据科学和微服务架构
查看>>
ASP.NET Core提供模块化Middleware组件
查看>>
模拟黑客帝国效果2(canvas实验)
查看>>
OpenJDK9 Hotspot:Zero 解释器 初探
查看>>
JS中bind方法与函数柯里化
查看>>
调查显示:明年容器企业级用户将出现井喷式增长
查看>>
官方实锤!微软宣布以 75 亿美元收购 GitHub
查看>>
一个Java架构进阶必修体系图(只要思想不滑坡,方法总比困难多) ...
查看>>
MySQL 是如何解决幻读的
查看>>
Some methods of deep learning and dimensionality reduction
查看>>
天马行空脚踏实地,阿里巴巴有群百里挑一的天才应届生 ...
查看>>