文档章节

尽量避免bug的一些手法

Sam哥哥聊技术
 Sam哥哥聊技术
发布于 2018/12/28 11:55
字数 1475
阅读 1186
收藏 15

概述


最近参与了几个需求开发,BUG很少,有些需求没BUG,有些才一个BUG,搞的测试人员还发牢骚说,

大佬,你负责的项目,bug都少的可怜,叫俺怎么活?

哈哈,其实测试人员要感谢我才对,因为开发人员的代码质量高了,会极大的提升测试人员测试的速度,因为测试过程中非常顺畅,没啥阻碍的东西。设想一下,如果提测后,代码BUG满天飞,测试人员不断的提BUG单,开发人员不断的修复,一不小心还可能修复出其他BUG来呢,中间还穿插各种各样不必要的讨论,这些都严重影响了测试进度,当然也严重影响了测试人员和开发人员的心情。因此:

最好是在开发阶段就认真起来,把代码写好,以求后续流程的顺畅性。

那么如何做到写代码的时候,尽量避免BUG呢?趁这个机会也跟大家分享一下我的做法。


尽量避免bug的手法


与产品经理和经验丰富的测试人员多沟通


需求阶段


产品经理正式开需求会议之前,一般都会先把需求文档发出来,这个时候,开发人员一定要认真的看并仔细分析,每个细节都要多想想,有疑问的地方及时跟产品经理沟通。另外,看需求的时候,最好跟熟悉业务的测试人员多多沟通,测试人员是对以往需求最清楚的人,能看到其他人看不到的细节。像我自己就经常从测试人员那里,听到了一些要命的而我却忽略掉的需求细节。


代码设计阶段


我一般想好方案后,第一时间就会去找技术老大和熟悉业务的测试人员。能做到技术老大,他的思路一般都是比较广的,多听听他的意见是没错的。另外,也要去找测试人员,有些开发可能认为,技术方案怎么会去找测试人员商量呢?请不要忘记,部分测试人员是对整个公司的大部分应用和需求和业务都了如指掌的人,能清楚的知道系统与系统之间如何交互,整个链路是怎么走的,整个上下文又是怎么样的。当开发人员的设计方案出来后,表面上看起来,完美无瑕,其实可能存在影响上下游系统的隐患。而多与熟悉业务的测试人员沟通,则可以尽早把这些问题暴露出来,减少影响和损失。


代码开发阶段


必须写单元测试


单元测试的重要性,无论怎么强调都不为过。它是用于测试自己写的代码是否符合预期的极好的手段。尤其是在创业公司,需求都非常多,经常需要改代码,如果没有一套完整的单元测试来回归验证代码,分分钟由于新写了代码而破坏了原有的代码功能。单元测试可以让开发人员放心大胆的改代码,无需担心影响之前的功能。

但是单元测试一定要认真负责的写,尽量覆盖主流程业务。那种随便写写,随便验证的单元测试,不写也罢,没啥意义,还浪费时间。


不断的重复的看自己的代码


代码提测前,要多看几次,有时候能看出一些隐藏的代码BUG的,有时候也会觉得,昨天写的代码,真垃圾,还是有蛮多代码要优化的。

在看代码的时候,最好顺便做到下面几点:

  • 代码收拢性要强,不要存在那种类似的代码满天飞,能封装起来的就封装;
  • 业务代码一定要有必要的准确的注释,千万别信那套方法名命名好了就能解释清楚的鬼话;
  • 变量名要起好;
  • 代码抽象层次要一致,不要跳跃,例如,你的业务方法,操作其他模块业务表的时候,都是调用Service类的,就不要突然冒出个直接使用xxxxxMapper去操作数据库表了;
  • 流程性比较强,最好用 //1、 //2、 //3、 标注一下,这样会更加清晰。

必须做开发联调


当你的业务接口开发完成后,一定要做开发者之间的联调。联调是端对端的,就算其中一方做的再好,没有联调,还是会出问题。


开发联调通过后,建议叫产品过来提前验收


一般来说,功能测试通过后,上线前,会让产品先验收一下。但是我则喜欢开发联调完后,就先拉上产品经理,先大概验收一下。不要小看这一步,经常能提早发现一些问题的。


测试人员测试阶段-看日志


不要以为提测后,就没自己啥事了,最好还是抽少许时间,去测试机器上看看日志,观察和分析一下入参和出参等,看看有没有什么异常或者不合理的数据。

原文链接


尽量避免bug的一些手法

© 著作权归作者所有

共有 人打赏支持
Sam哥哥聊技术
粉丝 78
博文 12
码字总数 13949
作品 0
广州
高级程序员
私信 提问
分析黑客软件:怎么盗微信号密码最简单方法?如何破解微信密码?

黑客软件:怎么盗微信号密码最简单方法?如何破解微信密码? 微信在生活中应用的十分广泛,自微信问世以来,很多黑客都在利用微信的种种漏洞来破解微信密码。不过很多人都不清楚自己的微信密码是...

艾德风范
2018/07/31
0
0
重构_改善既有代码的设计(五)

1、重构的记录格式 介绍重构时,我采用一种标准格式。每个重构手法都有如下五个部分。 (1)首先是名称。建造一个重构词汇表,名称是很重要的。这个名称也就是我将在本书其他地方使用的名称。...

OliverC
2014/05/05
0
0
SEO优化基本点大全ganxis

本文中,彭遣SEO优化基地主要就网站优化需要操作的基本点进行归纳: 为网站取名,然后根据网站名称选择域名进行注册,选择可靠的虚拟主机或者服务器以保障网站连通率 围绕网站核心的内容,规...

lizhiww
2018/05/16
0
0
测试员到底该如何报BUG?

相信大部分IT公司测试人员在报bug时,或多或少与开发的沟通存在些问题。如何更有效地说服开发接收你的bug,以下是一些资深老鸟给新人的一些建议: 1、首先确定这是一个个实实在在的bug。 不要...

白一客
2017/05/05
525
0
循序渐进的敏捷-交叉测试

   由于各种原因,团队人员换了一些人,新到的团队成员,由于对业务不够了解,对系统的代码和架构,也不是很清楚,很多时候测试也不到位,导致了一系列问题和bug。很多问题在我们看来都是不...

章为忠
2014/11/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

外教比较

确定收费的模式 确定授课的模式 确定教学的方式-用什么样的方式能让人更快更好的学会 确定核心竞争力-比如我们的师资是牛津大学的 英语流利说 收费的模式-报特色课程,比如训练营之类的,其实...

V字仇杀
22分钟前
1
0
上下文无关文法介绍

上下文无关文法 上下文无关文法是用来描述程序语言的一种表达方式,通过简单的符号描述语言的集合。正如我们所知道,一个程序即为一个句子(字符串),语言就是所有句子的集合。上下文无关文...

陶小陶
32分钟前
3
0
eggjs与sequelize简单demo

参考 egg 官方文档 安装 // 依赖npm install --save egg-sequelize mysql2// ts 类型npm install --save @types/sequelize 插件,config/plugin.ts import { EggPlugin } from 'egg';......

Geeyu
今天
1
0
看过上百部片子的这个人教你视频标签算法解析

本文由云+社区发表 随着内容时代的来临,多媒体信息,特别是视频信息的分析和理解需求,如图像分类、图像打标签、视频处理等等,变得越发迫切。目前图像分类已经发展了多年,在一定条件下已经...

腾讯云加社区
今天
4
0
2. 红黑树

定义:红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树(Binary Search Tree)。 要理解红黑树,先要了解什么是二叉查找树。在上一章中,我们学习了什么是二叉树,以及二叉树...

火拳-艾斯
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部