如何用虚拟现实(VR)控制你的测试环境?
我从接触软件测试开始就认识了Parasoft。Parasoft的一个厉害之处在于,该公司非常注重帮助各种规模的组织通过使用其持续质量测试套件开发软件解决方案实现合规性和高水平的质量。不过本文并不是要告诉你Parasoft做过哪些很酷的事情,而是要和你分享我最近的一个观察。
绘制测试环境图
每隔一段时间,我们就会收到客户关于他们项目的一些反馈。最近,我听到我们的一个长期客户分享他们如何使用我们的测试解决方案。我对他们的应用产生了极大的兴趣。你们中的一些人可能会熟悉或者听说过Leopard 2坦克。
Leopard 2 Tank - 来源:KMW
在战争中,坦克的历史比较短。它们最早在20世纪初被广泛使用。在几十年的时间里,进行了重大改进,包括引进技术。在技术方面,今天有很多东西可以说。
我发现特别有趣的是,训练机组人员的过程与软件的发展有着相似之处。
根据文章《训练:战斗成功的基础》:
当设计一个军事战斗训练计划时,一般有三个组成部分:
- 任务本身——期望由谁/什么人完成的任务。
- 条件——完成任务的环境(如白天或夜晚,移动或静止,是否具备全部能力,是否受到敌人的严重抵抗)。
- 标准——预期完成任务的能力和效果水平(如已准备就绪和可用的系统的百分比、击毙的敌人、击中目标的准确率)。
考虑到这些训练内容,有什么方法可以将一群不同的士兵转变为一支战斗力强的队伍,为各种可能的遭遇做好准备?
测试环境:实战与虚拟
训练军事小组的传统方式,也是仍然有效的方式,是在野外,在真实的天气条件和实弹的实际环境中进行。这种训练的缺点是成本很高。
此外,许多遇到的条件是不可重复的。当任务没有达到标准,无法再次尝试时,这会让人非常沮丧,因为无法控制训练环境中的条件。
等待合适的季节或将训练转移到不同的地点是一项耗费成本和时间的工作。
早在20世纪80年代初,美国军方就意识到,如果能够控制训练时的条件,就能提高训练的效率和效果。因此,SIMNET在1986年实现了。
SIMNET将允许多个机组人员在一个完全控制的虚拟现实(VR)环境中接受严格的训练。你大概可以想象,对环境以及环境条件的完全控制,让机组人员可以接触到许多不同的场景,为他们在实战中需要完成的任何一项任务做更好的准备。
训练室里的战斗机模拟器。
这一切与软件开发有什么关系?
作为一名开发人员,你需要制作工作软件。软件组件通常必须与其他软件集成或交互。这通常发生在一个叫做生产的“敌对”环境中。
在生产中,软件需要能够处理许多不同的场景,许多场景我们都可以准备。你是否认识到与军队提供训练有素的机组人员完成任务的平行关系?
在不同的季节或不同的地理位置,不可能执行相同的训练课程(左)。有了VR(右),你只需按一下按钮就可以改变训练条件。
用军事作为软件开发的比喻。左边的团队在被测系统(SUT)上工作,无法控制上下游系统及其行为。通过为SUT引入VR(也就是服务虚拟化),团队消除了不需要的影响,现在完全可以控制上下游系统的行为。
为现实世界开发软件
在开发软件时,你希望应用程序在暴露于现实世界之前尽可能地做好准备——就像一个坦克车组一样。软件的所有组件必须像一台运转良好的机器一样运作。
你设计的软件要能处理所有预期的情况,并能处理意外的情况。这就需要回答一些问题:
- 如果你给软件施加了巨大的压力会怎样?
- 如果其中一个组件丧失能力怎么办?
- 如果发生了意想不到的事情,你还能实现既定的目标吗?
没有准备的代价可能是灾难性的。
我们如何才能让软件开发超越现实的限制?
很多企业在发布软件之前,浪费了很多资源,仍然无法交付经得起考验的软件。我们需要突破只能针对实际环境进行测试的想法。我们已经迈出了一些步伐。现在是时候向前跃进了。
就像军队使用虚拟现实来控制他们的环境条件一样,开发组织也可以利用服务虚拟化来达到同样的效果。
利用服务虚拟化控制你的测试环境
通过对测试条件的控制,你可以更容易地全面测试和验证应用程序的任务,并确保它符合部署的必要标准。这将带来更低的成本、更高的生产率和更快的生产交付。
幸运的是,我看到越来越多的组织采取了第一步,通过采用服务虚拟化来获得对其开发和测试环境的控制。你是否对如何控制你的环境感到好奇?想知道什么是适合你的正确采用策略吗?
请联系我,进一步讨论这些关于测试环境模拟的想法。