想要开发移动应用的企业会面对许多不同的供应商以及不同的开发工具。从一开始的开源到现在的专有、VAR选择过程,我们需要考虑许多细节。开发和测试平台中出现了一种相对新颖的概念“生态系统”,然而,这种移动化同时也带来了一系列新的复杂影响因素。例如,移动开发和测试所带来的新功能以及非功能性需求会对设备、操作系统、网络和用户行为构成一种挑战。一个好的开发环境和测试工具必须考虑到所有这些干扰因素。基于这一思想,Server Side向Perfecto Mobil的创始人兼***执行官Erin Yaniv询问了一些关于如何在开发中做出明智决策的注意事项。
企业应该关注移动IDE的哪些特点?
Java开发人员非常愿意看到他们所钟爱的编程语言仍然被认为具备基本的编程功能。Erin指出,选择HTML或者基于web的IDE(例如Titanium)后,开发人员将不能再使用本地语言进行编程。“我认为在相对成熟的开发环境中,这种外部的、非本地的IDE还不够灵活。例如在Eclipse和Xcode这种一直沿用到现在的开发环境中,开发人员就可以实现与集成商以及外部市场工具的互动。我个人建议开发人员应该采用本地IDE,这样可以提供Java或者Objective-C开发环境。”
企业不走这种发展路线会怎样?
“如果你确实选择了非本地化的IDE,那么,接下来当IDE不支持Objective-C或者Java语言时,你就必须要解决开发中所面临的许多要重要问题。你打算如何发展SDLC?如何进行性能测试?又如何进行功能性测试?当我们用另外一种语言开发本地代码时,我们又将如何更新源代码呢?”
时下许多流行的平台称,可以通过简单的混合方式来解决网络与本地代码之间的矛盾。使用这种开发工具,程序员可以在HTML5中编程,然后在客户端上按下一个按钮就可以输出本地代码。但是,从企业的角度来看,这种方法也许不会满足太多的定制化需求,也不会作为一种长期的发展方式。在抉择过程中,我们的头脑中一定要有一个全面的ALM策略,这一点是非常重要的。
选择移动测试工具时需要考虑哪些因素?
Yaniv表示,“持续集成”将会是企业移动开发过程中需要考虑的重要问题,并且已经成为一种现实问题。“我和Jenkins一同见证了集成的开始阶段。起初,在进行开发的同时,具备了测试的能力,如单元测试,然后进行测试的同时又形成了持续集成功能,这些都是非常重要的开发过程。企业应该建立一种可以让后端系统与IDE进行沟通的交流平台。这样做所带来的最直接的好处就在于可以更早地进行测试以及更快地成为SDLC的一部分。”
接下来,Yaniv提醒道,企业所精心挑选的移动开发商必须同时具备功能性和非功能性测试的能力。“测试平台必须要将性能、监控、可见性以及安全性所有这些因素都考虑进去。因此,才能在CI环境中保证与IDE能够进行顺畅沟通。”再次强调下,一个性能良好的移动程序不可能以代码作为开头发或者结尾,其中要包含许多内容和过程。
云在其中会起到什么样的作用呢?
根据Eran所说,移动开发所涉及到的***一个关键因素就是规模问题,要同时具备缩、放的功能。“你不可能通过一次操作就扩大移动应用的测试范围,要不断向移动项目提供支持,或者同时进行多个开发项目。你需要提前考虑如何扩大测试范围,如何在应用程序中添加其他功能,如何支持更多的设备或者操作系统。”他提到,云测试平台在解决以上这些问题方面具有绝对优势。企业利用云计算的灵活性,可用一些虚拟环境取代固定的基础设施。
在云环境中进行移动测试或许是非常受开发人员欢迎的一种选择。然而,云环境中没有必要存在这种流动性的开发平台。Eclipse Orion项目的开发者Ken Walker向我们解释了为什么这种类型的平台会落后于其他平台。“在iOS和Android这样特殊的操作系统中,云开发平台工作人员并不能掌控所有工具链。有许多许可模式对应用程序的打包方式或者所使用的开发工具类型都有一定的管理要求。”考虑到要解决这些现实问题,企业仍然需要寻找一种介于传统方式和云方式之间的混合解决方案,从而使移动开发或者移动测试能够实现每一个系统的***运行状态。