企业Web应用中的敏捷测试和瀑布测试

发表于:2012-8-20 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  简介

  同是企业WEB应用程序项目,一个用敏捷,一个用瀑布流程,它们的测试策略会有何不同?在二者中,测试的关注点都在于告诉业务客户这个应用程序做了哪些事情,同样也要消除应用程序作为产品交付以后的失败风险。它们的主要区别不是测试本身,而是何时执行测试、由谁执行测试。测试的每个阶段都可以在系统就绪后随时开始,无须等待前一个测试阶段完成。

  从未涉足敏捷项目,或是刚启动某个敏捷项目并在寻找指导建议的读者都可以看看这篇文章,它正是为你们而写。文中的信息虽并非笔者新创,但也是收集整理的结果,希望这些信息能帮助你们朝着更为敏捷的过程迈进。

  敏捷项目的测试阶段跟瀑布项目的测试阶段几乎毫无二致。每个阶段都有准出标准,但是在进入某个测试阶段之前,是不需要等待整个应用程序完成的。只要应用程序所完成的部分足以进入下一个测试阶段就行。因为测试的对象是一个已完成的功能,而不是一个发布,所以测试阶段是在持续并行进行的。于是就有了一大堆回归测试。这便也意味着回归测试是测试自动化的基础。对于敏捷项目而言,环境与资源也是要注意的地方,因为对测试环境的需求会来得更早、更加频繁。

  “快速失败”是敏捷项目的一句格言,它的含义是尽可能早地判断出应用程序无法满足业务需求。要做到这一点,就需要不断地对解决方案是否满足业务需求进行检测,一旦不满足,就要尽早把问题解决。敏捷团队成员-开发人员、测试人员、架构师、业务分析师以及业务代表等人都关注于尽早交付业务价值。所以,测试需要所有团队成员协力来做, 它不仅仅是测试人员的责任。

  测试分类

  敏捷项目跟瀑布项目的测试分类几乎是一样的。其差别主要在于大部分精力投入的地方和每个测试阶段所执行的时机。敏捷项目倾力关注单元测试功能测试,从而为稍后执行的测试阶段创造出高质量的代码,于是后期就不会发现本应在早期发现的缺陷,并能专注于所需要测试的领域。而瀑布项目就有一个常见的问题,后期测试的焦点总是放在找出本来应该在前期发现的缺陷身上。于是修复缺陷的成本提高了,测试工作的投入翻番了,测试的关注点也偏离了。

  瀑布项目和敏捷项目另外一个巨大的不同在于测试自动化。敏捷项目力求在所有测试领域内都达到100%自动化。测试跟持续构建系统集成在一起,于是当代码发生变化时,这个变化会被自动检测到,应用程序被构建起来,然后所有的测试都会被执行。

  测试驱动开发(TDD)在敏捷项目中很常用,用这种方法的时候,测试用例比代码要先一步创建。于是我们就可以越来越多地看到为代码和功能创建的测试用例。用自动化测试来驱动开发,然后消除重复,这种做法可以保证无论复杂度多高,任何开发者都可以写出可靠的、没有bug的代码。TDD常用的地方是单元测试,但也同样可以用于功能测试、集成测试、用户验收测试和性能测试

  单元测试

  单元测试又称白盒测试,它要测试所开发出来的每一个模块。瀑布项目不关注这个测试阶段,而且大多数时候即便有的话也是随意为之。敏捷项目强调单元测试,而且会把所有单元测试都自动化。自动化的单元测试是敏捷项目的基础,对持续集成和重构起辅助作用。

  单元测试应当考虑以下几点:

  1、用stub和mock来消除对外部接口的依赖。

  2、由创建代码的开发人员编写单元测试。

  3、单元测试要能自动化执行,而且要被包含在持续开发构建中。

  4、单元测试之间不能有依赖,让每一个单元测试都能独立执行。

  5、任何开发人员都要能在他自己的机器上执行单元测试。

  6、用代码覆盖率来判断哪些部分的代码没有被单元测试覆盖。

  7、在检入代码的修改之前,要保证单元测试100%通过。

  任何测试失败都表示构建失败。

  功能测试

  功能测试常常跟系统测试相关联,它的重点是测试应用程序的功能(包括负面测试和边界条件)。在瀑布项目中,测试团队一般是在这个阶段开始测试工作。测试团队的成员会一直等下去,直到开发者完成了所有的功能,并通过所有的单元测试之后才进入功能测试阶段。 敏捷项目把功能拆分成故事,每次迭代开发一定数量的故事。每个故事都有一些验收标准,这些标准一般都是由业务分析师和测试分析师制定的,它们也可以看作跟测试条件类似。测试分析师会根据验收标准创建测试用例,用它们来检测代码行为的完成程度。故事一旦编码完成,而且单元测试运行通过以后,就可以运行功能测试来判断是否满足验收标准了。这就意味着在敏捷项目中,只要第一块功能已经完成编码,功能测试就可以启动,而且会贯穿整个项目的生命周期。

  功能测试应当考虑以下几点

  1、要能自动化执行,并且进入持续构建(如果测试运行时间很多长,也可以只在开发持续构建中包含一小部分精挑细选的功能测试,而在系统集成持续构建中包含全部功能测试)。

  2、在编码之前写下测试意图,代码完成后对测试进行实现。

  3、把通过所有功能测试作为故事完成的条件。

  4、在应用程序安装到另外一个环境(如试机环境或产品环境)上的时候需要执行功能测试。

  任何测试失败都表示构建失败。

61/6123456>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号