GUI测试的工具有很多,他们的原理基本上都相同。通过一个系统级别的钩子(hook)监视您的测试执行过程,并且记录下来,这是捕捉过程;在下次 测试时将其记录的消息发送出去完成了回放过程。理想的情况下,在测试过程中如果将所有的操作都记录下来,当测试人员操作过程中发现问题,需要重现一下, 只要将系统恢复到操作以前的状态,然后回放已经记录的测试过程,运气好问题应该会重现了。但是实际上,并不是这么简单,因为工具记录的只是机械的操作, 而测试人员在实际测试时是带有思想在进行测试的。比如测试人员做某个操作,发送命令之后,等待系统返回执行结果,系统返回一个成功的对话框,测试人员将对 话框关闭了;此时工具记录的只包括测试人员构造数据发送命令的过程以及关闭对话框的过程,但是测试人员等待的过程工具并不理解,工具只是记住我们那时候可 能等待了2秒,为什么是两秒,工具不知道了。如果测试人员拿这种脚本进行回放,往往不能达到我们的目标,因为工具在等待那个对话框时,那个对话框没有及 时出现或者出来的是失败的对话框,或者在目标对话框前面还有其他的对话框等等,工具面对这些情况将可能无法处理。

为了弥补工具的这一缺陷,需要通过自动化测试设计将测试人员在测试过程中思考的过程加入到脚本中,使得测试工具具备一定的‘判断’能力和‘思维’能力,自动测试设计的主要工作是通过设计让自动测试工具拥有这种能力。

自动化测试设计的步骤,不足之处请指教:
1、整理要进行自动测试的项目
2、将这些测试项目的测试过程细化
3、进行自动测试设计
4、编写脚本,脚本的表达方式记不住怎么办,可通过录制的方法看自动生成的脚本,还有是看帮助。
5、运行调试
6、归档整理
7、应用

从上面的过程看,软件自动化测试并非仅仅是录制脚本这么简单,它也有一套完整的流程。以上只是一点体会,
不对之处,还请指正。