没有真实的开发环境就能充满信心地进行开发


12

我最近受雇于一个涉及与多个第三方“企业”系统一起工作的项目。由于我想这是建立忠实的生产环境副本所需要的天文成本和精力,因此拥有真正的开发环境的前景似乎越来越渺茫。

这当然不是理想的。从好的方面来说,我认为必须有一些人安全地将软件测试和部署到像这样不可复制的环境中,我很可能会跟随他们的脚步。

那些有效处理此类情况的人是如何做到的?


1
虚拟化,具有“类似于”环境等...本质上,尝试以较小的规模复制您可以复制的内容,以至少覆盖系统的大多数“活动部分”。
Oded

6
您必须依靠企业系统API的正确性并进行大量集成测试,也许需要使用一些测试帐户。
罗伯特·哈维

@RobertHarvey在这里死了。有人应该在回答中对此加以阐述,但这正是您所需要的。在没有手动测试系统的环境的情况下,您所能做的就是自动测试代码。
Jimmy Hoffa 2013年

1
好的,所以也许有个很重要的观点,那就是,如果您不能拥有完整的开发环境,那么在生产环境中进行测试帐户可能是下一个最好的选择。
杰森·斯威特

Answers:


9

在现实世界中,这种情况一直存在。 我认识一个人,他写的应用程序可以控制巨大的农业温室-通风,供暖,湿度控制,您就是这么称呼。他没有“测试温室”,但是他有该公司提供的用于构建实际硬件系统的模拟器程序。如果代码在模拟器上正确运行,则假定它在真实设备上正确运行。在极少数情况下,模拟器被证明是错误的,但这是温室硬件公司要处理的问题,因为它无法正确模拟。


OP似乎没有“模拟器”的保证。同样,在您的情况下,如果模拟器出现故障,您的同事的雇主可能会要求赔偿。在类似情况下,OP可以做什么?麻烦保险公司吗?
K.Steff,

4
如果OP没有模拟器,那么他需要获得一个模拟器-乞求/窃取/借阅/建造-并不重要。模拟器需要有多出色-这是他需要决定的事情,如果他觉得有必要,他可以/应该与保险公司谈谈称为赔偿的小事。
mattnz

3

在这些情况下,API文档,接口控制文档和仿真器至关重要。在我之前供职的一家公司中,这种情况实际上发生在某个集成阶段的项目中经常发生,其中某个阶段已经准备就绪,但其他阶段已经落后,正在开发其他功能,或者由于某些其他原因而无法部署他们的细分受众群的最新版本到我们的测试系统。因此,是的,实际上我们确实对测试过的生产环境做了忠实的复制;但是,实际上,所有段都无法按计划进行准备,但是在开发开始之前就已经同意并锁定了接口,并且创建了可以在很大程度上模仿其他段行为的仿真器。

另一个答案是,模拟器是使测试能够在部署之前进行的工具。一个好的模拟器;但是,取决于定义明确的界面和文档。


1

我一直在这种情况下。

您当然不需要与整个应用程序进行交互,但是可能需要与某种接口进行交互。确保您已确认并详细说明了这些接口,然后仅设置这些接口的模型以验证添加/更改的代码是否按预期的方式工作。

您也可以进行混合。尝试复制您可以轻松完成的部分,然后“连接”到实际系统(如果您可能的情况)。我已经取得了一些成功-在某些情况下,我的逻辑和服务器软件在本地运行,但是我仍然可以连接到真实的ERP系统以验证指令等。这并不理想,但很少有。

鉴于您只有一个生产系统可以使用-请注意,您不能仅计算建立副本所节省的任何开发时间,但必须考虑将大量未经测试的代码与实时业务数据一起使用所带来的业务风险。您的代码将不如针对副本测试的代码可靠。系统可以关闭一段时间吗?如果发生数据损坏,是否可以将其还原?费用多少?

企业中的最佳实践是在建立生产环境时放置一个副本(或多个副本)。那时,额外的花费不会那么大。


1

我们的系统可与许多大型外部系统一起使用。如果我们没有完整的端到端设置,则在测试它们时会结合以下方法:

  • 记录-回放真实数据。记录真实数据(来自真实外部系统的请求/响应),必要时对其进行参数设置并重播
  • 构建或购买充当外部系统的模拟器
  • DSL,用于生成测试数据。对于数据驱动的系统,编写高级DSL以生成测试数据。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.