具体的环境决定了自动化测试的价值。有些时候,自动化每一个测试都是合理的。其他时候,完全不用自动化测试却可能是合理的。Sometimes it make sense to automate every single test. On other occasions, it might make sense to automate nothing.
自动化还是不自动化需要考虑以下因素:
当被测试功能正常,而测试用例汇报验证失败的时候,通常称为误报(false positive report).测试报告了一个错误(即测试为阳性,positive),但实际上并没有错误存在(即测试的阳性报告是假的,false)。反过来,当一个测试用例汇报验证通过,而被测试的软件功能其实有问题,称之为漏报(false negative或false pass)。
User Interface Automation
在微软,用于界面自动化的主要方法是绕过演示层,直接使用底层的对象模型,或者用相似的方法来操纵用户界面的核心逻辑。有些情况下,用户界面自动化通过模拟鼠标点击和击键直接与UI互动。
介绍了MSAA(Microsoft Active Accessibility)和Microsoft UI Automation。
What’s in a Test? 自动化测试包括了什么?
Keith Stobie和Mark Bergmanz在他们的文章《how to automate testing:the big picture》中用缩写“SEARCH”来描述测试自动化的组成部分。“SEARCH”代表的是Setup(设置),Execution(执行),Analysis(分析),Reporting(报告),Cleanup(清理)和Help(帮助)。
· 设置:将软件准备好,让实际的测试操作可以执行。
微软:制作镜像。
· 执行:测试的核心,包括检验软件功能的特定步骤,充分的错误处理
微软:使用Test Harness。
· 分析:确定测试是通过还是失败的过程。
微软:
Test Result Types:Pass, fail,skip,abort,block,warn
· 报告:报告包括分析结果的显示和传播。
· 清理:将软件返回到已知状态,使接下来的测试能继续执行
自动化测试应该尽量将运行环境回归到测试运行前的状态,以保证后续的测试能正常运行,失败的测试反映的应该是产品中的问题,而不是前面测试留下的垃圾数据或环境设置的结果。环境清理对于那些需要很长时间设置测试环境的用例尤其重要。
一个折中的办法是在所有的自动化测试用例后加上环境清理的步骤,同事重复运行另一组测试,不作环境清理的步骤。
· 帮助:测试用例在其生存周期中保持可维护性和健壮性的帮助系统。