定价计算器是该系统的重要组成部分。它必须经过严格的测试以确保它在不同的情况下都能提供正确的价格.如果我们通过用户界面来测试定价系统,使用类似webdriver/Selenium的工具,或者任何其他根据下图所示流程驱动浏览器逐个访问内容的工具,我称呼这些模块为焦点区域。
在定价方面,会有好几个场景,也许几十个,有时甚至几百个不同因素的组合,可能会影响支付金额。这意味着在我们对价格计算器进行测试时,我们将要多次访问这些模块。换句话说,当我们测试定价计算器模块时,所有的都是焦点区域。
下面就是我是如何想到提出这个比喻的…在光学上,特别是在电影和摄影,有个叫景深的概念:
“景深(DOF)是在一个场景中可取得清晰图像的最近和最远的物体之间的距离。”
因此,将其引申到软件测试中:
“测试深度(DOT)是一个测试的执行过程中需要访问的最近和最远的软件模块之间的距离”。
在这里有必要指出定义中提到了“软件模块”,这不一定指的是一个“类”(OOP),或者一个“功能”(FP)。模块是执行系统中的一个小功能的逻辑实体。它可以是一个完整的定价计算器,业务规则验证或简单的字符串连接功能。每个系统将其尺寸不一的模块。
确定了上述定义后,如果我们想测试上面提到的定价计算器,我们应该保持焦点,并在不同层次对其进行测试,而不是通过用户接口,在这种情况下也就是浏览器。如果我们这样做的话,我们就能做到浅层测试。
我所学到的和观察到的是,越是浅层的测试,维护就越是便宜,执行也越快。