用于QA测试的后门API - 好还是坏?

时间:2015-06-21 22:21:56

标签: java rest testing

为了质量检查测试是不是有好的想法?

我们正在从头开发应用程序,我们一直在创建后门API以简化QA的工作。这些后门做了许多事情,比如改变服务器的日期以模拟时间的进展等等。我对此非常喜欢。这些后门的数量几乎可以与将在生产中使用的真实API相媲美。

这是推荐的方法吗?这样做的明显好处是它可以使质量保证的生命变得更加容易。我可以看到许多缺点,比如维护这些测试API的功能,确保这些后门API不会在生产中公开。

如果其他人使用过这种方法,那么有哪些好的方法可以确保这些API不会在生产中暴露出来?

对于那些反对这种方法的人,有没有其他方法可以让QA的工作更容易?

谢谢

2 个答案:

答案 0 :(得分:1)

如果它没有导致QA错过问题,那么这是一件好事;如果你能在以后没有成本的情况下轻松完成工作,那就去做吧。

但是,通常只要您测试一个API但使用另一个API,您就不会真正测试正在投入生产的真实API。如果QA围绕正常的API进行了攻击,那么他们也应该测试黑客和现实世界之间的差异。

在这种情况下,听起来他们有辅助方法来修改状态,以启用测试。如果不是这样做的好方法,他们所做的事情可能会非常合理......或者,至少,可能有更好的方法来花时间改善事情。 / p>

但总的来说;是经常(反复)导致他们错过他们应该抓住的错误吗?

答案 1 :(得分:0)

您使用的构建系统是什么?

对于任何具有任何时间/调度逻辑的软件,我认为使用名为' currentTime()的方法添加名为SystemClock的类非常重要。'

在我们的Android项目中,我们从Gradle变量注入开始时间,然后我们可以确定代码无法通过移位时间进入生产(因为该变量仅针对调试版本定义)

对于我们的iOS版本,我们可以使用扩展程序。这真的是一个很好的方法,因为它只编译到测试范围。然后它用移位的方法替换getCurrentTime方法。

Java世界中的另一个选项是Aspects。它们可以方便地在生产中没有的测试版本中进行mixins。