敏捷开发倡导的是迭代式和增量式的开发模式,并且强调测试在开发过程中的重要性 。主要是围绕以用户为中心,以客户需求为导向的开发过程,这个过程有一个特点是“随时有变化”。虽然敏捷开发引入了灵活性,但其中的重点还是在于客户满意度。客户是敏捷过程的关键环节。如果,客户能够有所参与,并且客户了解到开发对于他们参与的欢迎,那么有助于增加客户对终产品和开发team的信心和满意度。如果客户由于其他原因不愿意参与进来,那么选择传统的开发流程更好。敏捷开发有三个比较明显的特征:依赖客户完成,测试驱动和紧凑的开发周期。
  敏捷测试 Agile Testing
  敏捷测试是敏捷开发中的测试,属于协同测试的一种。敏捷测试要求每一个人都要参与到测试的设计,实现和执行中,客户通过定义用例以及程序树形参与到定义验收测试的设计中来。开发和测试合作打造可以进行功能自动化的测试配件。敏捷测试需要每一个人的参与,所以对沟通和协作要求比较高。敏捷测试依赖于自动化测试,因为测试的周期短,时间宝贵,自动化测试比人工测试更可靠。而测试者不仅仅发现问题并反馈给相应的开发,更重要的是通过持续的测试反馈推动项目前行,帮助开发修改bug,改变需求设计以及其他的一般性质量提升。
  敏捷测试的特点:
  1 强调从客户角度进行测试
  2 重点关注迭代测试新功能,不强调测试阶段,不强调单元测试,系统测试等测试阶段的划分
  3 强调尽早测试,不间断测试,具备相应的条件开始测试
  4 强调持续反馈,测试发现的问题,状况等反应给相关的同事
  5 预防缺陷重于发现缺陷
  6 开发和测试是紧密合作的,大家都对软件有责任
  7 计划随着进展时常调整
  8 所有阶段都需要自动化的参与,每个人都需要做,是项目集成的一部分
  9 团队合作是无缝合作,没有严格区分开发团队和测试团队。团队的相关角色及时知晓研发的现状并及时改正
  基于脚本的测试Scripted Testing (ST):完全参照测试用例来进行测试,测试用例的编写也会十分详细。按照需求文档进行详细的设计,具有可预见性。
  探索式测试Exploratory Testing(ET):完全抛开测试脚本的测试,更自由。更多的是一种测试风格,一个测试思维。
  敏捷软件开发宣言
  个体和互动 高于 流程和工具
  工作的软件 高于 详尽的文档
  客户合作 高于 合同谈判
  响应变化 高于 遵循计划
  (左侧的价值高于右侧的价值,但后者并非完全没有价值)