CN104156308A - 一种基于用户执行踪迹重放的移动应用测试方法 - Google Patents
一种基于用户执行踪迹重放的移动应用测试方法 Download PDFInfo
- Publication number
- CN104156308A CN104156308A CN201410364808.8A CN201410364808A CN104156308A CN 104156308 A CN104156308 A CN 104156308A CN 201410364808 A CN201410364808 A CN 201410364808A CN 104156308 A CN104156308 A CN 104156308A
- Authority
- CN
- China
- Prior art keywords
- user
- event
- trace
- mobile device
- halt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000003993 interaction Effects 0.000 claims abstract description 6
- 230000000694 effects Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000007547 defect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 10
- 238000010998 test method Methods 0.000 description 3
- 241000282693 Cercopithecidae Species 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- NHDHVHZZCFYRSB-UHFFFAOYSA-N pyriproxyfen Chemical compound C=1C=CC=NC=1OC(C)COC(C=C1)=CC=C1OC1=CC=CC=C1 NHDHVHZZCFYRSB-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于用户执行踪迹重放的移动应用测试方法,其步骤包含:记录用户对某移动应用的一次执行踪迹;分析该执行踪迹,并确定若干个停止点;重放应用的执行踪迹,直至某个停止点;从停止点开始,执行自动化测试方法。本发明利用少量的用户执行踪迹信息引导自动化测试过程,以一种简单可行的方式弥补了自动化方法难以处理复杂交互的不足,大大增强了代码的覆盖率,从而提高了测试效率和质量。
Description
技术领域
本发明涉及移动应用测试领域,具体涉及的是一种基于用户执行踪迹重放的测试方法。
背景技术
目前针对移动应用的测试方法主要包括两大类:人工测试和自动测试。人工测试完全借助于人力产生各种类型的测试用例。它虽然可以借助人的力量获得有价值的测试用例,达到更好的测试效果。但是长时间的测试会让测试人员感到枯燥无聊,容易出错。自动化测试大致可以分为Monkey工具和基于模型的测试方法。Monkey是Android***自带的工具,用以随机产生输入事件。该工具无法满足生成大量有效测试用例的需求。而基于模型的方法通过构建GUI相关模型,有序地遍历简单交互能够到达的各个界面,提升了测试效果和效率。但由于移动应用中的GUI事件夹杂大量复杂交互,基于模型的自动化方法遇到了自身不可逾越的障碍。
发明内容
针对现有技术存在的问题,本发明提供了一种基于用户执行踪迹重放的测试方法,能够弥补全自动方法的不足,利用少量的用户信息,处理自动化方法不能解决的复杂交互问题,增强代码的覆盖率,从而提高测试效率和质量。
本发明的技术解决方案是:一种基于用户执行踪迹重放的测试方法,其步骤为:
步骤一:用户执行踪迹记录;
步骤二:停止点识别;
步骤三:重放引擎;
步骤四:自动化测试引擎。
步骤一中,所述用户执行踪迹记录是指记录用户对移动应用的一次执行踪迹。所述事件记录部分的主要功能是记录移动设备的各种传感器输入事件序列;
所述用户是指有一定移动设备使用经验的人群,此类用户可以没有移动平台甚至普通程序开发经验;在用户使用移动设备的过程中,所有的交互都是用户与传感器之间完成,此类交互事件最终都汇集到移动设备***输入处理单元;
所述记录是指深入到移动设备输入处理单元,将其中的所有事件序列保存为用户执行踪迹;
所述移动应用是指运行在移动设备上、能够完成各种任务的程序,一般利用了移动设备的多种传感器来完成复杂交互;
所述移动设备是指口袋大小、一般搭载智能操作***、能够帮助用户完成多种多样任务的便携式计算设备,所述的移动设备典型例子包括智能手机和平板电脑;
所述执行踪迹是指用户在无任何提示信息的情况下,日常使用移动应用所产生的操作输入事件序列,是按照事件发生时间顺序排列。
步骤二中,所述停止点识别是分析执行踪迹,并确定若干个停止点。所述停止点识别部分的主要功能是根据给定原则识别出输入事件序列中若干个应用应该停止的点。
所述停止点是指用户执行踪迹重放时的停止位置;所述停止位置是用户执行踪迹中的某个事件;在按照事件时间顺序排列的用户执行踪迹的基础上,停止点的确定原则为:执行用户执行踪迹中某一事件后,某个新的GUI界面产生,此事件即为停止点;执行用户执行踪迹中某一事件后,某个含有大量GUI元素的界面动态生成,此事件即为停止点;比较用户执行踪迹中相邻两个事件的时间间隔,间隔超过某阈值,此间隔的前事件即为停止点;所述停止点可由上述部分或全部原则识别生成。所述阈值是指若干个显著较大的时间间隔的最小值。
步骤三中,所述重放引擎是指重放应用的执行踪迹,直至某个停止点;具体是指向移动设备写入收集的用户执行踪迹的部分事件序列,其包含:启动应用程序、将用户执行踪迹包含的事件写入移动设备***输入处理单元以达到用户重新操作一遍应用的效果、在上一步确定的某个停止点停止写入;所述输入事件是指移动设备接受到的所有传感器输入信息,包含事件时间、事件源和事件参数信息;所述事件参数信息包括事件类型、代码和值。
步骤四中,所述自动化测试方法是指可以用于移动应用全自动化测试的若干方法;在本发明中,特指随机方法和深度优先搜索方法,可以是已有的或者测试人员自己提出的方法,它们一般都包含如下三步:首先,获取应用在运行时刻的GUI动态布局信息,包括各种GUI元素;然后,在得到的GUI元素信息基础上,根据自动化策略决定下一个输入动作;这里所述的自动化策略可以是随机选择或者是深度优先搜索;最后将输入动作发送到移动设备并执行。
本发明与现有技术相比,其优点在于:本发明将人工测试方法与自动化测试方法相结合,发挥了人工方法善于通过复杂交互探索程序框架的优势和自动化方法长于对特定位置所有状态遍历的特点,大大增强了代码的覆盖率,从而提高了测试效率和质量;从人工参与的成本上看,本发明仅仅需要收集少量的用户执行踪迹,一般需要不超过10分钟的用户参与。
附图说明
图1为本发明工作原理图一;
图2为本发明工作原理图二;
图3为本发明工作原理图三;
图4为本发明工作流程图;
图5为本发明用户执行踪迹示意图。
具体实施方式
以下结合附图,通过具体实施例对本发明技术方案做进一步的说明。
如图1、图2、图3所示,图1为本发明工作原理图一;图2为本发明工作原理图二;图3为本发明工作原理图三;图中树状表示需要测试应用的状态空间;圆圈代表程序状态;边代表各种交互,包括点击按钮、绘制解锁图案等。图1表示收集的一次用户执行,图中101-106代表一次用户执行踪迹;阴影部分107表示用户执行覆盖了五个点;图2是纯自动化方法的情况,受限于虚线110表示的复杂交互,自动化方法大概只能遍历到一半的点,如阴影部分111所示;本发明收集了用户执行踪迹101-106,然后识别出用户执行踪迹中两个事件为停止点,如图3的同心圆所示,从这两个点开始的自动化测试过程覆盖了图中的所有点,即阴影部分121和122,所以,本发明能够大大提高测试代码覆盖率。
如图4、图5所示,图4为本发明工作流程图;图5为本发明用户执行踪迹示意图;本实施例以流行的Android***为例进行介绍。该基于用户执行踪迹重放的移动应用测试方法包含事件记录、停止点识别、重放引擎、测试引擎和移动测试框架五大部分。各部分完成以下四步:
步骤一:记录用户执行踪迹。如图4左侧部分所示,用户在使用移动设备过程中,所有对传感器的操作事件都写入/dev/input/event*(210)中。本步骤读取写入到/dev/input/event*中的所有事件,组成用户执行踪迹211。图5是记录下的两次“按下-松开”时屏幕的用户执行踪迹,每一行代表一个事件,从左往右分别为事件的时间、事件源(设备)和事件参数,事件参数包括类型、代码和值,图5中所述的所有事件都是按照时间戳进行排序。
用户执行踪迹是指用户在操作移动设备的过程中,移动设备所有传感器的输入事件序列。在用户使用移动设备的过程中,所有的交互都是用户与传感器之间完成。此类交互事件最终都汇集到移动设备***输入处理单元。所述记录是指深入到移动设备输入处理单元,将其中的所有事件序列保存为用户执行踪迹。
步骤二:识别停止点。所述停止点是指下一步重放时的停止位置,它具体是指上述获得的用户执行踪迹中的某个事件。在按照事件时间顺序排列的用户执行踪迹的基础上,停止点按照如下三个原则确定:
执行用户执行踪迹中某一事件后,某个新的GUI界面产生,此事件可能成为停止点,例如图5中第二个“按下-松开”动作完成之后,移动设备出现新的屏幕,第14个事件即为停止点。
执行用户执行踪迹中某一事件后,某个含有大量GUI元素的界面动态生成,此事件可能成为停止点,例如在第一次“按下-松开”动作完成之后,大量动态GUI元素出现在屏幕,第7个事件即为停止点。
比较用户执行踪迹中相邻两个事件的时间间隔,间隔越大,此间隔的前事件越可能成为停止点,例如,计算图5任何两个连续事件之间事件间隔,第7个到第8个和第14个到第15个事件间隔较大,所以,第7个事件和第14个事件都可能是停止点。
所述停止点识别(212)可由上述部分或全部原则生成。
步骤三:重放应用执行踪迹,直至某个停止点(213)。具体来说包括如下几步:
将用户执行踪迹和所有的停止点发送给移动设备。
启动移动设备,然后将收到的用户执行踪迹中的事件按照时间顺序写入/dev/input/event*(移动设备***输入处理单元210),以达到用户重新操作移动设备的效果,此步骤的移动设备需获得ROOT权限,此外,各个事件写入的间隔应该与记录时的间隔一致。
到达某个停止点时,停止事件的重放,并将该停止点从停止点列表中删除。
上述所述重放过程在步骤四完成之后,继续重复执行,直至停止点列表为空。
步骤四,从停止点开始,执行自动化测试方法(214)。所述自动化测试方法可以是已有的或者测试人员自己提出的方法,它们一般都包含如下三步:首先获取应用在运行时刻的GUI动态布局信息,包括各种GUI元素;然后在得到的GUI元素信息基础上,根据自动化策略决定下一个输入动作,所述的自动化策略可以是随机选择或者是深度优先搜索;最后将输入动作发送到移动设备并执行。
典型的自动化测试过程包括随机算法RND和深度优先搜索算法DFS;随机算法在自动化决策时从所有可选动作中随机选择下一个动作,而深度优先算法会按照图遍历算法中深度优先的方式访问模型中的所有点和边。
虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,但同样在本发明的保护范围之内。
Claims (8)
1.一种基于用户执行踪迹重放的移动应用测试方法,其特征在于,步骤为:
步骤一、用户执行踪迹记录;
步骤二、停止点识别;
步骤三、重放引擎;
步骤四、自动化测试引擎。
2.根据权利要求1所述的基于用户执行踪迹重放的移动应用测试方法,其特征在于:
所述用户执行踪迹记录是指记录用户对移动应用的一次执行踪迹,指记录移动设备的各种传感器输入事件序列;
所述停止点识别是分析执行踪迹,并确定若干个停止点,指根据给定原则识别出输入事件序列中若干个停止点;
所述重放引擎是指重放应用的执行踪迹,直至某个停止点,指将记录的部分输入事件序列重新写入移动设备;
所述自动化测试引擎是指,从停止点开始,执行自动化测试方法,完成移动设备的自动化测试过程。
3.根据权利要求2所述的基于用户执行踪迹重放的移动应用测试方法,其特征在于:
步骤一中,用户在使用移动设备过程中,所有对传感器的操作都是事件,所有输入事件组成用户执行踪迹;
步骤二中,停止点是指下一步重放时的停止位置,具体是指步骤一中获得的用户执行踪迹中的某个事件,在按照事件发生时间顺序排列的用户执行踪迹的基础上,停止点确定的原则:执行用户执行踪迹中某一事件后,某个新的GUI界面产生,此事件可能成为停止点;执行用户执行踪迹中某一事件后,某个含有大量GUI元素的界面动态生成,此事件可能成为停止点;比较用户执行踪迹中相邻两个事件的时间间隔,间隔越大,此间隔的前事件越可能成为停止点;所述停止点识别可由上述部分或全部原则生成;
步骤三中,具体为:将用户执行踪迹和所有的停止点发送给移动设备;启动移动设备,然后将收到用户执行踪迹中的事件按照时间顺序写入移动设备***输入处理单元,以达到用户重新操作移动设备的效果,此时移动设备需获得ROOT 权限,各个事件写入的间隔应该与记录时的间隔一致;到达某个停止点时停止事件的重放,并将该停止点从停止点列表中删除,进入步骤四;所述重放过程在步骤四完成之后,继续重复执行,直至停止点列表为空;
步骤四中,获取应用在运行时刻的GUI动态布局信息,包括各种GUI元素;在得到的GUI元素信息基础上,根据自动化策略决定下一个输入动作,所述的自动化策略可以是随机选择或者是深度优先搜索;将输入动作发送到移动设备并执行,如此重复,直至完成自动化测试任务。
4.根据权利要求2或3所述的基于用户执行踪迹重放的移动应用测试方法,其特征在于:
所述用户是指有一定移动设备使用经验的人群;
所述移动应用是指运行在移动设备上、能够完成各种任务的程序,一般利用了移动设备的多种传感器来完成复杂交互;
所述记录是指深入到移动设备输入处理单元,将其中的所有事件序列保存为用户执行踪迹;
所述执行踪迹是指用户在无任何提示信息的情况下,日常使用移动应用所产生的操作输入事件序列;
所述记录执行踪迹是指收集用户操作移动设备时产生的输入事件序列;
所述停止点是指用户执行踪迹重放时的停止位置;
所述停止位置是用户执行踪迹中的某个事件;
所述重放是指向移动设备写入收集的用户执行踪迹的部分事件序列;
所述自动化测试方法是指可以用于移动应用全自动化测试的若干方法。
5.根据权利要求4所述的基于用户执行踪迹重放的移动应用测试方法,其特征在于:
所述移动设备是指口袋大小、一般搭载智能操作***、能够帮助用户完成多种多样任务的便携式计算设备,包括智能手机和平板电脑;
所述输入事件是指移动设备接受到的所有传感器输入信息,包含事件时间、事件源和事件参数信息;
所述输入事件是指移动设备接受到的所有传感器输入信息;
所述事件包含事件时间、事件源和事件参数信息;
所述事件参数包括事件类型、代码和值。
6.根据权利要求3所述的基于用户执行踪迹重放的移动应用测试方法,其特征在于:步骤二中,比较用户执行踪迹中相邻两个事件的时间间隔,间隔超过某阈值,此间隔的前事件即为停止点。
7.根据权利要求3所述的基于用户执行踪迹重放的移动应用测试方法,其特征在于:所述阈值是指若干个显著较大的时间间隔的最小值。
8.如权利要求3所述的重放步骤,其特征在于,根据事件时间信息,精确地控制写入时间间隔,完成用户执行踪迹的准确重放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410364808.8A CN104156308B (zh) | 2014-07-29 | 2014-07-29 | 一种基于用户执行踪迹重放的移动应用测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410364808.8A CN104156308B (zh) | 2014-07-29 | 2014-07-29 | 一种基于用户执行踪迹重放的移动应用测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104156308A true CN104156308A (zh) | 2014-11-19 |
CN104156308B CN104156308B (zh) | 2017-02-15 |
Family
ID=51881813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410364808.8A Active CN104156308B (zh) | 2014-07-29 | 2014-07-29 | 一种基于用户执行踪迹重放的移动应用测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104156308B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468521A (zh) * | 2015-11-18 | 2016-04-06 | 北京航空航天大学 | 一种基于子图搜索的指针相关语义错误定位方法 |
CN106528412A (zh) * | 2016-10-27 | 2017-03-22 | 南京大学 | 一种安卓应用的相关手势投放测试框架 |
CN106776229A (zh) * | 2016-12-30 | 2017-05-31 | 河源市美晨联合智能硬件电子研究院 | 终端功耗测试方法及装置 |
WO2017097103A1 (en) * | 2015-12-11 | 2017-06-15 | Huawei Technologies Co., Ltd. | Recommendation system, apparatus and method thereof to guide self-service analytic |
US9703691B1 (en) | 2015-06-15 | 2017-07-11 | Google Inc. | Testing application software using virtual or physical devices |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239986A1 (en) * | 2011-03-14 | 2012-09-20 | Moshe Eran Kraus | Script execution with fallback |
CN103810089A (zh) * | 2012-11-12 | 2014-05-21 | Sap股份公司 | 自动测试基于姿态的应用 |
-
2014
- 2014-07-29 CN CN201410364808.8A patent/CN104156308B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239986A1 (en) * | 2011-03-14 | 2012-09-20 | Moshe Eran Kraus | Script execution with fallback |
CN103810089A (zh) * | 2012-11-12 | 2014-05-21 | Sap股份公司 | 自动测试基于姿态的应用 |
Non-Patent Citations (2)
Title |
---|
L.GOMEZ 等: "RERAN: Timing and touch-sensitive record and replay for Android", 《PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING》 * |
W.CHOI 等: "Guided GUI testing of Android apps with minimal restart and approximate learning", 《PROCEEDINGS OF THE 2013 ACM SIGPLAN INTERNATIONAL CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703691B1 (en) | 2015-06-15 | 2017-07-11 | Google Inc. | Testing application software using virtual or physical devices |
CN105468521A (zh) * | 2015-11-18 | 2016-04-06 | 北京航空航天大学 | 一种基于子图搜索的指针相关语义错误定位方法 |
CN105468521B (zh) * | 2015-11-18 | 2018-01-19 | 北京航空航天大学 | 一种基于子图搜索的指针相关语义错误定位方法 |
WO2017097103A1 (en) * | 2015-12-11 | 2017-06-15 | Huawei Technologies Co., Ltd. | Recommendation system, apparatus and method thereof to guide self-service analytic |
CN106528412A (zh) * | 2016-10-27 | 2017-03-22 | 南京大学 | 一种安卓应用的相关手势投放测试框架 |
CN106528412B (zh) * | 2016-10-27 | 2019-01-08 | 南京大学 | 一种安卓应用的相关手势投放测试框架 |
CN106776229A (zh) * | 2016-12-30 | 2017-05-31 | 河源市美晨联合智能硬件电子研究院 | 终端功耗测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104156308B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025165B (zh) | 游戏自动化测试方法及相关装置 | |
CN105955889B (zh) | 一种图形界面自动化测试方法 | |
CN104156308A (zh) | 一种基于用户执行踪迹重放的移动应用测试方法 | |
CN110525823A (zh) | 一种监控垃圾分类投放的方法、装置以及*** | |
CN104050075B (zh) | Andriod应用程序的测试方法和装置 | |
CN103136471B (zh) | 一种恶意Android应用程序检测方法和*** | |
CN106201266B (zh) | 一种虚拟角色移动的控制方法及装置、电子设备 | |
CN107121690B (zh) | 一种基于多运动参数的停留点识别方法和装置 | |
CN106599230A (zh) | 一种分布式数据挖掘模型评估的方法与*** | |
CN105843734A (zh) | 一种自动化测试方法、装置及计算设备 | |
CN104615658B (zh) | 一种确定用户身份的方法 | |
RU2331096C1 (ru) | Способ моделирования процессов управления техническими средствами и система для его осуществления | |
CN101645036A (zh) | 基于测试执行机能力度的测试任务自动分配方法 | |
CN102110053A (zh) | 一种基于Android的随机测试方法 | |
CN104462979A (zh) | 一种应用程序的自动化动态检测方法及装置 | |
CN109472496A (zh) | 基于可视化引导及自动校验的工作流程构建方法及装置 | |
CN105892304B (zh) | 曲线数据自动判读方法 | |
CN109241485A (zh) | 一种页面间跳转关系建立方法,及装置 | |
CN110490613A (zh) | 一种基于区块链的产品检测的方法及*** | |
CN111027023A (zh) | 一种基于频繁分析的房产在线开盘检测方法及*** | |
CN107729510B (zh) | 信息交互方法、信息交互终端及存储介质 | |
CN109558307B (zh) | 一种游戏程序的测试方法及*** | |
CN109285009A (zh) | 刷单识别方法和刷单识别装置 | |
CN110362767A (zh) | 埋点处理方法、装置、***及计算机可读存储介质 | |
CN104008208A (zh) | 一种基于机会感知的情境识别***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |