我可以降低要求,但必须表现出专业

我可以降低要求,但必须表现出专业

在一个和开发人员一起讨论问题的会议上,讨论的过程中遇到了一些产品问题。测试人员抱怨说,有些defect (缺陷)报了之后,开发好长时间都不处理。有些defect(缺陷)报了开发人员也不修复,最后不了了之。所以,以后再遇到这样的defect了,索性就不报告了,反正人家也不会修复。

作为做了十余年软件测试的测试老司机,冰块也经常遇到这样的情况。测试人员辛辛苦苦做测试,发现了一个问题,开发人员轻描淡写地就给敷衍了,基于各种合理的、不合理的原因,不予修复。造成测试人员士气颇受打击,情绪低落。大家以后再遇到类似的问题,就容易睁一只眼闭一只眼,就当没看见,眼不见大家谁都心静。

还有些团队,把报告缺陷的数量和缺陷的修复率作为考核软件测试人员的法宝。俗话说,你考核什么就得到什么。考核缺陷数量和修复率,大家重视的当然就是缺陷数量和修复率了。如果有些缺陷不会被修复,那被考核者自然是避之不及。冰块在这里就不吐槽这种做法的弊端和对软件质量的伤害了。无形中,这种考核也会让测试人员对某些遇到的问题,视而不见,或者隐瞒不报。

但这都毕竟都不是好的做法,不是测试人员应有的职业素养。冰块一直坚持认为,作为测试人员,是软件产品质量的探测者和揭示者,我们可以通过测试,展现软件质量的真实状况。发现问题就应该报告,不管这个问题是否能够稳定重现,不管这个问题是否会被修复,我们都应该忠实于软件的基本状态和运行表现,如实报告遇到的任何问题。可是,如何有效说服测试人员,放弃以往的偏见,坚持以职业的态度看待软件测试,和遇到的软件缺陷呢?这个问题一直困扰着我这样的测试老司机。

还是在上面提到的那次会议上,开发人员杨俊说了一句让冰块醍醐灌顶的话:

软件中的问题肯定有,而且比较多。那我们要如实看待这是问题,遇到问题,不管怎么样,都要报告。我们可以降低要求,但我们必须表现出我们的专业。

是啊,我可以降低要求,你开发人员修复不修复这个问题,我可以不管。但我必须表现出我的专业素质和职业素养,遇到问题,不管是什么问题,都要如实地汇报。这才是测试人员应有的负责、认真和专业精神

我的朋友德平也经常说,只要测试人员遇到了软件中的问题,看到了不正常的行为,不管能不能稳定重现,这种问题和行为都真实发生了。有因必有果,一定是什么地方出现了问题。所以,测试人员应该报告这些问题、异常行为。而开发人员不应该忽略任何非正常的意外的行为和表现。因为这都可能是重大的软件缺陷,至少是潜在的软件缺陷。

必须承认,有时候,软件的某些行为、异常表现,与当时的环境、偶然的条件、操作的顺序、数据来源等等很多因素有关。尤其是与时序有关的问题(Timing Issue),很难稳定重现。这样的缺陷报上去,开发人员的一句“无法重现”就能让一切努力白费。

记得2008年测SQL Server的某个版本时,2月29日。那一天,我们测试团队的所有测试机安装SQL Server的测试都失败了。大家百思不得其解,因为所有的操作、数据、环境都和以前一模一样。开发人员也确认了,最近没有安装模块的任何代码更新。但就是安装不成功。按照正常的逻辑,这种失败应该会被开发人员归咎于测试人员安装的方法、设置和环境有问题。所以,即便报告了,也不会有开发人员来看,更别提修复了。万般无奈之下,迫不得已,我们报了一个defect以做跟踪。由于是个比较严重的问题,中国这边的开发人员也来帮忙看了。大家一起努力协作来探查问题,进一步的研究发现,这是SQL Server一个很严重的软件缺陷,因为它——跟当天的日期有关——只在闰年的2月29日才能重现,一旦出现,SQL Server就会宕机,罢工。过了这一天,就不会重现了。

这个案例也生动地说明了,软件中的异常无小事。发生了就是发生了,一定是什么地方出现了问题。为了应对开发人员“无法重现”的敷衍,有时候我们会把某些诡异的行为直接录像。录一段小视频,让开发人员直观地看到操作的顺序、软件的表现和行为。既是记录,也是证据,更是信心。

退一万步讲,即是不是真正的问题,至少也避免了真正的缺陷溜出去。等到了客户那里,再发现什么问题,回过头来修复,可能就不是小事儿了。测试人员应该抱着“宁可错报一千,也不要漏过一个”的信念,理性、认真、负责地看待软件的质量和行为。

至于缺陷修复率的考核标准,让它见鬼去吧。测试人员不应该看重这个指标。管理者更不应该拿它来说事儿。

当然,无论是开发人员,还是测试人员,大家都比较忙,都有很多事情要做。无谓的浪费时间的事情,尽量少做。所以,测试人员汇报的问题,要有充分的证据和说服力。有时候,需要多下些功夫,具体描述一下当时的情况。如果不确定,可以明确说出不确定的地方,也可供开发人员参考。测试人员要对自己的工作成果有充分的信心。

我们做事情专业、认真、负责、靠谱,开发人员才不会对我们的汇报视而不见。

回到前面的问题,遇到某些难以重现的、开发人员可能不回修复的问题,我们还报告不报告呢?

当然要报告,我可以降低要求,但我必须表现出我的专业。