产品环境
产品环境是应用程序正式上线时的环境。产品校验测试就在这个环境中执行,同时会做一些度量以检验测试成果。瀑布项目和敏捷项目在这里的区别不大。在敏捷项目中,发布过程会尽力做到自动化,为向产品环境中频繁发布提供条件。
产品环境应该考虑以下几点:
1、在应用程序正式上线之前,在产品环境中做回归测试。
2、要做度量,以检验测试成果,例如在前三个月到六个月之前,用户报告了多少问题,问题的严重性如何。
无论是哪种项目,要保证时间期限,就都得做到在需要用到环境的时候就有一个环境可供使用。瀑布项目会设法遵守严格的计划,便于对环境做安排。敏捷项目的灵活性更强。也许有了足够的功能就可以进入试机环境了,或者业务人员会决定产品提前上线。为了做到向试机环境快速部署,然后进入产品环境,就要有系统集成环境以及有关过程的辅助。
问题管理
问题包括缺陷(bug)和变更请求。瀑布项目有着严格的缺陷和变更请求管理,而敏捷项目饱含变化,所以就没有那么严格的变更管理。如果需要有变更,就创建一个(或是一些)故事,放到待处理事项里面。高优先级的故事会放到下一次迭代中完成。
缺陷管理在敏捷项目中依然适用。如果有人发现一个正在开发故事有缺陷,大家就会进行非正式的沟通,发现缺陷的人把它告诉开发人员,缺陷立刻被修复。如果某个缺陷并不属于当前迭代中开发的故事,或者属于当前故事,但并不严重,那就用缺陷跟踪工具记录下来。这个缺陷会被当做故事处理;也就是说,会创建一张故事卡,让客户排优先级,放待处理故事里面。团队需要进行权衡:要找问题所在,为大家理解这个问题并安排优先级提供足够的信息,但又不能在一个对客户而言优先级并不是很高的缺陷上面花太多时间。
瀑布项目和敏捷项目的缺陷内容(描述、组件、严重程序等)是一样的,除了一个字段以外:敏捷项目多了一个字段- 业务价值,如果可能的话就用币值描述。这个字段表示如果缺陷被解决的话可以带来多少业务价值。将业务价值跟缺陷关联以后,客户就更好地判断这个缺陷跟新功能相比是不是更有价值,是不是应该有更高的优先级。
工具
所有项目都要用到工具,只是程序不同。瀑布项目用工具来强化过程以及提高效率,这有时会造成冲突。敏捷项目用工具辅助提升效率,与过程无关。在敏捷项目中,所有的测试都应该可以在任何团队成员的个人环境中运行,也就是说,所有人都可以使用那些自动化测试用例的工具。所以敏捷项目中会经常用到开源产品,这又意味着使用这些工具需要不同的技能。开源工具不像商业工具那样有齐备的文档和完善的支持,用这些工具的人要有很强的编码能力。如果有人编程能力偏弱,就可以通过跟人结对来提升个人技能。在敏捷项目中也可以使用商业工具,但是大多数商业工具在开发的时候都没有考虑敏捷过程,所以敏捷项目匹配起来就不太容易。而且要让商业工具跟持续集成配合,可能要写很多代码才行。
项目中应该考虑为下面一些测试任务使用工具
1、持续集成(如CruiseControl, Tinderbox)
2、单元测试(如JUnit, NUnit)
3、代码覆盖率率(如Clover, PureCoverage)
4、功能测试(如:HttpUnit, Selenium, Quick Test professional)
5、用户验收测试(如:Fitness, Quick Test Professional)
6、性能测试(如:JMeter, LoadRunner)
7、问题跟踪(如:BugZilla, JIRA)
8、测试管理(如:Quality Center)
报表与度量
度量数据是用来衡量软件质量和测试成果的。在瀑布项目中,有些测试度量指标需要在测试之前就把所有测试用例都写好,而且仅在应用程序开发完毕时进行一次测试。这种指标包括:每个测试用例执行的时候发现多少缺陷,每天执行的测试用例会发现多少缺陷。这些度量数据收集起来以后,便用来判断应用程序是否已经就绪并可以发布。在敏捷项目中,功能完成的时候测试用例就已经写好且运行完毕,这就意味着用来度量瀑布项目的一些指标是无法应用在这上面的。