首先寻根究底要看的是敏捷开发的定义以及特点:
简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
简单的叙述下敏捷开发的历史:
敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。敏捷开发(agile development)概念从2004年初开始广为流行。
敏捷开发的特点是什么?
1.个体和交互胜过过程和工具
2.可以工作的软件胜过面面俱到的文档
3.客户合作胜过合同谈判
4.响应变化胜过遵循计划
软件是人写的,所以不完美。既然不完美,那么就必定有缺陷。从这个意义上讲,软件测试是永恒的,只要软件存在,测试就不能避免。既然有了敏捷开发那么敏捷测试也就应运而生了,那么何为敏捷测试?
首先敏捷测试是敏捷的一种,原有测试定义中通过执行被测系统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念还是适用的。
敏捷测试是遵循敏捷宣言的一种测试实践:
1、强调从客户的角度,即是从使用系统的用户的角度,来测试系统。
2、重点关注持续迭代的测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。
3、建议尽早开始测试,一旦系统某个层面可测,比如提供了模块功能,就要开始模块层面的单元测试,同时随着测试深入,持续进行回归测试保证之前测试过内容的正确性。
测试不仅仅是测试软件本身,还包括软件测试的过程和模式。产品发布后才发现很多问题,很可能是软件开发过程出了问题。因此测试除了需要确保软件的质量,即软件做了正确的事情,以及软件做了应该做的事情以外,敏捷的测试团队还要保证整个软件开发过程是正确的。
敏捷开发的最大特点是高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈。敏捷测试即是不断修正质量指标,正确建立测试策略,确认客户的有效需求得以圆满实现和确保整个生产的过程安全的、及时的发布最终产品。敏捷测试人员因而需要在活动中关注产品需求,产品设计,解读源代码;在独立完成各项测试计划、测试执行工作的同时,敏捷测试人员需要参与几乎所有的团队讨论,团队决策。作为一名优秀的敏捷测试人员,他(她)需要在有限的时间内完成更多的测试的准备和执行,并富有极强的责任心和领导力。更重要的是,优秀的测试人员需要能够扩展开来做更多的与测试或许无关,但与团队共同目标直接相关的工作。他(她)将帮助团队其他成员解决困难、帮助实现其预期目标,发扬高度协作精神以帮助团队的最终获取成功。需要指出的是,团队的高度协作既需要团队成员的勇敢,更需要团队成员的主动配合和帮助。对于测试人员如此,对于开发、设计人员,其他成员也是如此。