您的位置:软件测试 >> 测试技术 >> 测试精品文章
提高云计算中的软件质量
作者:Gavlin Pather(泽众软件原创翻译) 发布时间:[ 2014/5/8 14:26:32 ] 推荐标签:云计算 QA 自动化测试

  单元测试
  为了确保开发中的云应用的更高质量,正在做测试的开发人员创建了可应用的单元测试。单元测试提供了一些好处,诸如能够无需等待其他可用单元可进行测试,能够以更低的成本来检测和删除软件故障(比起在后期这么做)。对云应用进行单元测试的一个有效方法是使用各种基于桌面的云环境仿真器,如Microsoft Azure Compute和Storage Emulators,它们使开发人员能够在本地运行并测试他们的云应用程序,而不是部署后再进行测试。然后这些单元测试可以用于进行回归测试了,如果该软件改变了,他们可以早点生效并大限度地减少对系统的不利影响。通常,输入所有的可能去测试一个单元是不可行的,因为输入空间太大以至无限。因此,我们需要一个标准来决定使用什么测试输入及何时停止测试。

  自动化测试
  为了减少手动工作,测试人员或开发人员可以使用可以自动生成测试输入以实现高结构覆盖的自动化测试生成工具。由于云应用程序实际上是依靠云环境的应用程序的,所以一个云应用程序里被测单元的行为是依赖于单元输入及云环境状态的。使用存根云模型可以减轻这些问题。有了这样的模型,可以用(能够给云API方法调用提供一些默认的或用户定义的返回值的)假/存根云环境模拟真正的云环境了。一个图形用户界面(GUI )的自动化测试表现了在基于字符界面未被发现的显著困难;少了很多命令行界面或编程接口(APIs )。图形用户界面往往是由复杂的组件构成,而且往往在开发过程中被不断地重新设计。发布能够识别和操作图形用户界面的测试工具取得了显著成功。Selenium与Sahi是实例。该GUI自动化测试可以由开发人员写或具备适当技能的测试人员写。这些测试用例的深层开发是为了用户体验和正确性。这些测试用例仅表示测试用例中的被操作对象。使用这些工具,你能通过录制和重放或通过写测试代码来创建测试用例。如果编写准确,这些测试可以与在一个连续集成(CI)环境中创建并运行的单元测试集成起来。所写测试将可以和终端用户一样操纵一个浏览器。然而,并非所有的测试用例都可以,因为云的状态和环境不一样。从源(例如:数据库或文件)读取数据,将使得测试以几种不同的方式运行以呈现GUI,这允许文本字段的不同输入和结果的验证,以便能够点击按钮和下拉菜单,并且还能够验证文本及屏幕上对象的位置。如果注意到任何差异,它能够将该问题写入(可以用来验证问题已被挖掘的)日志文件中。它多样且能够在多个浏览器的Web测试中运行,这使你能够拦截缺陷并轻松复制。自动化测试的这两个方法将能够比手动测试快得多地运行测试用例,还能够覆盖更广泛的测试环境和状态。这些测试用例运行期间挖掘的缺陷也可以在终用户交互之前被修复和部署,从而获得更好的用户体验并减少人为错误。

  手动测试
  软件测试的方法可以基于程序的形态及其实现,或两者兼有。所要求的基于形态的测试指导测试用例的选择过程,并提供一种评估测试充分性的手段。另外,基于实现的测试侧重于行使被测程序,因此充分性通常是指覆盖程序结构要素。测试可以在多个粒度级别进行组件测试,集成测试和系统测试。一个更广泛且快速增长的手工测试方法是探索性测试。在某些情况下,它可以比脚本测试更有效率。所有测试人员都会用到某种形式的探索性测试。随着企业寻求更灵活及更具成本效益的方法去开发软件,这种态度开始改变。其高度情境结构可以使它在不经意的观察中看起来没有任何结构。

  “所以说,一段旅程要想够得上探险,必须是可信的并有困难和风险的,还必须要有新发现。像板球一样,对外行解释起来有那么点困难。但有一个元素是重要的,事实上从探索早期开始严格地区分探索阶段并严格采用“探索”一词。很简单,这是对科学的崇敬。”——选自John Keay的《The Permanent Book of Exploration》

  James Bach等人提到:探索性测试某种程度上来说是测试者主动控制测试设计的任一测试,因为那些测试都被执行了并使用了从通过测试设计新的更好的测试时获得的信息。手工测试仍是大多数软件开发工作的高度相关部分。这些人如测试人员的特性(包括创造力,智力,领域知识及有效识别各种问题的能力)使手动测试成为软件测试的重要部分。

  结论
  总之,软件测试作为一项云计算服务是相当新颖的,要放下测试传统或常规方式去适应它,仍需要作出转变。不同类型的测试方法,例如自动化测试,手工测试和单元测试已被用来在云中进行测试时试着达到好的效果。把这些方法结合起来并基于云中还是会留下很多可以改进的漏洞。仍然存在许多漏洞的原因是:需要获得“云测试佳实践指南”。随着越来越多的应用程序迁移到云中,我们对于它们将如何应对在这样的环境下进行以及如何好地测试它们,测试什么,用什么方法测试什么都会有更好地理解。要使用什么自动化工具(如果必须是自动化的),要做单元测试吗,或者它应该是纯手工测试吗,这些问题都是公司需要做出的并具有增值收益的业务决策。
  为了实现云计算中软件的更高质量,需要一种新的关于如何测试软件的思维方式,包括采取什么步骤以获取佳结果。测试的传统方法已经给了测试人员和开发人员许多经验教训,并且随着我们进入一个多数应用程序随处可得的时代,确保所获知识适应且适合云计算成了他们的责任,当然这也是利益相关者和业务管理的责任。

  版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/201458143930.html

  原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd