测与试,在我看来,是两种不同的测试方法和思维方式,两者相辅相成、缺一不可。“测”是科学,它有行之有效并广为接受的方法论去指导测试人员分析测试需求、设计测试策略和用例并执行测试,是有效测试过程的基础、是测试人员的基本素养。“试”是艺术,它是在“测”的基础上,发散性思维、自由随机操作、探索性发现问题的过程。来源于个人经验积累、对产品和bug的敏感度。探索性测试的理论对我们也许是新鲜的名词,但在我们自己的测试过程中,或多或少都有和这些理论相契合的实践吧?
对于新手,测是入门之道,纯粹只有试就如同无头苍蝇,逮着bug算幸运,没碰到大多会认为是开发质量高,还自以为测试充分了。因此,个人建议新人从基础学起,从详细的用例设计和手动执行开始做起。这样,即使设计或测试不充分,也可在基于这些有形输出物的评审中,发现自己思维广度和深度上的局限性,并在实践中成长。
但对产品或者同一类产品比较熟悉、有丰富经验的测试来说,测与试的效率、测与试的结果,也许是见仁见智的问题。在“测”基础上的“试”,对于以发现bug为目的的测试过程而言,是必不可少的。“测”能发现常规思维下的功能bug,但谁能保证我们的用户都是常规思维呢?“测”能发现计划场景下的性能瓶颈,但谁能保证我们自以为没有问题的逻辑事务没有性能问题呢?“测”能用扫描工具和常规方法找到安全性漏洞,但如果仅仅是这样,哪还有黑客存在的空间?
作为一名软件测试人员,我们需要方法论作为指导,保证测试过程有个可以信赖的基本覆盖范围。但我们更应该鼓励“试”,也许这会在“测”之外额外增加工作量,但我相信在“试”的过程中发现的bug,其数量和严重程度都对得起这些额外付出的工作量。甚至可以进一步说,“试”的敏锐性、能力、技巧,更能体现一名测试人员与其他人相区分的价值。