敏捷测试管理探讨-(3敏捷测试的测试策略)

上一篇 / 下一篇  2012-06-12 15:53:59 / 个人分类:敏捷测试

3、敏捷测试的测试策略

制定测试策略包括确定测试工作的组织、选择策略及实现等事宜,它可为结构化测试奠定重要的基础,以形成一个可有效管理的测试进程。通常来说,为了尽可能利用好资源和时间,测试策略应着重测试系统的主要方面或者主要部分。对于敏捷测试而言,其测试策略还必须能及时、持续的响应客户的需求变化,不断修正质量指标,确认客户的有效需求得以满足和确保整个生产过程能安全的、及时的发布最终产品。敏捷测试的测试策略可重点综合考虑以下几个方面:

1)基于风险的测试策略(Risk-based testing strategy)

软件产品的风险度可以通过出错的严重程度和出现的概率来计算,测试可以根据不同的风险度来决定测试的优先级和测试的覆盖率。

一般风险分析流程包括:列出软件的所有功能和特性;确定每个功能出错的可能性;分析某个功能出错或欠缺某个特征,对顾客的影响程度;计算风险度;根据可能出错的迹象,来修改风险度;决定测试的范围,编写测试方案 。

基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。如图2所示,横轴代表影响,竖轴代表概率,根据一个软件的特点来确定:若一个功能出了问题,它对整个产品的影响有多大?这个功能出问题的概率有多大?若出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,若时间比较紧的话,则可以考虑不测试。通过基于风险的测试策略可以有效评估需求变化带来的影响,由此确定测试优先级和覆盖率,对提高测试生产率和灵活性都具有很大的实践意义。

2)自动化回归测试策略(Automated regression testing strategy)

自动化回归测试就是运行自动化测试代码来验证当前的修改没有破坏已有的功能。它可以发生在单元测试功能测试,集成测试等当中,当代码发生任何变动的时候,所执行的测试都可以称之为一次回归测试。对于敏捷开发过程,迭代模式使代码量逐步累加的同时,靠后的迭代所面临的整合测试压力和测试任务将会越来越大。为了提高测试效率,敏捷测试需要测试人员能够随时启动自动化的回归测试,对马上发布的迭代代码进行快速验证。所以在敏捷测试过程中,为了缩短开发迭代周期,提高测试效率,应该扩大自动化回归测试的比重。

但是,自动化脚本也可能因为迭代目标和对象的差异性需要大幅修改。而重新构造和改变测试脚本带来的代价和成本也非常大。特别在敏捷测试中,由于项目范围不清晰、反复迭代以及需求的频繁变化等问题将导致产品变化之大给自动化测试带来难度也陡然增加。因此,敏捷测试中,应基于每个迭代自身的收益来计算自动化测试的成本收益。一般来说,敏捷过程中迭代次数越多,运行次数很多的测试用例可进行自动化脚本开发。而对于产品的质量缺陷而言,当质量缺陷越少,质量越好的产品,自动化开发成本收益也会比较大。反之,则致使自动化开发成本较大,成本收益下降。

自动化在早期的敏捷开发项目中十分困难,但是随着开发系统的发展和演变,它可调动自动化测试方式,此时测试工具的选择对于提高效率和敏捷开发的质量变得尤为重要。传统的“录制-回放”的测试方法一般要等到软件开发工作做完由自动化测试团队执行,所以不适合应用于敏捷过程。在敏捷测试中,选择自动化测试工具时必须考虑以下几个因素:

* 要支持“首先测试”的方式,自动化测试工具必须支持测试驱动开发(TTD),可立即进行自动化测试;

* 可实现测试的业务实质内容与实现细节相分离,并增加自动化脚本的可维护性;

* 在自动化测试需要编码的部分,支持并鼓励最佳编程实践;

* 支持使用真正的开发语言或集成开发环境(IDE)来编写自动化测试代码;

* 促进协作,使开发人员、测试人员、设计人员等都可以通过可自动化形式进行测试支持;


TAG:

 

评分:0

我来说两句

Open Toolbar