起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 人在职场 > 今天遇到了一个坑爹的BUG......

今天遇到了一个坑爹的BUG......

时间:2021-05-02 15:49:42来源:深圳软件开发测试培训学校 作者:软件开发测试培训网 已有: 名学员访问该课程

前言: 今天测试的同事给我提了一个BUG,BUG内容是在当设置工作流条件为某个数字、货币、百分比类型的字段‘发生改变’

今天测试的同事给我提了一个BUG,BUG内容是在当设置工作流条件为某个数字、货币、百分比类型的字段‘发生改变’为‘0’时,这个工作流在该字段发生任意变化时被触发了,而原本应该是只有在该字段变为0时才可以触发。

接手这个bug,我先自己创建了一个工作流,分别用数字、货币、百分比在里面添加了3个条件,然后设置了通过条件组后执行的 任务。

因为我之前有修改过工作流和字段公式以及货币数字字段的BUG,而且我们的工作流模块很复杂,所以我一开始为了节省时间,直接找到最后执行这段条件组的文件中。 打印并且测试,忙活了半个小时,无果,沮丧+20。

然后只能老老实实的从保存操作开始找起,通过打印测试发现 字段的数据被保存了两遍,只有在第二遍中才保存了错误的值。然后从执行第二次保存的文件中往前查找,时间流逝。。。沮丧+30。 然后,通过跟正常保存的流程进行对比,发现是因为当改变任意数字时进行验证的时候直接验证为true然后直接执行了工作流中的任务。 进入这个验证当中查找,最终发现,是因为在里面的一个函数当中有一个判断

if (empty($value) {

return $hasChanged;

} else {

return $hasChanged && $fieldValue == $value;

}

其中$value 是我们在条件组中设置的满足当前单个条件的值, $fieldvalue是我们填充的值。

在这里我们设置的值为0,众所周知(很惭愧,我不知道),在php中,0会被判断为空 和false。

所以,在这个条件当中,当值为0的时候,我们直接进入了前面那个判断,返回了错误的值。最后我在判断中,添加了不为0的情况。BUG果然没有被重现。

历经2个小时,终于把这个BUG解决。

总结:虽然模块确实比较复杂,但是这其实只是一个比较简单的Bug.那么为什么会花费这么多时间呢,我总结了几点:

1.没有在完全理解bug的情况下就直接抄起键盘开始干,在我们看到这个Bug的时候,第一时间思考的应该是为什么0才会出现错误,而其他值不会。执行这个条件组的操作会在哪一步进行,验证又是在哪一步(这方面涉及到不清楚当前功能的逻辑结构)。

2.基础知识不足。如果是大神的话,一眼就能知道这个Bug是由什么造成的。

所以,这个Bug又给我上了一课,要加强基础知识,多思考。

软件开发测试人才四大魅力元素

——就业竞争小

——高薪没商量

——就业质量高

——无性别歧视

套用狄更斯那句话说:对于急需软件开发测试人员的企业来说,这是一个最坏的时代,但对软件开发测试人才来说,这是一个最好的时代。“随着软件市场的成熟,人们对软件作用的期望值也越来越高,软件的质量和功能可靠性也正逐渐成为人们关注的焦点。”

文章出自:http://www.epx365.cn/jyzn/202179674.html

文章标题:今天遇到了一个坑爹的BUG......



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.cnitedu.cn 注册时间:2016-07-18 11:07 最后登录:2021-05-02 14:05