软件测试蕴含着有效性和风险性的矛盾,而测试人员需要对这样的矛盾进行自我评估,从而获得最优平衡。软件测试的有效性和风险性贯穿着整个测试周期,有效性和风险性首先体现在一种测试理念的较量上。虽然,当问一个测试人员什么是软件测试,他可能会回答测试就是发现缺陷。但当需要测试一个项目的时候,许多测试人员总会想去验证所有的功能都是正常的,逻辑是正确的,这样就会大大降低测试的效率。有时测试人员(比如我)会在心里做一些自我斗争,结果就可能去冒风险第采用一些创新或极端的手段去提高测试效率,但其实只是试图去验证了所有的功能的正确性,从而牺牲了测试的效率。
通过阅读一些相关测试的书籍可以了解到,在制定测试策略,测试计划的时候,有效性和风险性的矛盾可能更为突出。如何减小测试范围,抓住测试重点是需要技巧和经验的,技巧和经验是提高测试有效性的一个方法,但是有时候会忽视风险,降低测试的质量。
设计测试用例的时候,如果我们将每一个条件、每一个环境、每一个数据和每一个路径都写入测试用例的话,那么这个测试用例将是巨大的,虽然降低了风险但降低了测试的有效性,而且有可能会使得测试变得代办,弱化他们的创造力和想象力。如果测试用例写得很粗糙,测试人员可能会有发挥的空间,会觉得测试十分有趣,但是会增大测试的风险。因此学习探索性测试对于降低测试风险来说是一个有用的事情。测试用例不是越多越好,而是需要根据测试目标、适量需求和软件产品本身的特点来决定。