我现在更有经验并愿意挑战回复其他人提出的意见,如“你为什么没有发现错误?”因此,我设计了一个简单的场景,说明给定变量的数量有限的测试,测试所有排列所需的时间是巨大的。该方案是这样的:
三个文件夹的层次结构
每个文件夹包含四个文件
文件夹和文件都可以有不同的权限
覆盖这个相对简单情况下所有排列的测试次数为14348907。这是3^15(15个实体与3种状态)。很明显,这么大的数字显示了你是无法在可行的时间内测试完所有排列的。当然,你可以创建一个自动化的测试,以更迅速地完成,但这里的问题是,这种情况甚至不是一个现实世界中真正存在的情况。我仅仅是创建了一个简单的练习,以显示要测试这个看似简单的可复制问题是有多么困难。要知道在现实世界中的客户会有几百个文件夹,包含数百或上千个文件的大层次结构。通过交流关于这个简单的场景很快使我能够说明为何测试无法发现每一个漏洞,无论在事后它是多么的明显。
还有什么?
正如已经叙述的这三个真实世界的故事,即使你认为你已经完成了测试而实际你还没有。有许多原因可以停止测试,但其中并没有你已完成了所有测试这一理由。我觉得思考我是否错过了什么是非常宝贵的。有什么是我没有想到的?有什么是我觉得太明显了,就对其忽视或认为是不值得考虑?我一般尽量记录这些问题。有些会得到答案,有些则没有;但是这并不会阻止我思考具有启发性的“还有什么?”。
避免令人尴尬的错误!
命名您的启发式方法,让你可以在未来轻松地回忆起来。
如果你要问如何做,你才可以进行测试,当心——无论是与你的理解还是所给的答案都可能有问题。
创建许多测试的想法。你真的不应该有没有想法的时候。
想想“假设?”
请注意你的情绪。他们会告诉你一些事情
有新的眼光来看待变化,而不要指示它们要测试的内容。
意识到“没有人会这么做”的声明。
与其他测试人员,开发人员,产品经理,市场营销——所有可用的并有意愿的人合作测试!
在测试中,我们需要大量的实用主义。不管我们使用什么样的方法来帮助防止检测失误,bug总会被漏过。使用启发方式可以帮助减少总数。
给启发方式命名或助记符可以帮助您同时记住并利用它们来帮助你早期识别错误和防止明显的错误。命名您的启发方式可以根据自己的个人喜好来完成,因此,如果以上任何一个方法对你有用,请随意命名并利用它们来帮助你找到那些所谓明显的错误。
作者简介
Stephen Blower 已经作为测试员在不同的机构工作了18年。目前,身为Ffrees家庭财务的测试经理,他有令人羡慕的位置,能够从头开始创建一个测试团队。他职位的重要部分是激发测试者,而不仅仅是创建流程。Stephen大力鼓励互动和反馈,并让测试者获得控制权,使他们成为发展具有价值的发展团队的成员。
译者简介:大头,在读日本九州大学修士,计算机专业,主研究方向为文本挖掘,及自然语言处理。