CN106126425B - 基于Android自动化测试框架的功能遍历方法及系统 - Google Patents

基于Android自动化测试框架的功能遍历方法及系统 Download PDF

Info

Publication number
CN106126425B
CN106126425B CN201610509873.4A CN201610509873A CN106126425B CN 106126425 B CN106126425 B CN 106126425B CN 201610509873 A CN201610509873 A CN 201610509873A CN 106126425 B CN106126425 B CN 106126425B
Authority
CN
China
Prior art keywords
preposed
behavior
operation state
determining
android
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
CN201610509873.4A
Other languages
English (en)
Other versions
CN106126425A (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 Vision World Technology Co ltd
Original Assignee
Beijing Vision World 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 Vision World Technology Co Ltd filed Critical Beijing Vision World Technology Co Ltd
Priority to CN201610509873.4A priority Critical patent/CN106126425B/zh
Publication of CN106126425A publication Critical patent/CN106126425A/zh
Application granted granted Critical
Publication of CN106126425B publication Critical patent/CN106126425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/3696Methods or tools to render software testable

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自动化测试框架上对需要验证的操作行为进行封装。本发明能够将测试人员从繁琐的路径和状态设置细节中解放出来,从而使测试人员更专注于添加操作以及操作的判断,在减少测试人员工作量的同时,降低了修改难度,提高了测试人员的工作效率。

Description

基于Android自动化测试框架的功能遍历方法及系统
技术领域
本发明涉及软件测试技术领域,更具体的说,涉及一种基于Android自动化测试框架的功能遍历方法及系统。
背景技术
所谓功能遍历,是指对应用中的每个功能均做一次且仅做一次访问,以验证某个功能是否可用。其中,可以将应用中的每个功能看作一颗树,在进行功能遍历时,沿着树的路径,依次对树中的每个结点均做一次且仅做一次访问,根据访问结果来确定功能验证是否成功。
对应用的功能遍历通常都是基于Android自动化框架来完成的。然而,目前在利用Android自动化测试框架,例如Robutium、UIautomator、Appuim、MonkeyRunner等自动化测试框架进行功能遍历时,测试人员往往需要从初始化环境开始,一步步详细写出界面的逻辑跳转等操作,以及进行操作成功的判断。即,现有的利用Android自动化测试框架所进行的功能遍历是一种面向函数的编程书写方式,其需要测试人员写出每个节点的跳转路径和设置每个节点的状态,这就意味着测试人员需要做大量的工作。因此,现有的基于Android自动化测试框架所进行的功能遍历的效率并不高,且一旦某个节点出现问题,测试人员需要对每个节点的跳转路径及状态设置进行检查,以确定出现问题的节点,如此便会增加修改难度,从而进一步降低测试人员的测试效率。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于Android自动化测试框架的功能遍历方法和相应的系统。
依据本发明的一个方面,提供了一种基于Android自动化测试框架的功能遍历方法,该方法在Android自动化测试框架上对需要验证的操作行为进行封装,具体包括:
将需要验证的操作行为细化到每一步操作;
确定每一步操作的前置操作;
根据所述操作和所述操作的前置操作,确定与所述前置操作相对应的前置操作状态类型;
根据前置操作状态类型对所述操作行为进行封装。
可选地,在将需要验证的操作行为细化到每一步操作的过程中,将需要验证的操作行为分解成若干基础单元;其中,把一次对界面的操作和与所述操作相对应的操作状态确定为基础单元,由若干所述基础单元的组合构成所述操作行为。
可选地,在确定所述每一步操作的前置操作的过程中,设置所述操作的前置操作状态,根据所述前置操作状态确定所述操作的前置操作。
可选地,在确定与所述前置操作相对应的前置操作状态类型的过程中,根据所述前置操作与所述操作之间的逻辑关系,确定所述前置操作状态类型;其中,所述前置操作状态类型包括前置界面与前置配置。
可选地,在根据所述前置操作状态类型对所述操作行为进行封装的过程中,获取所述前置界面与前置配置之间的共性,根据所述共性对所述操作行为进行封装。
可选地,在所述操作行为中的其中一个操作必须执行之后,才能执行所述其中一个操作的后一个操作时,所述其中一个操作视为所述后一个操作的前置配置。
可选地,当所述操作行为中的其中两个或以上操作的前置操作为同一个时,所述前置操作视为所述两个或以上操作的前置界面。
根据本发明的另一方面,提供了一种基于Android自动化测试框架的功能遍历系统,其包括:
操作行为细化单元,用于将需要验证的操作行为细化到每一步操作;
前置操作确定单元,用于确定每一步操作的前置操作;
前置操作状态类型确定单元,用于根据所述操作和所述操作的前置操作,确定与所述前置操作相对应的前置操作状态类型;
封装单元,用于根据前置操作状态类型对所述操作行为进行封装;其中,在Android自动化测试框架上对所述操作行为进行封装。
可选地,所述操作行为细化单元进一步包括:基础单元确定模块,用于把一次对界面的操作和与所述操作相对应的操作状态确定为基础单元,由若干所述基础单元的组合构成所述操作行为。
可选地,所述前置操作确定单元进一步包括:前置操作状态设置单元,用于设置所述操作的前置操作状态,根据所述前置操作状态确定所述操作的前置操作。
可选地,所述前置操作状态类型确定单元根据所述前置操作与所述操作之间的逻辑关系,确定所述前置操作状态类型,所述前置操作状态类型包括前置界面与前置配置;其中,
在所述操作行为中的其中一个操作必须执行之后,才能执行所述其中一个操作的后一个操作时,所述其中一个操作视为所述后一个操作的前置配置;
当所述操作行为中的其中两个或以上操作的前置操作为同一个时,所述前置操作视为所述两个或以上操作的前置界面。
可选地,所述封装单元进一步包括:
共性获取单元,用于获取所述前置界面与前置配置之间的共性,根据所述共性对所述操作行为进行封装。
根据本发明的基于Android自动化测试框架的功能遍历方法和相应的系统,在进行自动化测试的过程中,能够将测试人员从繁琐的路径和状态设置细节中解放出来,从而使测试人员更专注于添加操作以及操作的判断,在减少测试人员工作量的同时,降低了修改难度,提高了测试人员的工作效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于Android自动化测试框架的功能遍历方法的流程图;
图2示出了根据本发明一个实施例的修改背景图案操作行为的逻辑结构框图;
图3示出了根据本发明一个实施例的基于Android自动化测试框架的功能遍历系统的第一逻辑结构框图;
图4示出了根据本发明另一个实施例的基于Android自动化测试框架的功能遍历系统的第二逻辑结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参考图1,该图示出了根据本发明一个实施例的基于Android自动化测试框架的功能遍历方法的主要流程图,本实施例中基于Android自动化测试框架的功能遍历方法主要包括如下步骤:
步骤S110,将需要验证的操作行为细化到每一步操作。
需要说明的是,上述需要验证的操作行为即需要验证的功能,一个操作行为由多个操作构成。因此,在本实施例中,首先将需要验证的操作行为进行抽象处理,即:将用户一次对界面的操作和对该操作的结果视为一个最小的单元,然后通过这些细小单元的组合(例如在用户进行某个操作后,以用户点击确定键为此次操作行为的结束标志)来构成一次完整的操作行为。也就是说,在将需要验证的操作行为细化到每一步操作的过程中,将需要验证的操作行为分解成若干基础单元,其中,把一次对界面的操作和与该操作相对应的操作状态确定为基础单元,由若干基础单元的组合构成该操作行为。
例如:有一个需要修改APP背景图案的操作行为需要验证,首先根据预先定义的操作流程将该操作行为分解成若干基础单元,具体如下:启动应用(startApp)->进入设置(gotoSetting)->进入背景设置(gotoBackgroundSetting)->选择背景图案(SelectBackground)->确认选中的背景图案(ConfirmBackground)->确认背景修改弹窗(ConfirmBackgroundDialog),然后对所分解的每一个基础单元进行编程。
其中,作为本发明的一个示例,将设置背景作为本次操作的操作行为,那么该操作行为包括多个基础单元,点击应用程序设置按钮与进入设置页面,为一个基础单元,点击背景设置按钮与进入到选择背景图案为一个基础单元,选择背景图案并显示选中的背景图案和确认按钮为一个基础单元,用户确认选中的背景图案并显示确认背景修改弹窗为一个基础单元,确认背景修改弹窗与返回至应用程序设置页面或者直接退出设置页面为一个基础单元。当用户点击设置背景按键时,代表此次操作行为开始,当弹出确认弹窗时,表示此次操作行为结束。操作行为有很多,比如设置来电铃声、阅读短信、微信语音聊天等等,操作行为均可分解为一个个的基础单元。每个操作行为都是由数次的对界面操作和显示响应页面构成的,通过将一个操作行为分解成若干个基础单元,可以通过单元来直接构建操作行为,而不需要从繁琐的路径、状态设置细节来构建操作行为。
步骤S120:确定每一步操作的前置操作。
在步骤S110中,虽然细化的基础单元都绑定管理了每一步的操作以及该操作的操作状态,在一定程度上可以减少编程人员以及测试人员的工作量,但是大量的基础单元的组合依旧是一个复杂的过程,因此,需要让每一步的操作都能够自行找到自己的前置操作。其中,通过设置每一步操作与其前置操作状态建立关联,,在操作行为执行时便可依据所建立的关联给出的导引,得以自动执行,而不需要测试人员进行一个基础单元一个基础单元的操作。
下面举出一个具体实施例例。如图2所示,在本实施例中,首先考虑,当需要执行选择背景图案(SelectBackground)这一操作时,其要求必须首先进入背景设置(gotoBackgroundSetting),只有执行进入背景设置(gotoBackgroundSetting)之后才能选择背景图案(SelectBackground);但是要进入背景设置(gotoBackgroundSetting),就需要先进入设置(gotoSetting),不过在执行确认选中的背景图案(ConfirmBackground)打开确认弹窗后如果点击取消(cancel)也可以进入背景设置(gotoBackgroundSetting)。但是,对于选择背景图案(SelectBackground)而言,它只要求当前处于【背景设置】这一状态下,而对于在【背景设置】这一状态的前一状态是什么,是不关心的。
也就是说,可以将启动应用(startApp)->进入设置(gotoSetting)->进入背景设置(gotoBackgroundSetting)->选择背景图案(SelectBackground)这一过程视作一条马尔科夫链,当然,在这条马尔科夫链中可能还有其他的分支,比如进入背景设置后,可直接确认背景图案的设置,不一定非要进行背景图案的选择。但在执行选择背景图案这一操作时,我们将这条马尔科夫链上的其他分支忽略掉,然后倒用马尔科夫链,那么,每一个操作都只需要记忆它的前一个操作状态,就可以最终到达并且执行自身。作为本发明的一个示例,将“进入背景设置”设置为“选择背景图案”这一操作的前置操作状态,通过“进入背景设置”这一前置操作状态便可以最终到达并执行“选择背景图案”这一操作。
实际上,在将操作行为分解为基础单元时,还需要考虑到基础单元之间的关系是否唯一。比如对于确认背景图案这一操作行为,基础单元的构成可以是启动应用(startApp)->进入设置(gotoSetting)->进入背景设置(gotoBackgroundSetting)->确认背景图案设置,也可以是启动应用(startApp)->进入设置(gotoSetting)->进入背景设置(gotoBackgroundSetting)->选择背景图案(SelectBackground)->确认背景图案设置,也就是说,在确认背景图案设置时,在确定为“确认背景图案设置”添加前置操作状态时,就不能为其添加前置操作状态。为每一个操作添加一个前置操作状态的手段,可保证确定该操作的唯一的前置操作。
S130:根据操作和操作的前置操作,确定与前置操作相对应的前置操作状态类型。
其中,在确定与前置操作相对应的前置操作状态类型的过程中,根据前置操作与操作之间的逻辑关系,确定前置操作状态类型;其中,前置操作状态类型包括前置界面与前置配置。其中,在操作行为中的其中一个操作必须执行之后,才能执行该其中一个操作的后一个操作时,该其中一个操作视为后一个操作的前置配置;当操作行为中的其中两个或以上操作的前置操作为同一个时,前置操作视为两个或以上操作的前置界面。
同样结合图2的逻辑过程,例如,在执行“确认选中的背景图案”这一操作时,对于它而言,它的前置操作状态是“进入背景设置”,因为只要“进入背景设置”这一操作状态,就可以执行“确认选中的背景图案”这一操作,而不需要先执行“选择背景图案”这一操作,但是,当要完成对背景图案的修改时,在执行“确认选中的背景图案”之前,必须先执行“选择背景图案”这一操作。
也是就说,进入背景设置->选择背景图案->确认选中的背景图案是更换背景图案这个操作行为的流程,因此,可以将“进入背景设置”理解为“选择背景图案”和“确认选中的背景图案”这两个操作的前置界面,但是仅当必须执行“选择背景图案”这一操作之后才可以执行“确认选中的背景图案”的时候才能将“选择背景图案”视为“确认选中的背景图案”的前置配置。
对于前置配置,更为恰当的示例在于Android设置中的开启开发者选项,打开USB调试等功能。因为其必须首先到“关于手机”里去连续点击版本号才能进入“开发者模式”,然后才能进去“开发者选项”,在其中必须打开“开启开发者选项”,然后才能打开“USB调试”功能,否则该功能是无法使用的。此外,类似的例子还有提交反馈前,必须先验证网络的畅通等,在此不再作过多赘述。
作为示例,首先将“确认选中的背景图案”这一操作的前置界面设置为“进入背景设置”,将“确认选中的背景图案”这一操作的前置配置设置为“选择背景图案”,然后设定只有在仅当必须执行这一操作之后才可以执行“确认选中的背景图案”这一操作,否则需要“选择背景图案”和“确认选中的背景图案”这两个操作共同存在时才能完成设置背景这一操作行为。
在具有两种分支的情况下,还可考虑将一个分支作为一个基础单元来实现,比如“选择背景图案”、“确认选中的背景图案”作为一个基础单元,为其设置前置状态信息,将“确认选中的背景图案”作为一个基础单元,为其设置前置状态信息,从而保证一个基础单元的前置状态信息唯一。S140:根据前置操作状态类型对操作行为进行封装。
其中,在根据前置操作状态类型对操作行为进行封装的过程中,将前置的界面和前置的配置条件结合起来,前置的配置条件比如有apk/功能、当前UI的状态,因为前置条件不同,会有不同的操作方式。举例来说,执行一条操作“打开闪光灯当手电筒用”有多种实现方式:(1)可以通过系统应用打开;(2)可以通过系统的快捷菜单打开可能可以通过第三方应用打开;(3)通过系统有预定义的快捷硬件操作;(4)可以通过硬件按钮来操作。获取前置界面与前置配置条件的关系,根据所述关系对操作行为进行封装。在封装的过程中,可以在必要的位置加入日志和截图,以方便统一管理和对逻辑进行修改判断。
作为示例,当用户点击启动APP后,即开始了功能遍历,在对功能进行遍历的过程中,可以给出正在进行遍历的某个功能所包含的操作的操作名称以提示测试者当前所遍历功能以及该功能遍历的进程(即对该功能遍历到哪一步了),当对某一个功能遍历失败时,可以设置重新对某个遍历失败的功能进行重新遍历,也可以给出操作失败的提示并插入一个截图,以便于测试人员对遍历失败的功能逻辑进行修改。
综上,利用本发明提供的基于Android自动化测试框架的功能遍历方法进行功能遍历,能够将测试人员从繁琐的路径和状态设置细节中解放出来,从而使测试人员更专注于添加操作以及操作的判断,在减少测试人员工作量的同时,降低了修改难度,提高了测试人员的工作效率。
下面说明本发明的另一方面。
参考图3,该图示出了根据本发明一个实施例的基于Android自动化测试框架的功能遍历系统的第一逻辑结构。本实施例中的基于Android自动化测试框架的功能遍历系统主要包括:
操作行为细化单元310,本实施例中的操作行为细化单元310主要用于将需要验证的操作行为细化到每一步操作。
前置操作确定单元320,本实施例中的前置操作确定单元320主要用于确定每一步操作的前置操作。
前置操作状态类型确定单元330,本实施例中的前置操作状态类型确定单元330主要用于根据操作和操作的前置操作,确定与前置操作相对应的前置操作状态类型;
封装单元340,本实施例中的封装单元340主要用于根据前置操作状态类型对操作行为进行封装;其中,在Android自动化测试框架上对操作行为进行封装。
进一步地,参考图4,该图示出了根据本发明另一个实施例的基于Android自动化测试框架的功能遍历系统的第二逻辑结构。
图4结合图3,在本实施例中,操作行为细化单元310进一步包括基础单元确定模块11,本实施例中的基础单元确定模块11主要用于把一次对界面的操作和与操作相对应的操作状态确定为基础单元,由若干基础单元的组合构成操作行为。
参考前述,例如:有一个需要修改APP背景图案的操作行为需要验证,首先根据预先定义的操作流程将该操作行为分解成若干基础单元,具体如下:启动应用(startApp)->进入设置(gotoSetting)->进入背景设置(gotoBackgroundSetting)->选择背景图案(SelectBackground)->确认选中的背景图案(ConfirmBackground)->确认背景修改弹窗(ConfirmBackgroundDialog),然后对所分解的每一个基础单元进行编程。
此外,前置操作确定单元320进一步包括前置操作状态设置单元21,在本实施例中,前置操作状态设置单元21主要用于设置操作的前置操作状态,根据前置操作状态确定操作的前置操作。
虽然细化的基础单元都绑定管理了每一步的操作以及该操作的操作状态,在一定程度上可以减少测试人员的工作量,但是大量的基础单元的组合依旧是一个复杂的过程,因此,需要让每一步的操作都能够自行找到自己的前置操作。其中,通过设置每一步操作的前置操作状态,根据所设置的前置操作状态使每一步操作都能够找到自己的前置操作。
同样参考前述,当需要执行选择背景图案(SelectBackground)这一操作时,其要求必须首先进入背景设置(gotoBackgroundSetting),只有执行进入背景设置(gotoBackgroundSetting)之后才能选择背景图案(SelectBackground);但是要进入背景设置(gotoBackgroundSetting),就需要先进入设置(gotoSetting),不过在执行确认选中的背景图案(ConfirmBackground)打开确认弹窗后如果点击取消(cancel)也可以进入背景设置(gotoBackgroundSetting)。但是,对于选择背景图案(SelectBackground)而言,它只要求当前处于【背景设置】这一状态下,而对于在【背景设置】这一状态的前一状态是什么,是不关心的。
也就是说,根据图2所示的逻辑过程,可以将启动应用(startApp)->进入设置(gotoSetting)->进入背景设置(gotoBackgroundSetting)->选择背景图案(SelectBackground)这一过程视作一条马尔科夫链,当然,在这条马尔科夫链中可能还有其他的分支,但在执行选择背景图案这一操作时,我们将这条马尔科夫链上的其他分支忽略掉,然后倒用马尔科夫链,那么,每一个操作都只需要记忆它的前一个操作状态,就可以最终到达并且执行自身。因此,需要为每一个操作添加一个前置操作状态,通过添加的这一前置操作状态即可确定该操作的前置操作。
另外,前置操作状态类型确定单元330根据前置操作与操作之间的逻辑关系,确定前置操作状态类型,前置操作状态类型包括前置界面与前置配置;其中,在操作行为中的其中一个操作必须执行之后,才能执行所述其中一个操作的后一个操作时,其中一个操作视为后一个操作的前置配置;当操作行为中的其中两个或以上操作的前置操作为同一个时,前置操作视为两个或以上操作的前置界面。
例如,在执行“确认选中的背景图案”这一操作时,对于它而言,它的前置操作状态是“进入背景设置”,因为只要“进入背景设置”这一操作状态,就可以执行“确认选中的背景图案”这一操作,而不需要先执行“选择背景图案”这一操作,但是,当要完成对背景图案的修改时,在执行“确认选中的背景图案”之前,必须先执行“选择背景图案”这一操作。
也是就说,进入背景设置->选择背景图案->确认选中的背景图案是更换背景图案这个操作行为的流程,因此,可以将“进入背景设置”理解为“选择背景图案”和“确认选中的背景图案”这两个操作的前置界面,但是仅当必须执行“选择背景图案”这一操作之后才可以执行“确认选中的背景图案”的时候才能将“选择背景图案”视为“确认选中的背景图案”的前置配置。
对于前置配置,更为恰当的示例在于Android设置中的开启开发者选项,打开USB调试等功能。因为其必须首先到“关于手机”里去连续点击版本号才能进入“开发者模式”,然后才能进去“开发者选项”,在其中必须打开“开启开发者选项”,然后才能打开“USB调试”功能,否则该功能是无法使用的。此外,类似的例子还有提交反馈前,必须先验证网络的畅通等,在此不再作过多赘述。
此外,封装单元340进一步包括共性获取单元41,本实施例中的共性获取单元41主要用于获取前置界面与前置配置之间的共性,根据共性对操作行为进行封装。在封装的过程中,可以在必要的位置加入日志和截图,以方便统一管理和对逻辑进行修改判断。
综上,利用本发明提供的基于Android自动化测试框架的功能遍历系统进行功能遍历,能够将测试人员从繁琐的路径和状态设置细节中解放出来,从而使测试人员更专注于添加操作以及操作的判断,在减少测试人员工作量的同时,降低了修改难度,提高了测试人员的工作效率。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的实现提示窗展现广告的系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了,A1、一种基于Android自动化测试框架的功能遍历方法,包括:
将需要验证的操作行为细化到每一步操作;
确定每一步操作的前置操作;
根据所述操作和所述操作的前置操作,确定与所述前置操作相对应的前置操作状态类型;
根据前置操作状态类型对所述操作行为进行封装。
A2、根据A1所述的方法,其特征在于,在将需要验证的操作行为细化到每一步操作的过程中,
将需要验证的操作行为分解成若干基础单元;其中,把一次对界面的操作和与所述操作相对应的操作状态确定为基础单元,由若干所述基础单元的组合构成所述操作行为。
A3、根据A1所述的方法,其特征在于,在确定所述每一步操作的前置操作的过程中,
设置所述操作的前置操作状态,根据所述前置操作状态确定所述操作的前置操作。
A4、根据A1所述的方法,其特征在于,在确定与所述前置操作相对应的前置操作状态类型的过程中,
根据所述前置操作与所述操作之间的逻辑关系,确定所述前置操作状态类型;其中,所述前置操作状态类型包括前置界面与前置配置。
A5、根据A4所述的方法,其特征在于,在根据所述前置操作状态类型对所述操作行为进行封装的过程中,
获取所述前置界面与前置配置之间的共性,根据所述共性对所述操作行为进行封装。
A6、根据A4所述的方法,其特征在于,在所述操作行为中的其中一个操作必须执行之后,才能执行所述其中一个操作的后一个操作时,所述其中一个操作视为所述后一个操作的前置配置。
A7、根据A4所述的方法,其特征在于,当所述操作行为中的其中两个或以上操作的前置操作为同一个时,所述前置操作视为所述两个或以上操作的前置界面。
B8、一种基于Android自动化测试框架的功能遍历系统,包括:
操作行为细化单元,用于将需要验证的操作行为细化到每一步操作;
前置操作确定单元,用于确定每一步操作的前置操作;
前置操作状态类型确定单元,用于根据所述操作和所述操作的前置操作,确定与所述前置操作相对应的前置操作状态类型;
封装单元,用于根据前置操作状态类型对所述操作行为进行封装;其中,在Android自动化测试框架上对所述操作行为进行封装。
B9、根据B8所述的系统,其特征在于,所述操作行为细化单元进一步包括:
基础单元确定模块,用于把一次对界面的操作和与所述操作相对应的操作状态确定为基础单元,由若干所述基础单元的组合构成所述操作行为。
B10、根据B8所述的系统,其特征在于,所述前置操作确定单元进一步包括:
前置操作状态设置单元,用于设置所述操作的前置操作状态,根据所述前置操作状态确定所述操作的前置操作。
B11、根据B8所述的系统,其特征在于,所述前置操作状态类型确定单元根据所述前置操作与所述操作之间的逻辑关系,确定所述前置操作状态类型,所述前置操作状态类型包括前置界面与前置配置;其中,
在所述操作行为中的其中一个操作必须执行之后,才能执行所述其中一个操作的后一个操作时,所述其中一个操作视为所述后一个操作的前置配置;
当所述操作行为中的其中两个或以上操作的前置操作为同一个时,所述前置操作视为所述两个或以上操作的前置界面。
B12、根据B11所述的系统,其特征在于,所述封装单元进一步包括:
共性获取单元,用于获取所述前置界面与前置配置之间的共性,根据所述共性对所述操作行为进行封装。

Claims (12)

1.一种基于Android自动化测试框架的功能遍历方法,其特征在于,所述方法在Android自动化测试框架上对需要验证的操作行为进行封装,所述操作行为是多个由用户一次对界面的操作和该操作相对应的操作状态作为基础单元的所述基础单元的组合构成的行为,包括:
将需要验证的操作行为细化到每一步操作;
确定每一步操作的前置操作;
根据所述操作和所述操作的前置操作,确定与所述前置操作相对应的前置操作状态类型;
根据前置操作状态类型对所述操作行为进行封装。
2.如权利要求1所述的基于Android自动化测试框架的功能遍历方法,其特征在于,在将需要验证的操作行为细化到每一步操作的过程中,
将需要验证的操作行为分解成若干基础单元;其中,把一次对界面的操作和与所述操作相对应的操作状态确定为基础单元,由若干所述基础单元的组合构成所述操作行为。
3.如权利要求1所述的基于Android自动化测试框架的功能遍历方法,其特征在于,在确定所述每一步操作的前置操作的过程中,
设置所述操作的前置操作状态,根据所述前置操作状态确定所述操作的前置操作。
4.如权利要求1所述的基于Android自动化测试框架的功能遍历方法,其特征在于,在确定与所述前置操作相对应的前置操作状态类型的过程中,
根据所述前置操作与所述操作之间的逻辑关系,确定所述前置操作状态类型;其中,所述前置操作状态类型包括前置界面与前置配置。
5.如权利要求4所述的基于Android自动化测试框架的功能遍历方法,其特征在于,在根据所述前置操作状态类型对所述操作行为进行封装的过程中,
获取所述前置界面与前置配置之间的共性,根据所述共性对所述操作行为进行封装。
6.如权利要求4所述的基于Android自动化测试框架的功能遍历方法,其特征在于,
在所述操作行为中的其中一个操作必须执行之后,才能执行所述其中一个操作的后一个操作时,所述其中一个操作视为所述后一个操作的前置配置。
7.如权利要求4所述的基于Android自动化测试框架的功能遍历方法,其特征在于,
当所述操作行为中的其中两个或以上操作的前置操作为同一个时,所述前置操作视为所述两个或以上操作的前置界面。
8.一种基于Android自动化测试框架的功能遍历系统,包括:
操作行为细化单元,用于将需要验证的操作行为细化到每一步操作,所述操作行为是多个由用户一次对界面的操作和该操作相对应的操作状态作为基础单元的所述基础单元的组合构成的行为;
前置操作确定单元,用于确定每一步操作的前置操作;
前置操作状态类型确定单元,用于根据所述操作和所述操作的前置操作,确定与所述前置操作相对应的前置操作状态类型;
封装单元,用于根据前置操作状态类型对所述操作行为进行封装;其中,在Android自动化测试框架上对所述操作行为进行封装。
9.如权利要求8所述的基于Android自动化测试框架的功能遍历系统,其中,所述操作行为细化单元进一步包括:
基础单元确定模块,用于把一次对界面的操作和与所述操作相对应的操作状态确定为基础单元,由若干所述基础单元的组合构成所述操作行为。
10.如权利要求8所述的基于Android自动化测试框架的功能遍历系统,其中,所述前置操作确定单元进一步包括:
前置操作状态设置单元,用于设置所述操作的前置操作状态,根据所述前置操作状态确定所述操作的前置操作。
11.如权利要求8所述的基于Android自动化测试框架的功能遍历系统,其中,所述前置操作状态类型确定单元根据所述前置操作与所述操作之间的逻辑关系,确定所述前置操作状态类型,所述前置操作状态类型包括前置界面与前置配置;其中,
在所述操作行为中的其中一个操作必须执行之后,才能执行所述其中一个操作的后一个操作时,所述其中一个操作视为所述后一个操作的前置配置;
当所述操作行为中的其中两个或以上操作的前置操作为同一个时,所述前置操作视为所述两个或以上操作的前置界面。
12.如权利要求11所述的基于Android自动化测试框架的功能遍历系统,其中,所述封装单元进一步包括:
共性获取单元,用于获取所述前置界面与前置配置之间的共性,根据所述共性对所述操作行为进行封装。
CN201610509873.4A 2016-06-30 2016-06-30 基于Android自动化测试框架的功能遍历方法及系统 Active CN106126425B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610509873.4A CN106126425B (zh) 2016-06-30 2016-06-30 基于Android自动化测试框架的功能遍历方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610509873.4A CN106126425B (zh) 2016-06-30 2016-06-30 基于Android自动化测试框架的功能遍历方法及系统

Publications (2)

Publication Number Publication Date
CN106126425A CN106126425A (zh) 2016-11-16
CN106126425B true CN106126425B (zh) 2018-11-30

Family

ID=57467846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610509873.4A Active CN106126425B (zh) 2016-06-30 2016-06-30 基于Android自动化测试框架的功能遍历方法及系统

Country Status (1)

Country Link
CN (1) CN106126425B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528434A (zh) * 2016-12-16 2017-03-22 上海携程国际旅行社有限公司 自动化测试的关键字前置的处理方法及系统
CN108959064B (zh) * 2017-05-25 2022-11-08 腾讯科技(深圳)有限公司 自动化测试的弹窗处理方法及装置
CN107451062B (zh) * 2017-08-09 2020-12-29 百度在线网络技术(北京)有限公司 一种用户界面遍历测试方法、装置、服务器、存储介质
CN107943685B (zh) * 2017-10-30 2021-06-04 北京奇虎科技有限公司 一种遍历路径生成方法、装置、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064782A (zh) * 2011-10-21 2013-04-24 腾讯科技(深圳)有限公司 一种获取控件的方法及装置
CN103530221A (zh) * 2012-07-02 2014-01-22 北京大学 一种Android系统中程序行为与界面操作映射方法
US8638906B1 (en) * 2010-07-20 2014-01-28 Convergys Customer Management Delaware Llc Automated application testing
CN104899140A (zh) * 2015-06-03 2015-09-09 上海斐讯数据通信技术有限公司 一种移动终端组件的测试方法
CN104933174A (zh) * 2015-07-01 2015-09-23 北京博睿宏远科技发展有限公司 基于控件自动化遍历解决手机app机型适配问题的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8638906B1 (en) * 2010-07-20 2014-01-28 Convergys Customer Management Delaware Llc Automated application testing
CN103064782A (zh) * 2011-10-21 2013-04-24 腾讯科技(深圳)有限公司 一种获取控件的方法及装置
CN103530221A (zh) * 2012-07-02 2014-01-22 北京大学 一种Android系统中程序行为与界面操作映射方法
CN104899140A (zh) * 2015-06-03 2015-09-09 上海斐讯数据通信技术有限公司 一种移动终端组件的测试方法
CN104933174A (zh) * 2015-07-01 2015-09-23 北京博睿宏远科技发展有限公司 基于控件自动化遍历解决手机app机型适配问题的方法

Also Published As

Publication number Publication date
CN106126425A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
US8515876B2 (en) Dry-run design time environment
Amalfitano et al. A gui crawling-based technique for android mobile application testing
CN110032519B (zh) 云函数调试方法、装置、计算机设备及存储介质
CN106126425B (zh) 基于Android自动化测试框架的功能遍历方法及系统
US20070074168A1 (en) Automated step type determination
US11449370B2 (en) System and method for determining a process flow of a software application and for automatically generating application testing code
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
US10515001B2 (en) System and method for automating testing of software applications
Costa et al. Pattern based GUI testing for mobile applications
CN108021791B (zh) 数据保护方法及装置
CN108874649B (zh) 自动化测试脚本的生成方法、装置及其计算机设备
US10877778B2 (en) Sequence detection and automation for complex portal environments
CN110765746B (zh) 基于事件代理的表单自动生成方法和系统
Coker et al. A qualitative study on framework debugging
Hans Appium essentials
Verma Mobile Test Automation With Appium
CN111414309A (zh) 应用程序的自动化测试方法、计算机设备和存储介质
CN112882930A (zh) 自动化测试方法、装置、存储介质及电子设备
CN104484176B (zh) 一种安卓系统窗口对象获取方法和装置
CN103186459A (zh) 基于脚本的java图形用户界面自动测试方法
US9489284B2 (en) Debugging method and computer program product
CN114116466B (zh) 一种基于操作日志的单元测试方法、装置及介质
CN105912468B (zh) 开放平台运行脚本的方法和开放平台系统
CN104699618A (zh) 指定用户对高权限进程自动化测试的方法及装置
JP4957521B2 (ja) ソフトウェア部分テストシステム、それに用いる方法およびプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant before: Qizhi software (Beijing) Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20181008

Address after: 100015, 15 floor, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing, 17 story 1701-10A

Applicant after: BEIJING VISION WORLD TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant before: Beijing Qizhi Business Consulting Co.,Ltd.

GR01 Patent grant
GR01 Patent grant