一、敏捷开发/测试的特征
1. 敏捷开发提倡迭代式和增量式的开发模式,并强调测试在其中的重要性。
敏捷开发模式的三个特点:依赖客户的参与、测试驱动以及紧凑的迭代开发周期。
2. 敏捷测试是协同测试的一种形式,它要求每一个人都参与到测试计划的设计、实现和执行中去。客户通过定义用例以及程序属性参与到定义验收测试的设计中来。开发者和测试者共同打造可以进行功能自动化的测试配件。敏捷测试往往伴随着大量的沟通与协作工作。
3. 敏捷开发下的测试与传统测试的不同点:
1)意识从发现Bug转变为预防Bug出现,从越多发现Bug转变为越早发现Bug。
2)在测试前期:
①全程参与需求讨论,帮助需求和开发对需求有正确和共同的认识。如主导更多的用户场景、异常讨论等。
②测试的用例有优先级,针对性编写用例。
③在测试中,与开发直接交流、灵活应对变化,什么bug是重要的,什么可以后期做,分清楚Bug 的优先级。最高的优先级是“用户使用最多”以及“最容易发生bug”的场景交集。
④测试产出:测试用例、测试报告。
⑤缩短测试时间,更多使用自动化,如Selenium,fitness 的使用。
4. 敏捷开发的两种常见模式
1)TDD测试驱动开发
TDD的基本思想就是在开发功能代码之前,先编写测试代码,然后只编写测试通过的代码,从而以测试来驱动整个开发过程的进行。这有助于编写简洁可用高质量的代码。
2)BDD 行为驱动开发
BDD是对TDD理念的扩展,TDD重点偏向开发,通过测试用例来规范约束开发者编写出质量更高、BUG更少的代码。而BDD更侧重设计,要求在设计测试用例时对系统进行定义,并用通用语言(如story形式)将系统的行为联系起来,将系统设计和测试用例结合,以此为驱动进行开发工作。
二、极限编程与测试
极限编程模型是主流敏捷开发方法之一,这种轻量级的开发过程主要把目光集中于沟通、计划以及测试。极限编程中的测试成为“极限测试”。极限测试在极限编程中的地位非常重要,需要首先创建单元测试和验收测试,然后才能创建代码库。一旦代码库发生变更,就需要进行单元测试。在重要的发布结点,由客户来执行验收测试。