CN109558321B - Android设备测试方法及装置 - Google Patents

Android设备测试方法及装置 Download PDF

Info

Publication number
CN109558321B
CN109558321B CN201811440341.5A CN201811440341A CN109558321B CN 109558321 B CN109558321 B CN 109558321B CN 201811440341 A CN201811440341 A CN 201811440341A CN 109558321 B CN109558321 B CN 109558321B
Authority
CN
China
Prior art keywords
test
tested
path
equipment
generating
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.)
Active
Application number
CN201811440341.5A
Other languages
English (en)
Other versions
CN109558321A (zh
Inventor
李罗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing China Tsp Technology Co ltd
Original Assignee
Beijing China Tsp Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing China Tsp Technology Co ltd filed Critical Beijing China Tsp Technology Co ltd
Priority to CN201811440341.5A priority Critical patent/CN109558321B/zh
Publication of CN109558321A publication Critical patent/CN109558321A/zh
Application granted granted Critical
Publication of CN109558321B publication Critical patent/CN109558321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

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设备测试方法及装置,应用于安装有测试软件的计算机设备,所述计算机设备与待测试设备电性连接。计算机设备通过获取到的所述待测试设备上的所有控件建立一个树状图,其中,所述树状图包括了待测试设备上的所有控件,且根据各个控件之间的层级关系建立树状图,以树状图的基础生成一个包含随机的测试路径的测试操作,并将测试操作生成相应的待测试设备可识别的测试命令,以使待测试设备根据该测试命令进行测试。上述测试方法无需人工编写测试用例,大大的减少了设备测试时需要的人力和时间,减少了电子设备的开发周期。

Description

Android设备测试方法及装置
技术领域
本申请涉及电子设备测试领域,具体而言,涉及一种Android设备测试方法及装置。
背景技术
目前手机、电脑、平板电脑等电子设备广泛的使用具有操作界面和菜单的软件***,例如Android(安卓)***,对这些使用该***的设备的各种测试方法也层出不穷。
目前,现有的Android设备的测试都需要编写大量的自动化测试用例,例如使用Android Studio、appium等测试软件时,都需要编写测试用例的代码,且测试用例的代码对测试人员的能力要求较高,同时测试用例的代码编写完成后需要大量的时间和人力对测试用例进行维护,以适应不断更改的产品需求,这大大提升了测试Android设备所需要的时间及人力成本。
发明内容
为了解决上述问题,本申请实施例提供一种Android设备测试方法及装置。
第一方面,本申请实施例提供一种Android设备测试方法,应用于安装有测试软件的计算机设备,所述计算机设备与待测试设备电性连接,所述方法包括:
获取所述待测试设备中主页的第一控件,及主页中各第一控件对应的待测试软件信息;
根据主页中的各个第一控件构建第一树状图,其中,主页的XML为所述第一树状图的根节点,主页中的每一个第一控件作为该根节点的第一子节点;
轮询所述各第一子节点,获得各第一子节点下的第二控件,根据各第一子节点下各个第二控件之间的层级关系,将各第一子节点下各个第二控件作为该第一子节点的下级节点添加到所述第一树状图中,得到包括所述待测试设备中所有控件的第二树状图;
根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令,以使待测试设备根据该测试命令进行测试,其中,所述操作包括测试路径及所述测试路径上对应的操作类型。
可选地,在本实施例中,在根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令之后,所述方法还包括:
接收待测试设备完成测试的实际路径;
将所述实际路径与测试操作对应的测试路径进行比对;
判断实际路径与测试路径是否相同;
当实际路径与测试路径相同时,确认所述待测试设备的执行结果为正确;当实际路径与测试路径不相同时,确认所述待测试设备的执行结果为错误;
记录所述执行结果。
可选地,在本实施例中,在获取所述待测试设备中主页的第一控件,及主页中各第一控件对应的待测试软件信息之前,所述方法还包括:
对测试环境进行初始化,并给所述待测试设备安装一后台程序,以使所述待测试设备具有接收测试命令和将执行所述测试命令的实际路径发送至计算机设备的功能。
可选地,在本实施例中,所述方法还包括:
标记所述第二树状图中节点构成的循环路径;
所述根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令的步骤,包括:
检测生成的测试操作的测试路径是否为已标记的循环路径;
在检测到测试路径为已标记的循环路径时,重新生成一测试操作,直到生成的测试操作的测试路径不是已标记的循环路径。
可选地,在本实施例中,所述方法还包括:
记录根据所述第二树状图生成测试操作的次数,及各测试操作中对应的被测试的节点;
当生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试时;
终止对所述待测试设备的测试,并根据每次测试操作对应的执行结果生成测试报告。
第二方面,本申请实施例还提供一种Android设备测试装置,应用于安装有测试软件的计算机设备,所述计算机设备与待测试设备电性连接,所述装置包括:
获取模块,用于获取所述待测试设备中主页的第一控件,及主页中各第一控件对应的待测试软件信息;
第一树状图生成模块,用于根据主页中的各个第一控件构建第一树状图,其中,主页的XML为所述第一树状图的根节点,主页中的每一个第一控件作为该根节点的第一子节点;
第二树状图生成模块,轮询所述各第一子节点,获得各第一子节点下的第二控件,根据各第一子节点下各个第二控件之间的层级关系,将各第一子节点下各个第二控件作为该第一子节点的下级节点添加到所述第一树状图中,得到包括所述待测试设备中所有控件的第二树状图;
测试命令生成模块,用于根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令,以使待测试设备根据该测试命令进行测试,其中,所述操作包括操作路径及所述操作路径上对应的操作类型。
可选的,在本实施例中,所述装置还包括:
测试结果接收模块,用于接收待测试设备完成测试的实际路径;
比较模块,用于将所述实际路径与测试操作对应的测试路径进行比对;
路径判断模块,用于判断所述实际路径与测试路径是否相同;当实际路径与测试路径相同时,确认所述待测试设备的执行结果为正确;当实际路径与测试路径不相同时,确认所述待测试设备的执行结果为错误;
执行结果记录模块,用于记录所述执行结果。
可选的,在本实施例中,所述装置还包括:
初始化模块,用于对测试环境进行初始化,并给所述待测试设备安装一后台程序,所述待测试设备具有接收测试命令和将执行所述测试命令的实际路径发送至计算机设备的功能。
可选的,在本实施例中,所述装置还包括:
回路标记模块,用于标记所述第二树状图中节点构成的循环路径;
所述测试命令生成模块具体用于:
检测生成的测试操作的测试路径是否为已标记的循环路径;
在检测到测试路径为已标记的循环路径时,重新生成一测试操作,直到生成的测试操作的测试路径不是已标记的循环路径。
可选的,在本实施例中,所述装置还包括:
测试次数记录模块,用于记录根据所述第二树状图生成测试操作的次数,及各测试操作中对应的被测试的节点;
判断模块,用于当生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试时;
报告生成模块,用于终止对所述待测试设备的测试,并根据每次测试操作对应的执行结果生成测试报告。
相对于现有技术,本申请实施例具有以下有益效果:
本申请提供了一种Android设备测试方法及装置,应用于安装有测试软件的计算机设备,所述计算机设备与待测试设备电性连接。计算机设备通过获取到的所述待测试设备上的所有控件建立一个树状图,其中,所述树状图包括了待测试设备上的所有控件,且根据各个控件之间的层级关系建立树状图,以树状图的基础生成一个包含随机的测试路径的测试操作,并将测试操作生成相应的待测试设备可识别的测试命令,以使待测试设备根据该测试命令进行测试。上述测试方法无需人工编写测试用例,大大的减少了设备测试时需要的人力和时间,减少了电子设备的开发周期。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的Android设备测试方法应用的Android设备测试***;
图2为本申请实施例提供的Android设备测试方法的流程图之一;
图3为本申请实施例提供的Android设备测试方法的流程图之二;
图4为本申请实施例提供的Android设备测试装置的功能模块图。
图标:10-Android设备测试***;100-计算机设备;200-待测试设备; 300-Android设备测试装置;301-获取模块;302-第一树状图生成模块;303- 第二树状图生成模块;304-测试命令生成模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在对Android设备测试方法进行详细说明之前,先对Android设备测试方法应用的***做进一步说明。请参照图1,图1为本申请实施例提供的 Android设备测试方法应用的Android设备测试***10,所述Android设备测试***10包括安装有测试软件的计算机设备100以及与计算机设备100 电性连接的待测试设备200。其中,所述待测试设备200通过Android Debug Bridge(简称ADB)与所述计算机设备100连接,且所述计算机设备100 中还安装有Android设备支持的测试环境,例如,软件开发工具包(Software Development Kit,简称SDK),Java开发工具包(Java Development Kit,简称JDK)等。在进行测试之前,所述计算机设备100与待测试设备200通过使用USB连接并开启ADB,或打开WIFI及ADB并获取root权限。
值得说明的是,本申请实施例提供的Android设备测试方法中的计算机设备100所进行的步骤均由安装在计算机设备100上的测试软件完成。
请参照图2,图2为本申请实施例提供的Android设备测试方法的流程图之一,所述方法应用于Android设备测试***10,所述方法包括以下步骤:
步骤S110,计算机设备100获取待测试设备200中主页的第一控件,及主页中各第一控件对应的待测试软件信息。
在此步骤中,所述计算机设备100中获取到一个包括待测试设备200 主页中所有第一控件的XML文件,其中,所述控件是指待测试设备200上所有可操作的按键。同时所述计算机设备100还获得待测试设备200中所有的待测试软件信息,所述待测试软件信息包含了待测试软件的图标及名称等信息。
步骤S120,计算机设备100根据主页中的各个第一控件构建第一树状图。
在此步骤中,主页的XML为所述第一树状图的根节点,主页中的每一个第一控件作为该根节点的第一子节点,且每个第一子节点会存储该节点对应控件的坐标、大小、属性、截图等信息,同时所述第一子节点会存储该节点对应的控件的父节点、子节点、兄弟节点等信息。
步骤S130,计算机设备100轮询各第一子节点,获得各第一子节点下的第二控件,根据各第一子节点下各个第二控件之间的层级关系,将各第一子节点下各个第二控件作为该第一子节点的下级节点添加到所述第一树状图中,得到包括待测试设备200中所有控件的第二树状图。
在上述步骤中,所述第一子节点对应主页上的各个控件,所述计算机设备100在轮询各第一子节点时,各第一子节点会对应产生一个新的页面,因此,所述计算机设备100获取到所述新的页面的XML文件,并从该XML 文件中提取出所述新的页面上包括的第二控件,并将该第二控件作为对应的第一子节点的下级节点。重复上述步骤,继续轮询所述第一子节点的下级节点,并将新的控件加入第一树状图中,直至将所述待测试设备200中的所有设备全部加入第一树状图中,得到包括所述待测试设备200中所有控件的第二树状图。所述第二树状图保存至所述计算机设备100的数据库中。
步骤S140,计算机设备100根据第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备200可识别的测试命令,以使待测试设备200根据该测试命令进行测试。
在上述步骤中,所述计算机设备100随机生成一个包括测试路径及所述测试路径上对应的操作类型的测试操作,所述测试路径根据所述第二树状图的逻辑随机生成。所述计算机设备100根据随机生成的测试操作生成相应的所述待测试设备200可识别的测试命令,将所述命令封装为底层数据后发送至所述待测试设备200。其中所述底层数据包括以json为协议的远程调用服务、传输控制协议(Transmission Control Protocol,简称TCP)等。
在本实施例中,在步骤S110之前,所述方法还包括以下步骤:
计算机设备100对测试环境进行初始化,并给所述待测试设备200安装一后台程序,以使所述待测试设备200具有接收测试命令和将执行所述测试命令的实际路径发送至计算机设备100的功能。
在上述步骤中,在进行初始化之前,可通过测试软件进行参数设置,例如,需要测试的待测试软件的数量及名称,或是测试次数。随后,所述计算机设备100通过ADB给待测试设备200安装一个后台服务,该后台服务在测试期间会持续运行在所述待测试设备200上,所述服务包括接收测试命令的UiTest Input和UiTest Output两部分。
初始化完成后,所述计算机设备100向所述待测试设备200发送一条命令,若命令返回值正常,则初始化成功,否则提示初始化失败,需要对测试环境进行检查及重新配置,以进行后续的操作。
请参照图3,图3为本申请实施例提供的Android设备测试方法的流程图之二,在本实施例中,在步骤S140之后,所述方法还包括:
步骤S210,待测试设备200在接收到底层数据后,将数据进行解析,并将解析后的测试命令在待测试设备200上执行。
在此步骤中,待测试设备200中的UiTest Input在接收到封装后的底层数据后对该数据进行校验,确认所述数据在传输过程中是否丢失,若未丢失,则对数据进行解析,将解析后的结果通过uiautomator在所述待测试设备200执行。
步骤S220,待测试设备200将测试的实际路径发送至计算机设备100。
在此步骤中,所述UiTest Output检测到待测试设备200上测试命令的执行结果,并将执行结果重新编码后发送至计算机设备100。其中,所述执行结果包括所述待测试设备200的完成测试的实际路径。
步骤S230,计算机设备100接收待测试设备200完成测试的实际路径。
步骤S240,将实际路径与测试操作对应的测试路径进行比对。
步骤S250,判断实际路径与测试路径是否相同。
步骤S260,当实际路径与测试路径相同时,确认所述待测试设备200 的执行结果为正确。
步骤S270,当实际路径与测试路径不相同时,确认所述待测试设备200 的执行结果为错误。
步骤S280,记录所述执行结果。
在上述步骤中,所述计算机设备100对待测试设备200发出的重新编码后的执行结果进行解码,并将解码后得到的实际路径与测试路径比对,以判断此次测试操作的执行结果是否正确,并记录执行结果。
在本实施例中,所述方法还包括:
计算机设备100标记所述第二树状图中节点构成的循环路径。
在标记出循环路径后,所述计算机设备100根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备200可识别的测试命令的步骤,则包括:
计算机设备100检测生成的测试操作的测试路径是否为已标记的循环路径。
计算机设备100在检测到测试路径为已标记的循环路径时,重新生成一测试操作,直到生成的测试操作的测试路径不是已标记的循环路径。
在上述步骤中,当第二树状图生成完成后,所述计算机设备100扫描整个第二树状图,并将所述第二树状图 中各个节点构成的循环路径标记出来,在生成测试操作后,将测试操作包括的测试路径与已标记的循环路径比对,若为循环路径则重新生成一个测试操作,重复比对,直至重新生成的测试路径不为已标记的循环路径。在测试时,避开循环路径能够避免测试过程进入死循环。
在本实施例中,所述方法还包括以下步骤:
计算机设备100记录根据所述第二树状图生成测试操作的次数,及各测试操作中对应的被测试的节点。
计算机设备100当生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试时。
计算机设备100终止对所述待测试设备200的测试,并根据每次测试操作对应的执行结果生成测试报告。
在上述步骤中,计算机设备100在对待测试设备200每进行一次测试操作后,记录该测试操作的执行结果,同时记录操作次数及每个测试操作包括的测试路径。进行多次测试,直到生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试,此时计算机设备100结束测试,并根据每次测试操作对应的执行结果生成测试报告,对每个节点的执行结果进行统计,得出待测试设备200的整体通过率和每个待测试软件的执行通过率。
本申请实施例还提供一种Android设备测试方法,与上面实施例不同的是,本Android设备测试方法是从计算机设备100一侧描述本申请方案的。可以理解的是,接下来要描述的Android设备测试方法中涉及的具体步骤在上面实施例的对应步骤中已经详尽描述过,具体各个步骤的详尽内容可参照上面的实施例描述,下面仅对计算机设备100一侧的Android设备测试方法进行简单描述。
在本实施例中,所述方法包括以下步骤:
获取所述待测试设备200中主页的第一控件,及主页中各第一控件对应的待测试软件信息。
根据主页中的各个第一控件构建第一树状图,其中,主页的XML为所述树状图的根节点,主页中的每一个第一控件作为该根节点的第一子节点。
轮询所述各第一子节点,获得各第一子节点下的第二控件,根据各第一子节点下各个第二控件之间的层级关系,将各第一子节点下各个第二控件作为该第一子节点的下级节点添加到所述树状图中,得到包括所述待测试设备200中所有控件的第二树状图。
根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备200可识别的测试命令,以使待测试设备200根据该测试命令进行测试,其中,所述操作包括测试路径及所述测试路径上对应的操作类型。
在本实施例中,在根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备200可识别的测试命令之后,所述方法还包括:
接收待测试设备200完成测试的实际路径;将所述实际路径与测试操作对应的测试路径进行比对;判断实际路径与测试路径是否相同。
当实际路径与测试路径相同时,确认所述待测试设备200的执行结果为正确;当实际路径与测试路径不相同时,确认所述待测试设备200的执行结果为错误;记录所述执行结果。
在本实施例中,在获取所述待测试设备200中主页的第一控件,及主页中各第一控件对应的待测试软件信息之前,所述方法还包括:
对测试环境进行初始化,并给所述待测试设备200安装一后台程序,以使所述待测试设备具有接收测试命令和将执行所述测试命令的实际路径发送至计算机设备200的功能。
在本实施例中,所述方法还包括:
标记所述第二树状图中节点构成的循环路径。所述根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备200 可识别的测试命令的步骤,包括:
检测生成的测试操作的测试路径是否为已标记的循环路径;在检测到测试路径为已标记的循环路径时,重新生成一测试操作,直到生成的测试操作的测试路径不是已标记的循环路径。
在本实施例中,所述方法还包括:
记录根据所述第二树状图生成测试操作的次数,及各测试操作中对应的被测试的节点;
当生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试时;
终止对所述待测试设备200的测试,并根据每次测试操作对应的执行结果生成测试报告。
请参照图4,图4为本申请实施例提供的Android设备测试装置300的功能模块图。所述Android设备测试装置300应用于安装有测试软件的计算机设备100,所述计算机设备100与待测试设备200电性连接,所述Android 设备装置300包括:
获取模块301,用于获取所述待测试设备200中主页的第一控件,及主页中各第一控件对应的待测试软件信息。
第一树状图生成模块302,用于根据主页中的各个第一控件构建第一树状图,其中,主页的XML为所述树状图的根节点,主页中的每一个第一控件作为该根节点的第一子节点。
第二树状图生成模块303,轮询所述各第一子节点,获得各第一子节点下的第二控件,根据各第一子节点下各个第二控件之间的层级关系,将各第一子节点下各个第二控件作为该第一子节点的下级节点添加到所述树状图中,得到包括所述待测试设备200中所有控件的第二树状图。
测试命令生成模块304,用于根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备200可识别的测试命令,以使待测试设备200根据该测试命令进行测试,其中,所述操作包括操作路径及所述操作路径上对应的操作类型。
在本实施例中,所述Android设备装置300还包括:
测试结果接收模块,用于接收待测试设备200完成测试的实际路径。
比较模块,用于将所述实际路径与测试操作对应的测试路径进行比对。
路径判断模块,用于判断所述实际路径与测试路径是否相同;当实际路径与测试路径相同时,确认所述待测试设备200的执行结果为正确;当实际路径与测试路径不相同时,确认所述待测试设备200的执行结果为错误。
执行结果记录模块,用于记录所述执行结果。
在本实施例中,所述Android设备装置300还包括:
初始化模块,用于对测试环境进行初始化,并给所述待测试设备200 安装一后台程序,所述待测试设备200具有接收测试命令和将执行所述测试命令的实际路径发送至计算机设备100的功能。
在本实施例中,所述Android设备装置300还包括:
回路标记模块,用于标记所述第二树状图中节点构成的循环路径。
所述测试命令生成模块304具体用于:
检测生成的测试操作的测试路径是否为已标记的循环路径。
在检测到测试路径为已标记的循环路径时,重新生成一测试操作,直到生成的测试操作的测试路径不是已标记的循环路径。
在本实施例中,所述Android设备装置300还包括:
测试次数记录模块,用于记录根据所述第二树状图生成测试操作的次数,及各测试操作中对应的被测试的节点;
判断模块,用于当生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试时;
报告生成模块,用于终止对所述待测试设备200的测试,并根据每次测试操作对应的执行结果生成测试报告。
可以理解的是,本实施例中的各功能模块的具体操作方法可参阅上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
综上所述,本申请提供了一种Android设备测试方法及装置,应用于安装有测试软件的计算机设备,所述计算机设备与待测试设备电性连接。计算机设备通过获取到的所述待测试设备上的所有控件建立一个树状图,其中,所述树状图包括了待测试设备上的所有控件,且根据各个控件之间的层级关系建立树状图,以树状图的基础生成一个包含随机的测试路径的测试操作,并将测试操作生成相应的待测试设备可识别的测试命令,以使待测试设备根据该测试命令进行测试。上述测试方法无需人工编写测试用例,大大的减少了设备测试时需要的人力和时间,减少了电子设备的开发周期。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种Android设备测试方法,其特征在于,应用于安装有测试软件的计算机设备,所述计算机设备与待测试设备电性连接,所述方法包括:
获取所述待测试设备中主页的第一控件,及主页中各第一控件对应的待测试软件信息;
根据主页中的各个第一控件构建第一树状图,其中,主页的XML为所述第一树状图的根节点,主页中的每一个第一控件作为该根节点的第一子节点;
轮询所述各第一子节点,获得各第一子节点下的第二控件,根据各第一子节点下各个第二控件之间的层级关系,将各第一子节点下各个第二控件作为该第一子节点的下级节点添加到所述第一树状图中,得到包括所述待测试设备中所有控件的第二树状图;
根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令,以使待测试设备根据该测试命令进行测试,其中,所述操作包括测试路径及所述测试路径上对应的操作类型;
所述方法还包括:
标记所述第二树状图中节点构成的循环路径;
所述根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令的步骤,包括:
检测生成的测试操作的测试路径是否为已标记的循环路径;
在检测到测试路径为已标记的循环路径时,重新生成一测试操作,直到生成的测试操作的测试路径不是已标记的循环路径;
所述测试路径根据所述第二树状图的逻辑随机生成。
2.根据权利要求1所述的方法,其特征在于,在根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令之后,所述方法还包括:
接收待测试设备完成测试的实际路径;
将所述实际路径与测试操作对应的测试路径进行比对;
判断实际路径与测试路径是否相同;
当实际路径与测试路径相同时,确认所述待测试设备的执行结果为正确;当实际路径与测试路径不相同时,确认所述待测试设备的执行结果为错误;
记录所述执行结果。
3.根据权利要求1所述的方法,其特征在于,在获取所述待测试设备中主页的第一控件,及主页中各第一控件对应的待测试软件信息之前,所述方法还包括:
对测试环境进行初始化,并给所述待测试设备安装一后台程序,以使所述待测试设备具有接收测试命令和将执行所述测试命令的实际路径发送至计算机设备的功能。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录根据所述第二树状图生成测试操作的次数,及各测试操作中对应的被测试的节点;
当生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试时;
终止对所述待测试设备的测试,并根据每次测试操作对应的执行结果生成测试报告。
5.一种Android设备测试装置,其特征在于,应用于安装有测试软件的计算机设备,所述计算机设备与待测试设备电性连接,所述装置包括:
获取模块,用于获取所述待测试设备中主页的第一控件,及主页中各第一控件对应的待测试软件信息;
第一树状图生成模块,用于根据主页中的各个第一控件构建第一树状图,其中,主页的XML为所述第一树状图的根节点,主页中的每一个第一控件作为该根节点的第一子节点;
第二树状图生成模块,轮询所述各第一子节点,获得各第一子节点下的第二控件,根据各第一子节点下各个第二控件之间的层级关系,将各第一子节点下各个第二控件作为该第一子节点的下级节点添加到所述第一树状图中,得到包括所述待测试设备中所有控件的第二树状图;
测试命令生成模块,用于根据所述第二树状图生成一个测试操作,并根据生成的测试操作生成相应的待测试设备可识别的测试命令,以使待测试设备根据该测试命令进行测试,其中,所述操作包括操作路径及所述操作路径上对应的操作类型;
所述装置还包括:
回路标记模块,用于标记所述第二树状图中节点构成的循环路径;
所述测试命令生成模块具体用于:
检测生成的测试操作的测试路径是否为已标记的循环路径;
在检测到测试路径为已标记的循环路径时,重新生成一测试操作,直到生成的测试操作的测试路径不是已标记的循环路径;
所述测试路径根据所述第二树状图的逻辑随机生成。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
测试结果接收模块,用于接收待测试设备完成测试的实际路径;
比较模块,用于将所述实际路径与测试操作对应的测试路径进行比对;
路径判断模块,用于判断所述实际路径与测试路径是否相同;当实际路径与测试路径相同时,确认所述待测试设备的执行结果为正确;当实际路径与测试路径不相同时,确认所述待测试设备的执行结果为错误;
执行结果记录模块,用于记录所述执行结果。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
初始化模块,用于对测试环境进行初始化,并给所述待测试设备安装一后台程序,所述待测试设备具有接收测试命令和将执行所述测试命令的实际路径发送至计算机设备的功能。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
测试次数记录模块,用于记录根据所述第二树状图生成测试操作的次数,及各测试操作中对应的被测试的节点;
判断模块,用于当生成的测试操作的次数大于预设值,或所述第二树状图中的节点均被测试时;
报告生成模块,用于终止对所述待测试设备的测试,并根据每次测试操作对应的执行结果生成测试报告。
CN201811440341.5A 2018-11-29 2018-11-29 Android设备测试方法及装置 Active CN109558321B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811440341.5A CN109558321B (zh) 2018-11-29 2018-11-29 Android设备测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811440341.5A CN109558321B (zh) 2018-11-29 2018-11-29 Android设备测试方法及装置

Publications (2)

Publication Number Publication Date
CN109558321A CN109558321A (zh) 2019-04-02
CN109558321B true CN109558321B (zh) 2022-03-18

Family

ID=65867848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811440341.5A Active CN109558321B (zh) 2018-11-29 2018-11-29 Android设备测试方法及装置

Country Status (1)

Country Link
CN (1) CN109558321B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080446B (zh) * 2022-07-22 2022-11-08 苏州市软件评测中心有限公司 一种软件测试用测试实例生成方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286432A (zh) * 1999-11-27 2001-03-07 深圳市中兴通讯股份有限公司 状态迁移图分解、遍历回路处理和测试用例自动生成方法
CN104572430A (zh) * 2013-10-24 2015-04-29 腾讯科技(深圳)有限公司 一种终端应用界面的测试方法、装置和***
CN106649100A (zh) * 2016-11-16 2017-05-10 福建天晴数码有限公司 一种自动化测试方法及***
CN107301129A (zh) * 2017-06-28 2017-10-27 百度在线网络技术(北京)有限公司 用于生成测试用例的方法和装置
CN107861868A (zh) * 2017-10-31 2018-03-30 郑州云海信息技术有限公司 一种提取自动化测试对象的方法及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280445B2 (en) * 2014-03-28 2016-03-08 International Business Machines Corporation Logging code generation and distribution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286432A (zh) * 1999-11-27 2001-03-07 深圳市中兴通讯股份有限公司 状态迁移图分解、遍历回路处理和测试用例自动生成方法
CN104572430A (zh) * 2013-10-24 2015-04-29 腾讯科技(深圳)有限公司 一种终端应用界面的测试方法、装置和***
CN106649100A (zh) * 2016-11-16 2017-05-10 福建天晴数码有限公司 一种自动化测试方法及***
CN107301129A (zh) * 2017-06-28 2017-10-27 百度在线网络技术(北京)有限公司 用于生成测试用例的方法和装置
CN107861868A (zh) * 2017-10-31 2018-03-30 郑州云海信息技术有限公司 一种提取自动化测试对象的方法及***

Also Published As

Publication number Publication date
CN109558321A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
Liang et al. Caiipa: Automated large-scale mobile app testing through contextual fuzzing
Amalfitano et al. A gui crawling-based technique for android mobile application testing
CN111124919A (zh) 一种用户界面的测试方法、装置、设备及存储介质
CN103729294B (zh) 应用软件性能脚本测试方法与装置
CN104679654A (zh) 测试应用程序的方法、设备及***
CN105426298A (zh) 一种基于adb的软件测试方法和***
WO2014088398A1 (en) Automated test environment deployment with metric recommender for performance testing on iaas cloud
CN107329889B (zh) 一种c编译器自动化测试的方法
CN106354629A (zh) 一种基于多级服务器的iOS***移动应用自动测试***的架构方法
CN111124871A (zh) 接口测试方法及装置
CN111427771A (zh) 一种代码覆盖率分析方法、设备、服务器及可读存储介质
CN105760307A (zh) 智能终端的测试方法、装置及***
CN105404574B (zh) 一种智能卡与移动终端一致性测试方法及装置
CN109558321B (zh) Android设备测试方法及装置
CN104703197A (zh) 一种基于ttcn-3的终端协议一致性测试平台及方法
CN117435483A (zh) 基于Formal工具的仿真验证激励生成方法、装置、介质及终端
CN113079061A (zh) 一种物联网性能测试方法及***
CN109783368A (zh) 梯形图编程软件测试***及方法
CN109189369B (zh) 一种压缩代码的方法及装置
CN113918444A (zh) 崩溃源代码定位方法、装置、介质及电子设备
CN112433947A (zh) 一种基于网络数据的混沌工程方法及***
Piparia et al. Combinatorial testing of context aware android applications
CN112445513A (zh) 安装包处理方法及装置
CN116382968B (zh) 外部设备的故障检测方法以及装置
Liang et al. Context virtualizer: A cloud service for automated large-scale mobile app testing under real-world conditions

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
GR01 Patent grant
GR01 Patent grant