软件测试总是不能发现全部的bug,这是久经验证的结论。那么,是不是测试就应该以此为借口,从而只关心基本功能的验证通过,而忽视了细节,如用户体验或UI?通常因为时间的压迫,开发员的抱怨,乃至测试员的懒惰,往往在此妥协。
做好软件测试,必须具备追求极致的精神
软件测试员的价值:软件在交付给用户使用前,尽可能早地发现其中的bug,得以尽早地修复,从而减少后面的维护成本。软件测试员的好坏以bug的数量来评估,历史证明是错误的。但如果软件中遗留的bug数越多,那肯定说明测试存在着问题。软件测试需要在保证基本功能通过验收确认地情况下,尽可能地做到极致,深挖其中的bug
在基本功能都不能覆盖完全的情况下去追求细节、深挖bug,那显得极其愚蠢。可能你会发现一些深度价值的bug,能提高其易用性等。但,当用户使用时,发现软件基本功能都跑不通,那我想他很难不评价这软件真糟糕。就如,新出船坞的一艘船,刚刚下水出行船就因为设计上的缺陷沉了,那我想乘客不会因为船内的其他设施多么贴心而放弃追究制船厂的责任。
追求极致也应该讲究轻重缓急,而不是毫无目的随意测试
探索性测试很容易与随意测试进行混淆,从而被滥用。我认为探索性测试是有别于随意测试的一种测试方法,虽然他们的目的都是更多地发现软件中的bug,也就是追求极致地测试。探索性测试应该是根据测试员过往的经验,或者基于用户使用场景的猜想,以一定的策略进行的一种猜想论证测试。也应该讲究轻重缓急,如优进行业务流、功能的猜想论证,然后再进行网络、环境等的猜想论证测试。毫无策略的随意测试,那更多是验收团队应该干的事情,如果我们这样做,不可避免地会出现一些遗漏。
bug是否修复,是否进行妥协,那是项目管理层需要考虑的事情
经常我发现,测试员常常为项目管理者操心。比如:这个bug修改太复杂那暂时不提,开发没有时间修复这类bug那就不提,这个bug并不重要也可以不提。这样妥协的结果是:软件中的bug不停的堆积,而项目管理人员认为一切良好,但实际交付用户使用中问题不断;最终项目管理人员对测试团队失去信心。这是多么可怕的后果?测试团队失去了项目管理者的信任!所以,我经常听到开发人员向我抱怨测试人员测试的太细,发现细微的bug太多,但我仍然鼓励测试人员,并给予肯定。
测试人员要在时间允许的情况下应尽可能多的发现问题,至于最终的处理结果,是否进行妥协,那是项目管理者应该衡量的事情。
我想不仅测试需要追求极致,在可能的情况下,整个研发团队都应该追求极致,这样才能打造出一款真正让用户惊叫的产品。