首页 / 软件开发 / 数据结构与算法 / 10大准则令完美的开发/测试实验室成为可能
10大准则令完美的开发/测试实验室成为可能2015-01-09你是否拥有一些实现超敏捷软件开发所必备的特质?创业公司Ravello Systems探讨了通过将云规范化,来构建梦寐以求的开发/测试实验室的关键准则。在这样一个竞争优势与业务敏捷度近乎画上等号的世界中,现实情况是,企业往往需要非常多的时间投入,来开发和测试驱动业务的种种软件。在软件开发中,超敏捷要求基础设施和自动化不仅与开发进程保持一致,而且还要对加速循环和改进整体质量产生实质性帮助。在开发/测试工作负荷具有猝发性和短暂性本质的大前提下,要想打造一套理想的完全部署在本地的实验室,可以说在经济上是不可行的。然而现在借助将云规范化的新技术,对大多数企业来说,与超敏捷开发和测试之间的距离正在被不断缩短。这里给出的10项准则,它们将有助于推动开发/测试实验室涅槃重生。尽管时至今日,依旧几乎不可能实现在打造这个“梦寐以求的实验室”的同时又不至于投入许多花费,然而借助各种最新的技术,很容易构建这个理想的实验室:它不止能够提升软件质量、加快投放市场的步伐,还能够减少整体成本。
1.敏捷开发/测试具有猝发模式的特点,并且实际上要求无限的基础设施资源池
典型的软件开发和测试现在都得到了自动化处理,但是由于资源方面的制约因素,并不是所有的测试都能够并行进行。对任何企业来说,让开发/QA团队等待测试结果,需要付出极其高昂的代价——这不仅仅是一种低效行为,还会使得企业在业务竞争中输给更加敏捷的对手。在理想场景下,开发者应该无须等待,就能够访问资源池,而且该资源池在他的角度看来是无穷无尽的——不论是公有、私有还是混合云,因此任意数量的测试都可以立即且并行地进行。2.开发者应该享有基础设施的自服务渠道
要想完全利用潜在的近乎无穷尽的资源,工程师需要能够:通过预先定义的许可,以按需、自服务的方式访问资源池,而不是等待IT为每个请求逐一配置资源并授权访问。3.使用产品复制品进行测试的能力
从Ravello针对开发/测试工程师、IT管理员、自动化工程师和DevOps进行的调查来看,多达75%的架构师和IT管理员都意识到了:创建开发/测试环境过于复杂且耗时,而且这些环境并不能代表产品。尽管每个人都能够认识到对速度的要求,但同时我们也不要忘记,软件质量是另一个同等重要的方面。特别是在非常灵动地环境中,要想确保最终结果始终具有高质量,测试产品的复制品固然颇具挑战,但却是至关重要的事情。例如,如果我们拥有一个本地VMware环境,并且想要在亚马逊AWS云服务上测试这些应用,那么两种类型的环境之间应该是完全无缝的。4.基础设施应该在应用层面进行自动化
基于单独的快照和副本,手动复制复杂的多虚拟机应用,是一件繁琐且容易出错的工作,而且当涉及到复杂的网络配置时更是如此。在理想情境中,应该能够通过简单的一次点击,就完整复制多虚拟机应用及其网络。5. 持续集成——从应用到基础设施
通过持续集成,开发者在提交代码时,应该能够拥有应用的多个实例(产品复制品),并且在同一时间里运行一系列完整的集成测试。开发者需要即刻获得反馈,以了解测试的功能在类生产环境(production like environment)中工作良好,或是出现了问题并需要修订。作为支持持续集成的绝佳工具,Jenkins得到了广泛运用。然而要想成功使用,需要将它与底层基础设施设置紧密地整合,以用于无缝的端到端自动化——从代码到硬件。6.身处各地的开发和测试团队能够便捷地协作
设想一下,一位QA找出了某个Bug,他不需要打断或推迟其他正在进行的测试工作,就能够邀请开发者检查或调试相同的应用实例——不论二者身在何方。这种快速访问和分享将加速开发/测试循环,并提高团队协作。