正式环境出现bug到底是谁的责任?
如下图是某个系统中的选项,这里假设总共有30个选项(一般稍微复杂点的系统都会有这么多场景),每个选项有选择和未选择两种状态,如果每个流程都要走一遍的话,测试人员大概需要测试2^30=1,073,741,824次,每点击一个流程粗略计算为1分钟,一年最多可以测试366*24*60= 527040次,总次数1,073,741,824除以每年次数527040=2037年以上,综上所述,如果要一个不漏的测试所有选项是不可能的。
因此在软件测试过程中我们不会选用这种全覆盖式的测试,因为这种测试方式使测试量呈指数级增长,非但没有意义,而且会耗费我们大量时间,所以我们只会选择对实际业务使用有影响的场景进行测试。
这就导致一个问题是,测试人员在测试过程中需要无条件信任开发人员某些功能做的一定是对的,当然测试人员也相信自己的测试场景也是用户实际使用的,但是用户就是用户,一千个人眼中就有一千个哈姆雷特,他可能不会按照我们设想的情景进行操作,结果就会出现线上崩溃,线下正常,测试太不充分了,这种场景都没测试到,测试会想我们不可能任何一种场景都覆盖到的。
这个锅谁来背?
项目经理和产品经理做需求时,要尽量简单实用,需求要尽量详细,并且团队内时刻保持沟通,开发和测试则要反思自己为什么在这个环节出了问题,是产品业务需求问题、还是自身技术问题、还是测试不充分问题?共勉吧!
推荐阅读:
关注【被讨厌的勇气】