更多课程 选择中心

软件测试培训
达内IT学院

400-111-8989

今天遇到了一个坑爹的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又给我上了一课,要加强基础知识,多思考。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:2018年趋势洞察:人工智能、物联网、大数据…
下一篇:技术面试中的精英主义 你也需要学习一下!

软件测试工程师有哪些岗位?

软件测试工程师要求?

软件测试项目去哪里找?

软件测试这个岗位今年如何?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

陕西省

湖南省

贵州省

云南省

广西省

海南省