The notes of How We Test Software At Microsoft(5)

来源:互联网 发布:oracle9.2启动数据库 编辑:程序博客网 时间:2024/05/22 00:07

Chapter 10 Test Automation 测试自动化

具体的环境决定了自动化测试的价值。有些时候,自动化每一个测试都是合理的。其他时候,完全不用自动化测试却可能是合理的。Sometimes it make sense to automate every single test. On other occasions, it might make sense to automate nothing.

自动化还是不自动化需要考虑以下因素:

  • Effort 投入:确定创建自动化测试的投资回报率(Return On Investment, ROI)的第一步是确定要花费的投入和成本。
  • Test lifetime测试的生命期:对测试的长期价值的评估是决定是否对某个特定的场景或者测试用例实现自动化的考量的一部分。要考虑被测试产品本身的使用寿命和产品开发周期长度。
  • Value 价值:对于一个生命周期很长的产品,不断增长的回归测试套件有很大的优势,随着底层软件功能越来越复杂,存在大量的能够确认以前工作的功能能够就工作的测试极为有用的。
  • Point of involvement切入点:许多成功的测试自动化项目都是测试团队从最开始就参与了。代码写到尾声或者完成之后才开始想到加入自动化测试的项目通常都是失败的。
  • Accuracy 准确性:好的自动化测试在每次运行后会报告准确结果。

当被测试功能正常,而测试用例汇报验证失败的时候,通常称为误报(false positive report.测试报告了一个错误(即测试为阳性,positive,但实际上并没有错误存在(即测试的阳性报告是假的,false)。反过来,当一个测试用例汇报验证通过,而被测试的软件功能其实有问题,称之为漏报(false negativefalse pass)。

User Interface Automation

在微软,用于界面自动化的主要方法是绕过演示层,直接使用底层的对象模型,或者用相似的方法来操纵用户界面的核心逻辑。有些情况下,用户界面自动化通过模拟鼠标点击和击键直接与UI互动。

介绍了MSAAMicrosoft Active Accessibility)和Microsoft UI Automation

What’s in a Test? 自动化测试包括了什么?

Keith StobieMark Bergmanz在他们的文章《how to automate testing:the big picture》中用缩写“SEARCH”来描述测试自动化的组成部分。“SEARCH”代表的是Setup(设置),Execution(执行),Analysis(分析),Reporting(报告),Cleanup(清理)和Help(帮助)。

·         设置:将软件准备好,让实际的测试操作可以执行。

微软:制作镜像。

·         执行:测试的核心,包括检验软件功能的特定步骤,充分的错误处理

微软:使用Test Harness

·         分析:确定测试是通过还是失败的过程。

微软:

Test Result TypesPass, fail,skip,abort,block,warn

·         报告:报告包括分析结果的显示和传播。

·         清理:将软件返回到已知状态,使接下来的测试能继续执行

自动化测试应该尽量将运行环境回归到测试运行前的状态,以保证后续的测试能正常运行,失败的测试反映的应该是产品中的问题,而不是前面测试留下的垃圾数据或环境设置的结果。环境清理对于那些需要很长时间设置测试环境的用例尤其重要。

一个折中的办法是在所有的自动化测试用例后加上环境清理的步骤,同事重复运行另一组测试,不作环境清理的步骤。

·         帮助:测试用例在其生存周期中保持可维护性和健壮性的帮助系统。