有一种传统观点认为,软件开发人员不能测试自己的代码。我认为这实际上更多的是说,你不能有意义地测试你编写的软件的行为,以某种方式表现。推理很简单。如果您在编写代码时牢记快乐的路径,那么在测试它时,您将始终导航快乐的路径,被确认偏差的形式所蒙蔽。
更具体地说,想象一下你写了一段代码,读取电子表格,列出总和和平均值,并将这些报告给用户。当你构建这个小应用程序时,你要做的第一件事就是让它成功地读取文件,这样你就可以编写依赖于这个先决条件的应用程序的其他部分。在你的开发过程中,你不太可能测试所有可能出错的东西,因为当你继续测试你专注的平均值和总和时,你会开发出一种肌肉记忆,让导入正确。你不会想,“如果列被切换了怎么办” 或 “如果我传递一个word文档而不是电子表格怎么办?”
由于这种影响,我们被责骂不要测试我们自己的软件。这就是QA部门存在的原因。他们有适当的视角和分离,以免被他们对事情应该如何发展的知识所蒙蔽。但这真的意味着你不能自己测试软件吗?可能其他人更自然地适合这样做,但是您当然可以努力减少自己盲点的大小和范围,以便在情况下您可以更有效地测试自己的代码。你可能正在做一个充满激情的项目,或者是一家初创公司的唯一技术成员 — 你不会总是有选择。
让我们来看看一些技术,这些技术将帮助您更有效地测试软件,无论是由您还是其他人编写的。这些都是实际的方法,你可以练习并变得更好。
探索性测试
探索性测试是寻找创造性的,奇怪的方法来破坏软件的想法。您会发现的一件事是,用户具有惊人的能力,可以以您无法想象的最不可能,最愚蠢的方式使用软件。“我打了saved,然后将水倒入磁盘驱动器,保存不起作用。
你想培养梦想用户可能会做的疯狂事情的能力,并问自己会发生什么。一个很好的方法是观察不精明的用户使用你的软件,或者任何软件。他们会做奇怪和意想不到的事情-你不会做的事情-你可以记下它们,并将它们作为对你自己的软件做事情的想法。访问QA人员或用户支持人员的论坛,以发泄他们遇到的愚蠢的事情,并使用这些。建立一个清单,你可以启动你的东西。
陷阱测试
除了开发一套骨头的使用场景来抛出你的软件之外,你还应该了解普通用户会犯的常见错误。这些不是让你做双重尝试的事情,而是一直在发生的事情,不会让任何人感到惊讶。
用户是否在电话号码字段中键入了文本?用户是否不小心连续四次点击 “支付”?任何字段留空?这些是常见的软件错误,您应该对其进行分类,并养成使用自己的软件的习惯。如果你经常练习,它将成为第二天性。
关于边缘案例
的推理
边缘情况与常见的陷阱有微妙的不同。边缘情况是您的软件围绕代码的特定,有意义的值的行为方式。例如,在我们的电子表格示例中,您可能已将软件设计为处理电子表格输入中的最大行数。如果你接受10,000行,养成测试9,999、10,000和10,001行的习惯,看看它的行为。如果它得到了这三个权利,它极有可能得到4,200和55,340权利。
挑选边缘案件让你最物有所值。你会养成用最少的努力找到最多可能的bug的习惯。
有帮助,不是万无一失
的
建立一个武器库的东西扔在你的软件会让你更有效地测试自己的东西。这是一项宝贵的技能,你应该发展。但是,归根结底,没有什么可以替代你的工作。使用这篇文章中的技术作为让其他人测试它的补充-而不是替代。