如何确保生产中的企业应用的质量?

日期: 2014-02-24 作者:James A. Denman翻译:邹雅玲 来源:TechTarget中国 英文

与应用程序通过强度测试但投入生产之后不久就出现坏损这件事情相比,没有几件事情能让应用程序开发人员更生气的了。在2013年JavaOne上,被誉为Java Champion和Java Rock Star的Adam Bien解释道,大多数测试内容在现实生活中都不会发生。Bien认为,在单元和集成测试证明其功能独立工作后,真正的测试才刚刚开始,此时软件强度测试才开始。

单元测试可以检测到功能的核心内容。集成测试确保组件A能很好的与组件B相配合。可以这么说,两种测试仅仅关注于该应用程序在实验室里的代码运行情况。要想发现其在现实工作中是如何运行的,应用程序开发团队就需要对其原件进行更广范围的强度测试。

Java巨星Bien认为,问题是单元测试和集成测试一般都是单线程运行,但是从来没有在现实工作环境中运行。Bien说:“QA有时只有80%的单线程编码,但是在运行应用程序服务器之后,就不会再出现单线程的状况了。”

为了顺利通过质量保证的检查,单线程覆盖是非常重要的。如果在实验室中,一种功能没法正常工作,那么在现实工作环境中也不会使用该功能。当你将每一个部位和每一个集成单元分离开时,就可以非常容易找到问题的所在。然而,即使在独立测试环境中证明过应用程序可行,但是在作为企业应用程序以前,也必须经过高强度的测试。

为什么要使用强度测试?

强度测试的目的是要找出应用程序在单独实例中没有出现但却存在的缺陷。Bien说:“强度测试有助于找出重要的并发故障或者存储问题。”他同时提到,当他发现项目出现问题时,主要的问题都是通过强度测试检测出来的。他强烈建议使用软件强度测试。“让一个学生完成以下任务:‘整晚上,在超过服务器限制的巨大负载量环境中工作。’”

如果没法处理学生发来的服务请求,那么下一个要做的事情就是实行自动化。Bien指出自动化并不是什么新话题,不断发展的集成技术也仅仅是IT变革的合理结果。他说:“实际上,IT行业就是关于自动化和流线化的工作。我们这些开发人员如果不能将我们开发的程序进行流线化和自动化处理,那么就真的太奇怪了。”

在Bien看来,不断的集成就是有条理地进行最大自动化并将人为错误降到最小程度。这些观念在企业中会比你想象的更加普遍。根据Bien所说,即使Java EE项目还没有完全实行自动化流程,但是目前约90%都在应用CI服务器。自动化的一个优点就是强度测试,跟未来可能出现的其他类型软件测试一样,可以添加到现有的电池测试中。

或许并非必须做到自动化测试和持续部署,尤其对于组织来说,这些都不是处在企业级别上的活动。持续集成需要一定程度的硬件投资,但是一些组织却不愿意或者不能提供所需投资。即使对于企业来说,获得恰当的硬件都非常困难。Bien说:“没有任何的投入,你会使用不恰当的机器进行强度测试。管理者认为CI服务器可以运行在虚拟化486CPU中。”

没有全套CI情况下的强度测试

即使Bien指出硬件问题是最值得关注的,但是其他问题也同样值得关注。持续集成同样也需要投入合理的时间。不仅仅是QA团队需要关注软件强度测试,开发人员和操作人员也需要关注该问题。所有这些自动化测试都必须经过开发和编码,硬件需要进行维护。对于组织来说,一下子都做到是非常困难的,Bien建议可以一点点地完成。他说:“由简单易做的事情开始,不要追求那么完美,只要做到强度测试就很好。”

记住,软件强度测试非常重要的一件事就是应用程序一定要与负载量仅仅的联系到一起。考虑到任务的重要性,你可以好好考虑,然后一遍遍地做。不要放弃应用程序修复的机会,如果放弃了,你实际上会破坏应用程序。Bien说:“强度测试非常有必要,这样你可以了解到,在高负荷量的环境中应用程序的运行情况。”

如果你仍然不想做任何软件强度测试工作,Bien认为你只能:“将应用程序投入生产,并默默祈祷。”

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐