从接到一个新需求到完成交付,我做了这些工作

640

大纲

一、需求分析

二、Bug处理

三、新功能实现

四、测试

一、需求分析


需求分两种,一种是Bug处理,就是处理程序的报错行为;另一种是新功能的实现,包括现有功能改进(Enhancement),修改功能等。

1.Bug处理。当测试跟你反馈有bug的时候别紧张,先观察一下报错,是不是程序的报错,有可能是测试的环境问题,集群部署问题等等。如果是自己的程序出错,接着看下文。

2.新功能的实现。跟提需求的人多确认几遍需求,最好有明确的PRD(product requirement document) 或者邮件等说明。先聆听需求,别急着反驳能不能实现。这也是我在工作初期犯的错,经常心太急急着去反驳能不能实现。正确的做法应该是先听完全部需求,自己梳理一下,再去针对具体需求进行分析实现的可行性。

二、Bug处理


1.观察报错。俗话说的好:日志打的好,处理Bug没烦恼。除了打好log之外,对程序异常的正确处理也非常重要,但这个属于代码规范的范畴,后续针对打log和代码规范再写文章。

2.精读代码。许多人一遇到报错,立马就上debug,debug本身没错,但至少先定个范围,而且有些Bug根本用不着debug。正确的做法是对着这段出现Bug的代码进行精读,一行也别落下,在一些判断或者传参的时候是否考虑空值情况,是否包括了临界条件等等。先把大段的代码缩小为可疑的一个小区间,后面再针对性的debug。

3.谷歌。有些报错可以直接复制黏贴搜索栏上,但有些报错需要自己先把问题抽象出来再进行搜索。搜索遵循由精确到模糊,当精确查找的方案不能解决你问题的时候,需要通过关键字搜索,让其他方案给你思路。举个例子:

a.精确:cause by ***。类似这种报错直接贴在搜索栏上,会针对性给你解决方案。

640?wx_fmt=png

b.模糊:Zookeeper + timeout。

640?wx_fmt=png

4.Stack Overflow定制化提问。针对你的问题,先去Stack Overflow搜一圈,优先看votes和answer多的。如果都没有的话,可以把你代码和问题贴上面,没过几分钟就会有热心的外国小哥来给你解答的,顺便纠正你的语法错误。

三、新功能实现


1.借鉴现有项目或其他好的项目源码。如果你现在的项目是一个大型项目,并且这个新功能跟之前的类似,那么直接找到那部分代码直接模仿就可以了。我在我电脑保存着很多优质的开源代码,当遇到一些类方法不会使用时,也会直接进行搜索借鉴。

2.官方文档。当需要使用一个技术栈去实现某个功能的时候,可以先去查阅官方文档,根据文档写个demo。多花点心思看官方文档,就可以节约大把查阅博客的时间。demo一定要投入最少的精力,保证方案的可行性就可以。

3.Github。Github有两种搜索方法,一种是针对项目功能,一种是针对技术栈的。当你知道什么样的项目有你想要的功能的时候,可以用项目去搜索,然后再分析里面的实现。当你知道实现的技术栈的时候,直接用技术栈去搜索更加精确。以登陆功能举例:

a.功能搜索:

640?wx_fmt=png

b.项目搜索:

640?wx_fmt=png

c.技术栈搜索:

640?wx_fmt=png

四、测试


测试分为功能测试和代码质量测试等,具体测试的粒度和方法根据公司的要求和开发者的习惯。

1.针对Bug的测试,只需要按照原来的报错步骤再走一遍,看是否报错即可。

2.针对新功能的测试,开发者除了补上完整的UT之外,应该给予测试同事一些测试用例,对新功能进行完整测试,而不是简单的happy path。

你的开发流程是怎么样的呢?欢迎留言谈谈你的看法~

推荐阅读:

大三、研二的秋招备战路线(Java、大数据)

从简历被拒到收割今日头条offer,我花了一年时间

扫描下方二维码

添加好友,备注选项:

1.健身 2.旅行 3.大数据,拉你到不同的交流群。

640?wx_fmt=png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值