CN111290938A - 一种基于人工辅助的Android半自动化测试方法 - Google Patents
一种基于人工辅助的Android半自动化测试方法 Download PDFInfo
- Publication number
- CN111290938A CN111290938A CN201811499040.XA CN201811499040A CN111290938A CN 111290938 A CN111290938 A CN 111290938A CN 201811499040 A CN201811499040 A CN 201811499040A CN 111290938 A CN111290938 A CN 111290938A
- Authority
- CN
- China
- Prior art keywords
- test
- page
- application
- android
- traversal
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 claims description 22
- 238000013515 script Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 238000009434 installation Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 abstract description 3
- 230000007849 functional defect Effects 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 11
- 241000282693 Cercopithecidae Species 0.000 description 4
- 238000013522 software testing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种基于人工辅助的Android半自动化测试方法,用于在Android应用自动化测试领域来提升自动化测试的深度以及有效性,该发明的主要创新在于(1)对普通深度优先遍历算法的改良,加入了页面父子关系的判断(2)结合了现有人工脚本作为自动化测试的辅助,提高了自动化测试有效性。本发明最终获得特定测试应用的页面树状图,测试日志、截图以及一系列兼容性信息及性能指标,进一步帮助测试人员发现测试应用的功能缺陷和潜在的问题,定位测试中应用出现的错误。
Description
技术领域
本发明属于计算机技术中的软件测试技术领域,尤其是软件测试中自动化测试技术领域,用于对Android应用进行人工辅助的半自动化测试,即以深度遍历测试为主,结合现有人工脚本的辅助来进行自动化测试,并收集各项测试信息。
背景技术
在传统的测试过程中,测试人员往往通过人工点击的方式对移动应用进行测试。这种人工测试的方式费时、费力,难以覆盖各种机型、各种***版本,难以覆盖应用本身的页面集合。正是由于人工测试的效率低下,业界开始寻求自动化测试方法来代替人工测试。
自动化测试大致可分为三类:Monkey,录制-回放,自动化遍历。Monkey,即对应用进行随机点击,这种方式能够为移动应用提供压力测试,也有可能发现其他两种方式发现不了的错误(其他两种方式的事件处理都是基于组件的,组件之外的错误无法发现,而Monkey 没有这种限制),但是随机点击的方式也决定了其效率低下的特点,且测试过程难以重现。录制-回放要求测试人员事先进行一遍人工测试,***自动生成测试脚本,并能够在机器上重现测试过程。由于测试脚本由用户与应用程序交互生成,往往会带有大量的硬编码,使得测试脚本缺乏可重用性,维护成本高。此外,截止到目前为止,也没有出现一个相对稳定的录制- 回放工具。
自动化遍历测试能够在遍历过程中,自动识别移动应用的页面元素,自动对相应元素进行操作,自动生成测试模型。相比与Monkey的随机测试,自动化遍历测试具有覆盖度高,路径可控,可重现测试过程等优势;相比于录制-回放的测试方式,自动化遍历测试具有高重用性,高自动化等优势。
然而许多情况下,在对移动应用进行自动化遍历测试时,得到的结果可能并不理想。其中最值得注意的一个问题是,大多数应用都包含了如输入事件等需要特定操作的事件,典型的如用户登录动作,这类事件需要用户输入参数,但这在进行自动化遍历测试时的往往只能通过配置参数来实现,也就是说对于每一个待测移动应用的特定输入参数都要进行配置,否则会很大程度上影响遍历的深度,这样的解决办法使测试脚本失去了其可重用性。
发明内容
本发明要解决的问题是:提出一种基于人工辅助的Android半自动测试的方法。本发明的技术方案为:
1)在测试机上安装并启动待测应用,收集各项性能指标以及兼容性信息,获取当前页面上的所有控件
2)依次遍历页面上控件,模拟产生用户事件,判断是否使用了现有人工脚本作为辅助,若有,则在现有脚本中获取可用的用户事件来对当前控件进行操作。否则,根据控件的类型自动生成相应的事件,大多为点击事件。
3)判断模拟用户事件后的页面状态,采用深度优先的遍历策略,如果进入新的页面,则获取新页面上的所有控件,开始新一轮的遍历。若没有进入新页面,则更新当前页面控件继续进行遍历。
4)自动化测试结束收集测试通过情况,绘制测试生成树,有4种情况会导致测试结束, (1)待测应用已全部遍历完成(2)超出了设置的测试时间;(3)测试过程中到达了不属于待测应用的页面且无法返回;(4)测试过程中出现异常崩溃。测试结束之后收集测试的通过情况,并根据测试过程中的页面截图以及记录的测试生成树来绘制以页面截图为节点的测试生成树。
本发明的有益效果是:可以利用测试人员在测试各项特定功能时已编写好的测试脚本来辅助自动化遍历测试,在不需要对每一个待测应用都进行特定参数配置的情况下,能很好地提升自动化遍历测试的深度,取得更好的效果。
附图说明
图1基于人工辅助的Android半自动化测试方法执行流程图
图2确立页面父子关系示例图
图3变更页面父子关系示例图
图4改良的深度优先遍历示例代码
具体实施方法
本方法是以深度优先遍历策略的算法为框架,所以先实现了深度优先遍历策略的自动化测试脚本逻辑,再在其上进行优化,通过在深度优先遍历算法中加入对测试过程中各项信息的收集,并结合现有人工脚本的辅助,对应用进行深层次的遍历测试,测试应用的各项功能并收集应用的兼容性信息,导出测试应用的树状结构图以及详细测试报告。本方法的具体执行流程见图1。
本方法的实现主要基于一个改良后的深度优先遍历算法,把整个待测应用的页面结构抽象成一棵树,当进入某个页面时,获取当前页面的所有控件元素,并对这些元素依次遍历,执行相应操作。
当在某一个页面的某个组件上完成一种操作时,可能会出现以下几种情况:
1)页面没有任何改变
2)页面主要结构不变,少量细节改变
3)进入一个新的子页面
4)进入一个子页面,该子页面曾经出现过
5)回到其父页面
针对情况1)、3),普通深度优先遍历算法即可完成遍历。针对情况2),需要进行判断:当改变的元素不够多,不做任何处理;当改变的元素足够多时,对当前页面进行更新再遍历。
由于事先不知道这棵页面树的实际结构,当遇到情况4)、5)时,普通深度优先遍历算法已不能解决问题。在此基础上,本方法在普通深度优先遍历算法的基础上法增加了额外内容:确立父子关系和变更父子关系。
1)确立父子关系
如图2所示,A页面跳转至B界面,B界面跳转至C界面,C又跳转到了B界面。当B 界面自身遍历结束时,想要返回父页面,在原本算法的逻辑里应当返回到C界面(因为最后是C调用了B),而在实际的返回操作中会返回到A界面(本方法用Android返回键功能实现页面的返回)。
为了解决这个冲突,本方法加入了确立父子关系的功能,即标记B页面是A页面的子页面,C页面是B页面的子页面。当C界面跳转到B界面时,本方法认为这个操作执行了深度优先遍历算法的Return操作,即从子节点返回到了父节点,而不是进行新一轮的深度优先遍历算法。这样一来,当B页面准备返回时,在逻辑上返回的是自己的父页面A,与实际操作一致。
2)变更父子关系
如图3所示,A页面和B页面都能跳转至C页面,A先B后。当B页面跳转至C页面, C页面完成遍历准备返回时,由于程序中记录C是A的子页面,在逻辑上将会返回到A页面上,但在实际操作中,C页面会返回到B页面。为了解决这种冲突,本方法在B跳转到C时,变更C页面的父页面为B。
综上,本方法基于深度优先遍历的策略实现的改良算法,结合了人工脚本的辅助,可以对测试应用进行更深层次的遍历,有助于发现应用潜在的问题或漏洞。本方法中改良的深度优先遍历算法伪代码见图4。
Claims (3)
1.一种基于人工辅助的Android半自动化测试方法,其特征是:(1)以深度优先的遍历策略对待测应用进行自动化测试,模拟点击、滑动、输入等用户事件;(2)支持配置现有的由人工编写的测试脚本,用于辅助自动化测试;(3)收集测试过程中的屏幕截图、日志、安装卸载情况、电量、CPU占用率、测试机型、测试机版本、测试通过情况等信息,并由测试截图生成了测试生成树。
2.据权利要求1所述的基于人工辅助的Android半自动化测试方法,其特征是采用深度优先遍历的策略对应用进行自动化探索,根据页面上控件生成点击、滑动、输入等测试序列;在开始自动化测试之前可以配置现有的测试脚本作为辅助,即从现有脚本中提取可用的用户事件用于生成测试序列。
3.据权利要求1,2所述的基于人工辅助的Android半自动化测试方法,其特征是具体步骤如下:
1)在测试机上安装并启动待测应用,收集各项性能指标以及兼容性信息,获取当前页面上的所有控件;
2)依次遍历页面上控件,模拟产生用户事件,如权利1,2所述,判断是否使用了现有人工脚本作为辅助,若有,则在现有脚本中获取可用的用户事件来对当前控件进行操作。否则,根据控件的类型自动生成相应的事件,大多为点击事件;
3)判断模拟用户事件后的页面状态,根据权利1,2所述的深度优先遍历策略,如果进入新的页面,则获取新页面上的所有控件,开始新一轮的遍历。若没有进入新页面,则更新当前页面控件继续进行遍历;
自动化测试结束收集测试通过情况,绘制测试生成树,测试结束有三种情况,(1)超出了设置的测试时间;(2)测试过程中到达了不属于待测应用的页面且无法返回;(3)测试过程中出现异常崩溃;测试结束之后收集测试的通过情况,并根据测试过程中的页面截图以及记录的测试生成树来绘制以页面截图为节点的测试生成树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811499040.XA CN111290938A (zh) | 2018-12-08 | 2018-12-08 | 一种基于人工辅助的Android半自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811499040.XA CN111290938A (zh) | 2018-12-08 | 2018-12-08 | 一种基于人工辅助的Android半自动化测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111290938A true CN111290938A (zh) | 2020-06-16 |
Family
ID=71023176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811499040.XA Pending CN111290938A (zh) | 2018-12-08 | 2018-12-08 | 一种基于人工辅助的Android半自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290938A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779352A (zh) * | 2021-07-27 | 2021-12-10 | 浙江大学 | 面向无障碍检测的移动端应用页面自动遍历方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461900A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 用户界面的测试方法、中控服务器、测试终端及*** |
CN106649100A (zh) * | 2016-11-16 | 2017-05-10 | 福建天晴数码有限公司 | 一种自动化测试方法及*** |
CN107526676A (zh) * | 2016-06-20 | 2017-12-29 | 苏宁云商集团股份有限公司 | 一种跨***测试方法及装置 |
-
2018
- 2018-12-08 CN CN201811499040.XA patent/CN111290938A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461900A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 用户界面的测试方法、中控服务器、测试终端及*** |
CN107526676A (zh) * | 2016-06-20 | 2017-12-29 | 苏宁云商集团股份有限公司 | 一种跨***测试方法及装置 |
CN106649100A (zh) * | 2016-11-16 | 2017-05-10 | 福建天晴数码有限公司 | 一种自动化测试方法及*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779352A (zh) * | 2021-07-27 | 2021-12-10 | 浙江大学 | 面向无障碍检测的移动端应用页面自动遍历方法 |
CN113779352B (zh) * | 2021-07-27 | 2023-11-24 | 浙江大学 | 面向无障碍检测的移动端应用页面自动遍历方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008113B (zh) | 一种测试方法、装置、电子设备 | |
CN109739755B (zh) | 一种基于程序追踪和混合执行的模糊测试*** | |
US8627290B2 (en) | Test case pattern matching | |
CN102880546B (zh) | 一种基于xml数据库的软件集成测试方法及*** | |
CN105373478B (zh) | 自动化测试方法和*** | |
CN108874649B (zh) | 自动化测试脚本的生成方法、装置及其计算机设备 | |
Cunha et al. | PETTool: a pattern-based GUI testing tool | |
CN108021509B (zh) | 基于程序行为网络聚合的测试用例动态排序方法 | |
Eldh et al. | A framework for comparing efficiency, effectiveness and applicability of software testing techniques | |
CN111008154B (zh) | 一种基于强化学习的Android应用自动测试方法及*** | |
EP3264274A1 (en) | Input discovery for unknown program binaries | |
CN115080398A (zh) | 一种接口自动化测试***及方法 | |
CN107608873B (zh) | 软件测试方法和***及测试平台 | |
CN102707712B (zh) | 电子装备故障诊断方法和*** | |
CN110990282B (zh) | 一种自动化单元测试方法 | |
CN112631704A (zh) | 一种界面元素识别方法、装置、存储介质及电子设备 | |
Said et al. | Towards Interactive Mining of Understandable State Machine Models from Embedded Software. | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
CN111258876B (zh) | 一种微服务架构下的精确回归测试方法及装置 | |
CN111290938A (zh) | 一种基于人工辅助的Android半自动化测试方法 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN113742211A (zh) | 一种测试方法、Appium客户端及计算机存储介质 | |
CN112084108A (zh) | 一种测试脚本生成方法、装置及相关组件 | |
Wang et al. | Design pattern detection in Eiffel systems | |
CN107102938B (zh) | 测试脚本的更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211008 Address after: 518000 903a, building 10, Shenzhen Bay science and technology ecological park, No. 10, Gaoxin ninth Road, high tech Zone community, Yuehai street, Nanshan District, Shenzhen, Guangdong Applicant after: Shenzhen Muzhi Technology Co.,Ltd. Address before: Room 1302, 301 Hanzhongmen street, Gulou District, Nanjing City, Jiangsu Province, 210000 Applicant before: NANJING MUCE INFORMATION TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200616 |