6.6. 测试类型
测试类型有很多,客户和开发团队共同确保系统测试涵盖了项目所需要的不同类型的测试。
对于大多数的系统来说,故事测试主要是功能性测试,用来确定应用程序是如预期一样的运行。不过,也应当考虑其他类型的测试。
示例如下:
- 用户交互测试,确保所有用户交互组件如期工作
- 可用性测试,确保程序好用
- 性能测试,测量应用程序在各种负荷下的工作状况
- 压力测试,使应用程序在用户和事务的极限情况或其他任何让应用程序处在压力的情况下运行
测试的是缺陷,而不是覆盖率
在一个敏捷的、由故事驱动的项目中,测试并不像很多团队那样是一个对抗性的活动。发现缺陷时,不应该有“被我逮到了吧”这样的心态。
在敏捷开发中,若有缺陷直到系统投产的时候才被发现,团队成员是不应该互相推卸责任的。高度协作的团队以及“我们共同负责”的心态能防范这种事情的发生。
在敏捷项目中,测试的目的是发现并消除缺陷,所以没有必要追求100%的代码覆盖率或测试所有边界条件。我们运用我们的直觉、知识和过去的经验来指导测试。
选择最合适的人来执行测试。客户应定义验收测试,但是需要开发人员和专职测试人员的帮助和信息。
随着时间的推移,通过频繁的沟通和观察哪些类型的测试经常出现问题,项目中所有人都可以知道测试重点在哪些地方。