[发明专利]一种基于事件模拟的用户界面测试方法及装置有效
申请号: | 201110004784.1 | 申请日: | 2011-01-11 |
公开(公告)号: | CN102073590A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 欧阳先伟 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市威世博知识产权代理事务所(普通合伙) 44280 | 代理人: | 何青瓦;李庆波 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 事件 模拟 用户界面 测试 方法 装置 | ||
【技术领域】
本发明涉及用户界面测试领域,特别是涉及一种基于事件模拟的用户界面测试方法及装置。
【背景技术】
随着互联网的广泛应用,网站上的网页的内容、布局、样式常常需要变动,这导致在项目的升级过程中,由前端用户界面的变动而引入的新缺陷(BUG)数量越来越多,在其他的软件产品中也同样存在这样的问题,即用户界面的修改会导致项目的新BUG,因此需要有一种比较好的测试方法可以对用户界面进行有效测试。
目前已有的测试工具,主要有两种类型:第一种类型是简单模拟鼠标轨迹,即测试脚本为鼠标经过的坐标轨迹和在轨迹上的点击。在这种方式下,当用户界面布局有所改变的时候,鼠标点击的轨迹也需要随之变化,所以测试脚本就得完全重做。第二种类型是基于事件模拟对用户界面进行测试,即模拟在用户界面的控件上发生的各种事件。通过判断用户界面的控件对模拟的事件是否能够正常响应,就能够发现用户界面是否存在错误。由于这种方式针对的测试对象是控件,而控件是可以随着布局改变的,这种方式可以有效避免用户界面的布局发生改变后,测试脚本必须完全重做的情况发生,但在现有技术的这种方式下,基于事件的模拟仅是简单模拟,即只是在某个需要测试的控件上模拟一个简单的浏览器事件,却不考虑事件与事件之间、事件与控件之间、控件与控件之间的关联性,例如:在按钮A上模拟一个单击(click)事件,再在按钮B上模拟一个单击事件,这两次模拟是割裂开的,而实际上,鼠标不可能凭空从按钮A飞到按钮B,在这两次单击事件之间,一定还发生了鼠标移动事件,由于不考虑事件与事件之间、事件与控件之间、控件与控件之间的关联性,很可能会出现测试的事件没有发生错误,而与测试事件相关的其他事件却发生错误但正好没有被测试到的情况。以上例来说,有可能对按钮A的单击与对按钮B的单击都没有出错,但是从按钮A移动到按钮B时,用户界面却出现了错误的响应,由于没有测试这种情况,所以也就无法发现这个错误。仅靠人工去考虑所有需要测试的控件与事件是非常困难的,很容易发生遗漏,也就是说,现有技术的基于事件模拟对用户界面测试的方法很容易出现漏测的情况。
请参考图1,图1为现有技术中基于事件模拟进行用户界面测试的方法的流程图。首先步骤11接收测试用例,测试用例中描述了需要测试的事件以及事件发生的控件。步骤12根据测试用例发出无逻辑关系的简单事件模拟请求,所谓的无逻辑关系是指每个测试的事件之间是割裂的。步骤13直接根据步骤12中的请求调用上层工作环境接口创建事件。步骤14记录在事件发生过程中的运行日志。在这种方法下,测试方法本身对测试逻辑是否合理不做判断,在什么控件上模拟什么事件,完全由测试人员自行决定,这增加了测试人员的工作量,也很容易出现漏测的现象。
【发明内容】
为了解决现有技术中基于事件模拟进行用户界面测试中很容易漏测的问题,本发明提供了一种基于事件模拟的用户界面测试方法,具体技术方案包括以下步骤:
步骤1:接收测试用例,所述测试用例包含需要测试的事件的类型说明以及事件发生的控件的类型说明;
步骤2:根据测试用例发出当前事件模拟请求;
步骤3:判断当前事件的合理性及完整性,并根据合理性及完整性对当前事件进行处理;
步骤4:通过调用上层工作环境接口创建当前事件;
步骤5:记录当前事件的运行日志。
根据本发明的一优选实施例,所述步骤3包括判断控件的可操作性。
根据本发明的一优选实施例,控件不可操作的情况包括控件被隐藏、控件被覆盖或控件被剪裁。
根据本发明的一优选实施例,所述方法在控件不可操作的情况下返回false值并结束当前事件模拟请求。
根据本发明的一优选实施例,在控件可操作的情况下所述步骤3还包括判断当前事件是否可分解及判断当前事件与上一个创建的事件之间是否存在需要补充的事件。
根据本发明的一优选实施例,在当前事件可分解的情况下,所述方法还包括对当前事件分解后得到的一系列事件逐一发出当前事件模拟请求。
根据本发明的一优选实施例,在当前事件与上一个创建的事件之间存在需要补充的事件时,所述方法还包括对需要补充的事件发出当前事件模拟请求。
根据本发明的一优选实施例,在当前事件不可分解且与上一个创建的事件之间不存在需要补充的事件时,所述步骤3还包括将当前事件保存为上一个创建的事件。
本发明还提供了一种基于事件模拟的用户界面测试装置,包括:
接收单元,用于接收测试用例,所述测试用例包含需要测试的事件的类型说明以及事件发生的控件的类型说明;
请求单元,用于根据测试用例发出当前事件模拟请求;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110004784.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于ZigBee技术的无线电子显示标签系统
- 下一篇:恒动型回转煅烧窑