自动化测试: 真的是银弹?(2)

发表于:2015-12-23来源:uml.org.cn作者:不详点击数: 标签:自动化测试
这个小例子让您换个角度看待自动化了吗?现在,定义自动化对于您和您的团队意味着什么是至关重要的。然后您就可以使用该定义开始构建一套自动化准

  这个小例子让您换个角度看待自动化了吗?现在,定义自动化对于您和您的团队意味着什么是至关重要的。然后您就可以使用该定义开始构建一套自动化准则,从而团队中的每个人都可以使用相同的方法、快速评诂一项任务是否适合应用自动化。

  创建自动化测试准则

  此处列举了您定义自动化和制订准则时可以考虑的一些策略和事项:

  确定自动化测试的"用武之地"

  将所有工作中的特定部分作为应用自动化的候选对象。

  从高度冗余的任务或场景开始考虑。

  将乏味且人工容易出错的工作进行自动化。

  首先关注开发成熟、理解透彻的用例或场景。

  优先选择应用中相对稳定的部分,而非易变的部分。

  通过使用数据驱动的测试技术来提高自动化功效(增加测试覆盖的深度和广度)。

  指派几位专家负责自动化,不要让测试团队的每个人都做这项工作。

  牢记不要追求100%的自动化,手工测试仍然至关重要。

  计划进行更多的测试

  将重复的测试自动化,为其他方法的测试赢得更多时间。

  增加试探性测试。

  增加配置测试。

  构建更多的自动化测试。

  进行更多的人工测试,特别是在高风险特性方面。

  谨慎规划:将人工测试和自动测试分工,不能全盘自动化。

  每一次设计都要设计所有的测试和文档。如果某项自动化测试无法运行,确保它能够手工完成。

  将自动化视为一种投资

  训练使用者充分利用自动化工具。

  构建一个可重用代码库。

  保持测试模块化,大小控制在一定范围内,这样易于维护。

  文档化测试脚本(代码),以备校验和重用。

  强化备份过程。

  利用源代码控制。

  认识到自动化是一项软件开发工作,通常需要代码生成。

  逐步实施自动化测试

  不要尝试一天内实现所有测试的自动化。积累经验,循序渐进。

  从整个测试计划的一小部分开始,逐步添加至自动化测试集合。(即以实际的、受控的方式递增)

  自动化还能为我做什么?

  尽管自动化测试需要在前期的策划和培训上进行一笔不菲的投资,但确实能从几个大的方面带来增益。它能为您带来如下利益:

  更高质量的软件-因为您能够花费更少的时间和资源进行更多的测试。

  更完备的测试覆盖的潜力。

  更多的时间投入到其他测试活动中,包括:

  详细计划。

  精心地设计测试。

  构建更复杂的测试(数据驱动,增加用于条件分支和特殊报告的代码等)

  更多的人工测试,不是更少!

  自动化测试还为您提供无形价值,它能给测试人员带来:

  获取新技能的机会(即建立技能和学习技能的机会)。

  在测试中了解更多关于系统的知识的机会,因为自动化能揭示系统内部状况,如对象属性和数据。(对系统的更多理解造就更好的测试人员)

  现在您已知道什么是自动化测试以及它能胜任哪些工作,我希望您能运用这些知识为您的产品进行更多更好的测试。尽管自动化测试不是银弹,但它仍不失为一件优秀工具;如果能够将其应用于适合的工作,将为您带来巨大收益。

  参考资料

  您可以参阅本文在 developerWorks 全球站点上的 英文原文。

  关于本文部分主题的更多信息,请参阅Cem Kaner的网站上的下列文章。网址:http://www.kaner.com/articles.html

  1. "Architectures of Test Automation"

  2. "Improving the Maintainability of Automated Test Suites"

  3. "Avoiding Shelfware: A Manager's View of Automated GUI Testing"

  致谢

  感谢Cem Kaner提供参考链接中文章。 同样感谢IBM Rational的Ted Squire,和Satisfice, Inc.的James Bach仔细评阅本文,并在写作中给予帮助。关于Satisfice及其广受赞誉的测试讲座的更多信息,请访问www.satisfice.com。

原文转自:http://www.uml.org.cn/Test/200502013.htm