实战 GUI 产品的自动化测试,第 3 部分:如何提高测试结果分析的效率

发表于:2012-7-23 10:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:孙沛 陈晓鹏 陈海泉    来源:51Testing软件测试网采编

分享:

  例 8. 构造控件的调用栈

NControl.<init>(ControlID,String,INControl)
NPushButton.<init>(ControlID,INControl)
DlgReplace.getClose()

  2、调用控件方法时,记录调用栈,从中取得第一次调用时的方法名。

  例 9A. 点击按钮时的调用栈

NPushButton.click(Point)
NPushButton.click ()
script2.testMain(Object[])

  例 9B. 操作控件时的调用栈

NComboBox.click()
NComboBox.clearText()
NComboBox.setText(String)
script2.testMain(Object[])

  当执行自动测试到 DlgReplace.getClose().click() 时,函数调用栈如例 9A 所示。显而易见,最后调用的 click 方法,对应了该次操作。然而大多数情况并没有这么简单,比如在文本框中输入文字时需要执行若干子步骤,包括点击控件,清除文字,和输入文字。这些步骤都在 setText 方法中调用。如例 9B 所示的调用栈。控件的方法可能会相互嵌套,只有第一次调用,才是最便于理解执行步骤的。我们在 click 函数里分析调用栈,能知道调用 click 方法是为了往控件上输入文字,然后记录成 setText。值得注意的是,如果把每个调用栈都转成步骤输入到日志的话,会包括重复并且很有歧义的信息。这就需要引入一个机制避免重复输出。我们的解决办法是每次输出时,将调用栈每行的行号都记录下来。下次输出时把当前的跟原先的比较,如果是一致,表示属于同一次操作,直接忽略掉。

  3、记录传入的参数。这个很容易理解,比如调用 setText("hello") 时,把 hello 记录下来。

  通过上述三步,我们就可以获得操作步骤的信息。有了这些信息后,需要在合适的位置调用日志函数,将步骤输出到日志中。在 Notes 项目使用的控件库中,所有 Notes 控件有一个基类,这个类定义了 click 方法,控件库的其它类都是由它继承而来。因为几乎所有的 UI 操作都会直接或间接地调用 click 方法,我们只需要在 click 函数开始的时候,组合上面说的四项信息成测试步骤,然后调用日志函数把测试步骤输出到日志文件中。在这里,我们给出的只是基本原理,您可以结合自己项目实际的特点,实现这一功能。

  总结

  提高测试结果分析效率和自动化测试过程同样重要。本章从测试用例的准备开始,由浅入深地介绍了如何优化测试用例,用例如何记录日志,以及日志能提供什么功能,各个功能又是如何实现。在最后,我们还介绍了自动记录测试步骤的基本原理。希望能够为您提供改进测试日志的思路和指导。在本系列的下一章,我们将会为读者介绍控件库的设计和使用,其中也会介绍录制用例和自动生成对象定义的基本原理,敬请期待。

相关链接:

实战 GUI 产品的自动化测试,第 1 部分:简介

实战 GUI 产品的自动化测试,第 2 部分:构建利于维护的自动化测试系统

66/6<123456
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号