互联网行业已进入小步快跑快速迭代的趋势。一个新版本的上线,不仅需要移动端测试,更需要进行服务端的测试。服务端的测试可能比移动端的测试更重要。服务端比移动端更复杂交互更多也更考验技术了。
接下来给大家看一张在2012年淘宝核心链路的应用拓扑图,给大家看一下真实的后端服务是什么样子的。
如此复杂的后端服务,光靠前端的手工测试和UI测试是远远不够的。看到上面的拓扑图,也不难理解为什么黑盒测试使出了洪荒之力,但总是会有漏网的bug了。而且如何判定一个bug属于前端还是后端服务,真的是太考验测试人员了。于是,原本应该是 “守门员” 的测试人员变成了一上线就「背锅」的 “背锅侠” ,真的是谁苦谁知道啊!
做为一个测试人员,该如何保证一个项目可以顺利进行呢?有哪些工作是低投入高产出?毕竟:一个员工不能给公司带来剩余价值就可能被优化。但如果能够低投入高产出,升职加薪也是指日可待的(谁不喜欢能赚钱的员工呢?反正我喜欢)。
而说到投入产出比,就必须提到马丁福勒(page object模式的发起者)在个人blog中提到的一张图,很形象的将移动互联网的流程简化成如下的图。
我们通常所说的点点点,属于UI层。在整个测试过程中,UI层所占的维度低。可以是手工测试、UI测试、自动遍历等。在做UI测试的时候,UI 的执行相对比较慢,发现 bug 比较晚,bug 修复成本会比较高。这时候需要大量的人力物力,有的时候投入甚至高于产出。
Unit单元测试一般由开发进行编写。国内研发能做好单元测试的非常少,有的产品甚至都没有单元测试。基于这种现状,底层的代码产品也得不到有效的质量保障。
而在 UI 和 Unit 之间的接口测试就显得特别重要了。不仅在行业内有成熟方案,而且可以更早的发现问题进行质量反馈。在Service层进行充分测试,是通过UI测试很难触达的,只有接口测试才能触达,是测试&交付之间的范畴,属于服务端的测试。
即然接口测试是测试&交付之间的范畴,而且在Service层只有接口测试才能触达,在单个模块中,只有做好接口测试,才能保证质量。