不要为了证明程序能够正确的运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误,然后测试程序,发现尽可能多的错误.
摘自《软件测试的艺术》
背景:开发提测一功能,页面上输入手机号,点订购,跳转到支付宝支付页面,支付成功后跳转到第三方应用页面。
开发告诉我,这个功能很简单,只要能支付成功,成功后能正确跳转就OK,当时测试主管也在,她也说那就验证一下,没问题就回复邮件测试通过。
对于这种涉及到金钱的功能,我一向是比较谨慎的,怕出问题。正常能支付以外,又简单测了下支付取消、支付时返回,取消后再支付的情况,发现了几个问题(不是金额方面的),但这也给我一个警钟,简单的功能实现起来不简单,必须要考虑周全。
回想以前工作中,也经常会有这种情况发生,别人告诉你这很简单,如果你信了,那么很可能会出问题。测试人员应该保持一颗好奇怀疑的心,而不是别人说什么就是什么。
在看《软件测试的艺术》这本书时,对软件测试心理学中提到的这段文字,一开始觉得没有太大区别,也就是文字游戏。经过这件事,我对这段文字有了新的认识,这真的是心理上的区别,心理决定一个人行为。我们做事都是目标驱动的,如果我一开始目的是为了证明程序中不存在错误,那就会潜意识去实现这个目标,做测试时也会尽可能选择导致程序失败的数据;相反,如果目标在于证明程序中存在错误,测试时设计的数据就有可能发现更多的错误。
以上,时刻提醒自己,因为有时一不小心就掉坑里了。。。