一、发现问题

之所以是“发现问题”而不是“发现BUG”,是因为在确认是BUG之前,测试人员发现不正常的现象不可以武断的认为一定是BUG,因为很有可能是环境问题或自己对需求或设计有误解。

1、发现问题的心态

测试过程中,如果有问题(可能是BUG)产生,我第一个想到的是为什么会这样,单靠我自己实在是解决不了这个问题的情况下,我这才去问开发人员,而且不是提交BUG的方式,而是抱着一种学习的心态的去请教他(请教问题比直接提出BUG要委婉的多,即使我能明确一定是BUG,而且连BUG产生原因都已经知道,但在我和开发人员沟通时,都尽量让开发人员自己发现原来这是个BUG,需要修改,而不是我提出来的。)。总之,在测试过程中,发现BUG反而不像是我的目的了,测试目的更像是去探索一个陌生的事物,因为我始终认为开发人员身上有很多值得学习的地方。

2、静态测试发现,动态测试确认

使用静态白盒测试发现了一个BUG,然后用动态测试的方法暴露出这个BUG,这个是否可以称为错误推断?和黄某讨论之后得出结论,应该不属于,用动态的方法去显示,只是更具有说服力(实际上,是因为静态的方式让我更有把握认为这是个BUG),让开发人员清楚的看到的确是BUG。错误推断,只是一种经验,凭经验认为某个位置或某段代码可能产生问题,然后用某种手段去试。

那么如何提交这种BUG呢?首先向开发人员描述问题的现象,等他理解错误现象之后,再以猜测的方式告诉他错误可能出现的代码位置和原因(这样他知道你在看代码进行测试,增加对你的信任度),这样非常快的定位到BUG原因了,当然不排除自己推断错误的情况,所以是以猜测的方式告诉他BUG的出处,这样即使错误了,也会被原谅。