CN108595343A - 应用程序的测试方法及装置 - Google Patents
应用程序的测试方法及装置 Download PDFInfo
- Publication number
- CN108595343A CN108595343A CN201810564778.3A CN201810564778A CN108595343A CN 108595343 A CN108595343 A CN 108595343A CN 201810564778 A CN201810564778 A CN 201810564778A CN 108595343 A CN108595343 A CN 108595343A
- Authority
- CN
- China
- Prior art keywords
- test
- image
- abnormal
- test image
- abnormality
- 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
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
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
- G06F11/3684—Test management for test design, e.g. generating new test cases
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
本发明提供了一种应用程序的测试方法及装置,该方法包括:接收步骤,接收提交的测试配置信息;测试步骤,根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像;根据所述测试图像,展示导致测试异常的操作轨迹。本发明实施例可以根据测试图像展示测试异常的操作轨迹,直观地展示测试过程中可能出现的测试异常以及测试异常发生的过程,便于快速准确地确定测试异常出现的位置以及可能导致该测试异常的原因,提高测试的准确性和效率。
Description
技术领域
本发明涉及软件技术领域,特别是涉及一种应用程序的测试方法及装置。
背景技术
随着软件技术的发展,越来越多的应用程序已经逐渐应用到用户生活和工作的方方面面,从而提高了用户的生活质量和工作效率。为了确保应用程序能够稳定运行,通常需要对应用程序进行测试。
现有技术中,可以在电脑中安装测试程序,将安装有应用程序的电子设备与电脑连接,通过该测试程序对该应用程序进行测试,并输出文本形式的测试日志,然后由相关技术人员对该测试日志进行分析,确定出现测试异常的位置以及可能导致该测试异常的原因。但由于需要依赖人工对对繁琐的测试日志文本进行分析,不仅耗时耗力、测试的效率低下,而且容易受到人工经验的限制,测试的准确性也较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用程序的测试方法及装置。
依据本发明的一个方面,提供了一种应用程序的测试方法,包括:接收步骤,接收提交的测试配置信息;
测试步骤,根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像;
根据所述测试图像,展示导致测试异常的操作轨迹。
根据本发明的另一方面,提供了一种应用程序的测试装置,包括:
接收模块,用于接收提交的测试配置信息;
测试模块,用于根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像;
第一展示模块,用于根据所述测试图像,展示导致测试异常的操作轨迹。
依据本发明实施例,能够接收提交的测试配置信息,根据测试配置信息对应用程序进行测试,并能够获取测试为过程中的测试图像,由于测试图像能够说明应用程序在测试过程中的运行状态,因此,可以根据测试图像展示测试异常的操作轨迹,从而直观地展示测试过程中可能出现的测试异常以及测试异常发生的过程,便于快速准确地确定测试异常出现的位置以及可能导致该测试异常的原因,提高测试的准确性和效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明实施例一的一种应用程序的测试方法的步骤流程图;
图2是根据本发明实施例二的一种应用程序的测试方法的步骤流程图;
图3是根据本发明实施例三的一种应用程序的装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,示出了本发明实施例中的一种应用程序的测试方法的步骤流程图。具体步骤包括:
步骤101,接收步骤,接收提交的测试配置信息。
为了按照设定的方式对应用程序进行测试,可以接收测试配置信息。
测试配置信息进行测试应用程序所需的信息。该测试配置信息可以包括被测试的应用程序的位置信息、测试参数和日志分析报告存储路径。
应用程序的位置信息为说明测试应用程序所在位置的信息,可以包括一个路径名称,从而指向应用程序在本地或者网络中的位置,以确保测试程序能够根据该应用程度的位置信息加载该应用程序。
其中,测试配置信息中可以包括一个以上的应用程序的位置信息,从而便于对一个以上的应用程序进行加载和测试。
测试参数为对应用程序进行测试所需的参数。测试参数可以包括基本配置参数、限制条件参数、事件类型参数和调试参数。
基本配置参数为测试所需的基本参数,可以包括日志输出等级、执行次数和测试日志存储路径。
日志输出等级为输出测试日志的详细程度,当日志输出等级越高,测试日志的详细程度可以越高。以monkey测试为例,“-v”表示日志输出等级为0,“-v-v”表示日志输出等级为1,“-v-v-v”表示日志输出等级为2。
其中,可以事先设置一个以上的日志输出等级以及各日志输出等级所对对应的测试日志中包括的信息,以便于根据对应用程序的测试需求进行确定相应的日志输出等级。
执行次数为执行测试事件的次数。其中,测试事件为对应用程序进行测试的事件,比如在monkey测试中,测试事件即可以包括模拟用户对应用程序进行点击和滑动等操作的事件。
测试日志存储路径为说明保存测试日志位置的信息。
限制条件参数为对测试对象进行限制的参数,可以包括应用程序标识以及应用组件(Activity)类别。
应用组件为一种用于与用户之间进行交互的应用程序组件,包括在屏幕中显示控件,监听并对用户对该显示控件的触摸和滑动等操作进行响应。
应用组件类别为应用程序中包括的应用组件所属的类别,从而使测试程序针对属于该应用组件类别的应用组件进行测试。
事件类型参数为说明测试事件所属事件类型分布的参数。事件类型参数可以包括种子数、事件间隔和事件类型百分数。
其中,事件类型为测试事件的类型。
例如,事件类型可以包括触摸事件(touch,指点击屏幕并抬起)、滑动事件(motion,指点击屏幕,滑动后抬起)、滚动球事件(trackball,指针对滚动球的操作)、基本导航事件(nav,指针对上下左右的事件)、主要导航事件(majornav,指针对菜单键、返回键等功能导航的事件)、调整系统事件(syskeys,指调节系统的事件,比如针对电源键或音量键的事件)、调整其它事件(anyevent,指针对其它不常用按键的事件)和调整Activity启动百分比事件(switch)中的至少一个。
种子数为伪随机数生成器的种子数值,用于生成测试事件序列(即一个以上的测试事件构成的序列),通过相同的种子数,可以生成相同的测试事件序列。以monkey测试为例的,当通过相同的seed(种子)值,即种子数,运行monkey工具时,能够生成相同的测试事件序列。
事件间隔为执行相邻两个测试事件之间的时间间隔。
事件类型百分数为在此次测试过程中,同一类型的测试事件占所有测试事件的百分比。
调试参数为对测试过程或输出进行约束的参数。
例如,在monkey测试中,调试参数可以包括下述中的至少一个:dbg-no-events:初始化启动应用组件、wait-dbg:停止执行中的测试,直至与调试器连接、ignore-timeouts:忽略超时错误,如果设置该项,则当测试过程中发生超时错误时继续进行测试,直至测试事件执行完毕、ignore-security-exception:当测试过程发生许可错误导致测试异常时,忽略并继续测试、ignore-crashes:当应用程度发生崩溃时或测试异常时忽略并继续测试、monitor-native-crashes:监视并报告系统中本地代码的崩溃事件、kill-process-after-error:当应用程序出现错误时停止发生错误的进程、hprof:在生成测试事件序列前后生成简要报告。
测试异常为应用程序在测试为过程中所出现的错误、崩溃或者其它问题。
日志分析报告存储路径为存储对测试日志的分析报告的位置信息。
可以向用户提供图形界面,并通过该图形界面接收提交的测试配置信息;或者,可以接收预设格式的配置文件中,并将该配置文件存储至预设存储位置,从而可以从而该预设存储位置获取该配置文件,并从该配置文件中获取该测试配置信息。当然,在实际应用中,也可以通过其它方式接收提交的测试配置信息。
配置文件为存储测试配置信息的文件。该配置文件的预设格式可以通过事先确定,比如,该预设格式可以包括纯文本格式。
存储配置文件的预设存储位置可以通过事先确定,比如,该预设存储位置可以包括测试程序所在的根目录。
步骤102,测试步骤,根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像。
为了快速准确地对应用程序进行测试,可以按照前述中设置的测试配置信息,对应用程序进行测试,且为了便于后续对测试过程中发生测试异常的位置和原因进行分析,可以获取测试过程的测试图像。
测试图像为对应用程序进行测试的过程中,对应用程序的运行界面进行截屏或录屏得到的图像,从而能够展示应用程序在测试过程中的运行状态。
可以在根据测试配置信息开始对应用程序进行测试时,对应用程序的运行界面进行截屏或录屏,并在根据该测试配置信息结束对应用程序进行测试时,停止截屏或录屏,从而得到该测试图像。或者,可以为了进一步便于后续对测试进行分析,可以在当检测到测试事件开始时,启动对应用程序的运行界面进行截屏或录屏,并在检测到该测试事件结束时,停止截屏或录屏,从而得到分别针对各测试事件的测试图像;或者,可以在当检测到被测试的应用组件切换时,启动对应用程序的运行界面进行截屏或录屏,并在检测到该应用组件被切换时,停止截屏或录屏,从而得到分别针对各应用组件的测试图像。
步骤103,根据所述测试图像,展示导致测试异常的操作轨迹。
由于测试图像能够展示应用程序在运行过程中的状态,从而能够直观地展示测试过程中可能出现的测试异常以及测试异常发生的过程,进而使用户快速准确地确定测试异常出现的位置以及可能导致该测试异常的原因,因此,为了提高测试准确性和效率,便于后续针对测试异常进行修复,也降低对应用程序进行测试的门槛,可以基于测试图像,展示导致测试异常的操作轨迹。
操作轨迹为应用程序根据测试事件进行运行产生的轨迹,该操作轨迹可以包括在前述中的日志分析报告中。相应的,测试异常的操作轨迹为应用程序根据测试事件进行运行产生异常的轨迹,因此,测试异常的操作轨迹即能够说明测试异常所在的位置、以及可能导致该测试异常的原因。
对于任一测试异常,可以从测试图像中获取对应于该测试异常的测试图像作为异常测试图像,将异常测试图像按照生成时间顺序进行排序,所得到的异常测试图像序列即可作为该测试异常的操作轨迹。
其中,测试图像的生成时间,可以在进行截屏或录屏生成该测试图像时确定。
可以从测试日志中获取测试异常发生的时间,根据该测试异常发生的时间,从测试图像中获取预设时间范围内的测试图像,将获取的测试图像作为异常测试图像。
测试日志可以由测试程序完成测试时生成得到。测试日志可以包括简要测试日志和完整测试日志。
简要测试日志为简要说明测试结果的日志,可以记录有测试的种子数、执行次数、耗费时间、测试异常和应用程序标识中的至少一个。当然,在实际应用中,简要测试日志还可以包括其它与测试有关的信息。
耗费时间为完成测试所耗费的时间。
应用程序标识用于标识一个应用程序,该应用程序标识可以包括应用程序的包名。
完整测试日志为详细说明测试过程和/或测试结果的日志,可以记录发生测试异常的时间、异常类型、PID(Process ID,进程标识)、测试异常的级别、测试异常的标签和异常信息中的至少一个。当然,在实际应用中,完整测试日志还可以包括其它更加详细的与测试过程或测试结果有关的信息。
异常类型为测试异常所属的类型,可以包括崩溃(Crash)、ANR(Application NotResponding,应用程序未响应)。
PID为发生测试异常的应用程序的进程ID。
测试异常的级别为测试异常所属的级别,以说明该测试异常的严重程度或重要程度。
测试异常的标签为事先设定备注信息。
异常信息为描述测试异常的信息,比如,异常信息为“Null Pointer Exception”时,即说明测试异常为空指针。
可以按照正则语法,基于预设异常关键词,从完整测试日志中搜索,得到与该预设异常关键词匹配的测试异常,进而查找到该测试异常发生的时间。
正则语法为一种可用于字符串匹配的匹配规则。
预设异常关键词可以通过事先根据测试异常中包括的字符串设置得到,比如,预设异常关键词可以包括Crash和ANR中的至少一个。
预设时间范围可以通过事先确定得到,包括接收用户提交得到等。例如,预设时间范围可以包括测试异常发生之前3分钟至发生之后1分钟之间。
在本申请的另一可选实施例中,可以根据该测试异常发生的时间,从测试图像中获取与该时间对应的测试图像、以及在该测试图像之前的预设数目的测试图像,将获取的测试图像作为异常测试图像。
其中,预设数目可以通过事先设置确定,包括接收用户提交等。例如,预设数目可以为50-100。
当然,在实际应用中,还可以通过其它方式展示测试异常的操作轨迹,比如可以直接将在测试过程中获取到的测试图像按照生成时间排序,将得到的图像序列作为测试异常的操作轨迹进行展示。
在本申请实施例中,能够接收提交的测试配置信息,根据测试配置信息对应用程序进行测试,并能够获取测试为过程中的测试图像,由于测试图像能够说明应用程序在测试过程中的运行状态,因此,可以根据测试图像展示测试异常的操作轨迹,从而直观地展示测试过程中可能出现的测试异常以及测试异常发生的过程,便于快速准确地确定测试异常出现的位置以及可能导致该测试异常的原因,提高测试的准确性和效率。
实施例二
参照图2,示出了本发明实施例中的一种应用程序的测试方法的步骤流程图。具体步骤包括:
步骤201,测试程序启动。
为了对应用程序进行测试,可以启动测试程序。
测试程序为对应用程序进行测试的程序,可以包括用于安全性测试、稳定性测试等至少一种测试。
例如,测试程序可以包括封装的monkey测试工具。monkey测试工具为一种对安卓应用程序进行测试的命令行工具,可以模拟与用户的按键输入、触摸屏输入和手势输入等,以测试被测应用程度的稳定性和容错性能。
用户可以通过点击该应用程序的桌面图标等方式,启动该测试程序。
当测试应用程序启动时,可以新建一个测试工程页面,便于后续基于此测试工程界面,与用户进行与测试有关的交互。
步骤202,通过图形界面接收所述测试配置信息。
为了便于接收测试配置信息以对应用程序进行测试,减少需要依赖用户搭建测试环境、通过命令行窗口编写测试命令和脚本的可能,降低对应用程序进行测试的难度,提高测试的效率,可以通过图像界面接收测试配置信息。
图形界面可以包括前述中测试工程页面的部分显示区域、子页面或者可以为与该测试工程页面存在关联关系的页面。
图形界面可以包括配置页面,从而可以通过配置页面接收测试配置信息。
配置页面为接收测试配置信息的页面。
步骤203,根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像。
其中,根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像的方式,可以参见前述中的相关描述,此处不再一一赘述。
在本申请实施例中,可选的,为了便于后续对测试进行分析,提高确定测试异常所在位置和原因的准确性和效率,可以确定当前测试的应用组件,通过所述应用组件对所述测试图像进行标记。也即是,测试图像中可以携带应用组件标识。
应用组件标识用于标识一个应用组件。
其中,可以在获取测试图像的过程中,根据当前测试所针对的应用组件,对当前获取到的测试图像进行标记。
在本申请实施例中,可选的,为了便于后续对测试进行分析,提高确定测试异常所在位置和原因的准确性和效率,可以确定当前的测试事件,通过所述测试事件对所述测试图像进行标记,通过测试事件和/或应用组件对测试图像进行标记,也即是,测试图像中可以携带测试事件标识。
测试事件标识用于标识一个测试事件。
其中,可以在获取测试图像的过程中,根据当前的测试事件,对当前获取到的测试图像进行标记。
当然,在实际应用中,还可以通过其它信息对测试图像进行标记,比如当前测试的应用程序的PID。
步骤204,通过测试异常分析界面显示测试结果。
为了能够直观地向用户展示测试结果,降低测试的操作难度,可以通过测试异常分析界面显示测试结果,该测试结果中可以包括测试异常的操作轨迹。
测试异常分析界面包括前述中测试工程页面的部分显示区域、子页面或者可以为与该测试工程页面存在关联关系的页面。
可以基于测试图像,展示测试异常的操作轨迹。
其中,基于测试图像展示测试异常的操作轨迹的方式,可以参见前述中的描述,此处不再一一赘述。
在本申请实施例中,可选的,由于在测试过程中获取到的测试图像可能较多,且可能与不同的测试异常相关,因此,为了减少与测试异常无关的测试图像可能对测试结果的分析过程造成干扰,提高展示测试异常的操作轨迹的准确性,进而提高测试的准确性和效率,可以从所述测试图像中获取所述测试异常对应的异常测试图像,将所述异常测试图像按照生成时间构成的图像序列确定为所述测试异常的操作轨迹。
其中,获取与测试异常对应的异常测试图像的方式,可以参见前述中的相关描述。
在本申请实施例中,可选的,由于应用程序可能包括一个以上的应用组件,在测试过程中可能针对不同的应用组件进行测试,相应的,不同的测试图像也可能会对应于不同的应用组件,因此,为了准确地获取发生测试异常的应用组件所对应的测试图像,进而提高获取到异常测试图像的准确性,提高展示测试异常的操作轨迹的准确性,可以确定所述测试异常对应的目标应用组件,获取针对所述目标应用组件的测试图像,从针对所述目标应用组件的测试图像中,获取所述测试异常之前特定数目的测试事件所对应的测试图像,将获取到的测试图像确定为所述异常测试图像。也即是,先对可能发生测试异常的目标应用组件进行定位,进而根据定位的目标应用组件,获取异常测试图像。
目标应用组件为当前测试的应用组件。
由前述可知,可以通过在完整测试日志中搜索得到测试异常,因此,当确定该测试异常在该完整测试日志中的位置时,可以基于该测试异常在完整测试日志中的位置,获取距该位置之前和之后最近的应用组件切换标识之间的信息,根据获取到的信息确定该测试异常所对应的目标应用组件。
应用组件切换标识为说明对测试的应用组件进行切换的标识,该应用组件切换标识可以通过事先确定。例如,在monkey测试中,应用组件切换标识可以包括“switch”。
可以通过日志信息提取器,基于该测试异常在完整测试日志中的位置,获取距该位置之前和之后最近的应用组件切换标识之间的信息。
其中,日志信息提取器为从测试日志中提取信息的工具。
对于提取到的信息,可以将该信息以文本形式展示给用户,接收用户提交的目标应用组件标识,从而确定目标应用组件,也即是,由用户根据展示的信息确定目标应用组件。当然,在实际应用中,也可以通过其它方式,根据从完整测试日志中提取的信息,确定目标应用组件,比如从提取的信息中查找目标应用组件标识,以确定目标应用组件。
目标应用组件标识为目标应用组件的标识。
特定数目可以通过事先确定得到,包括接收用户提交得到等。比如,特定数目可以包括50-100。
在本申请实施例中,可选的,由前述可知,测试图像中可以携带应用组件标识,因此,为了提高获取针对目标应用组件的测试图像的准确性和效率,可以获取携带有目标应用组件标识的测试图像。
可以按照测试图像所携带的应用组件标识,对测试图像进行筛选,从而得到携带目标应用组件标识的测试图像。
在本申请的另一可选实施例中,可以在确定目标应用组件时,按照相同的测试配置信息,再次对应用程序进行测试,并在检测到针对目标应用组件进行测试时,通过截屏或录屏,得到针对目标应用组件的测试图像。
在本申请实施例中,可选的,为了使用户能够更加直观地感知到异常测试图像中的异常位置,从而便于进一步快速准确地确定测试异常发生的位置和原因,提高测试的准确性和效率,可以将所述异常测试图像与样本测试图像进行对比,确定所述异常测试图像中的异常位置,对所述异常位置进行标记,将标记后的异常测试图像按照生成时间构成的图像序列确定为所述操作轨迹。
样本测试图像为按照相同的测试配置信息,对应用程序进行测试且未出现测试异常的情况下得到测试图像。样本测试图像可以通过事先对应用程序进行测试得到。
可以将异常测试图像和样本测试图像分别所具有的图像特征进行比较,从而确定异常测试图像中与样本测试图像是否具有不同的位置,若存在不同的位置,该位置即为异常位置,从而可能与发生的测试异常有关。
图像特征为图像具有的特征,可以包括纹理特征或像素值特征,当然在实际应用中,也可以包括其它的特征。
在本申请实施例中,可选的,为了提高对比效率,并使用户能够更加直观地感知到异常位置,提高测试的准确性和效率,可以将所述异常测试图像与所述样本测试图像中相同位置的像素值进行对比,将所述异常测试图像与所述样本测试图像中像素值不同的位置,确定为所述异常位置。
可以通过对比算法,将异常测试图像与样本测试图像相同位置的像素点的R(红)G(绿)B(蓝)值进行比较,从而确定该位置的像素点的像素值是否相同。
当确定异常测试图像中的异常位置时,可以通过该异常位置的像素点在该异常测试图像中的坐标,对该位置进行标记。
在本申请实施例中,可选的,由于测试图像是通过截屏或录屏的得到的,因此该测试图像中可能会包括一些与测试无关的信息,比如屏幕中的状态栏等,因此,为了减少将异常测试图像与样本测试图像进行对比所处理的数据量,即提高将异常测试图像与样本测试图像进行对比的效率,以及提高对比的准确性,在将所述异常测试图像与样本测试图像进行对比之前,可以对异常测试图像进行预处理。
预处理可以包括裁剪异常测试图像中的状态栏。当然,在实际应用中,预处理还可以包括其它操作,比如对测试图像进行旋转或尺寸变换等。
在本申请实施例中,可选的,为了便于直观地向用户展示对应用程序进行测试所出现的测试异常,以便于用户对应用程序出现测试异常的原因进行进一步分析和处理,或者对应用程序进行进一步的评估,从而进一步提高测试的准确性,可以通过饼图和/或柱状图展示所述测试异常的分布。
其中,展示测试异常的分布的饼图和/或柱状图可以包括在前述的测试结果和日志分析报告中。
由前述可知,能够从测试日志中获取测试异常,以及发生测试异常的时间、异常类型、PID(Process ID,进程标识)、测试异常的级别、测试异常的标签和异常信息中的至少一个,因此,可以按照发生测试异常的时间、异常类型、PID(Process ID,进程标识)、测试异常的级别、测试异常的标签和异常信息中的至少一个,生成测试异常在发生时间、异常类型、PID、测试异常的级别、测试异常的标签和异常信息等至少一个维度的分布。
在本申请实施例中,可选的,为了便于用户对应用程序出现测试异常的原因进行进一步分析和处理,或者对应用程序进行进一步的评估,从而进一步提高测试的准确性,测试结果可以包括测试异常列表。也即是,将测试异常列表以及上述与测试异常相关的信息进行结构化显示和存储。
测试异常列表为展示测试异常的列表,其中可以包括测试异常以及发生测试异常的时间、异常类型、PID(Process ID,进程标识)、测试异常的级别、测试异常的标签和异常信息中的至少一个。
其中,测试异常列表可以包括在前述的测试结果和日志分析报告中。
可以按照发生测试异常的时间、异常类型、PID(Process ID,进程标识)、测试异常的级别、测试异常的标签和异常信息中的至少一个维度,对测试异常列表中的测试异常进行排序。
在本申请实施例中,可选的,为了便于用户对应用程序出现测试异常的原因进行进一步分析和处理,或者对应用程序进行进一步的评估,测试结果中可以包括简要测试日志和完整测试日志。也即是,将简要测试日志和完整测试日志进行展示。
其中,可以先向用户展示简要测试日志和完整测试日志。若测试日志中未记录由测试异常,即测试过程中未发生测试异常,则可以打印测试日志,结束测试。若测试日志中记录有测试异常,可以按照前述中的相关描述,展示测试异常的操作轨迹。或者,若测试日志中记录有测试异常,可以先展示测试异常列表,且在接收到用户针对至少一个测试异常的选择操作时,按照前述中的相关描述,展示该至少一个测试异常的操作轨迹。
选择操作为在测试异常列表中选择测试异常的操作,该选择操作可以由用户触发。例如,测试异常列表中可以针对测试异常展示选择按钮,基于该选择按钮接收用户的选择操作。
在本申请实施例中,首先,能够接收提交的测试配置信息,根据测试配置信息对应用程序进行测试,并能够获取测试为过程中的测试图像,由于测试图像能够说明应用程序在测试过程中的运行状态,因此,可以基于测试图像展示测试异常的操作轨迹,从而直观地展示测试过程中可能出现的测试异常以及测试异常发生的过程,便于快速准确地确定测试异常出现的位置以及可能导致该测试异常的原因,提高测试的准确性和效率。
另外,能够从测试图像中获取测试异常的异常测试图像,将异常测试图像按照生成时间构成的图像序列确定为测试异常的操作轨迹,从而减少了与测试无关的测试图像可能对测试结果的分析过程造成干扰,提高了展示测试异常的操作轨迹的准确性,进而提高了测试的准确性和效率。
另外,能够确定测试异常所针对的目标应用组件,获取针对该目标应用组件的测试图像,并进一步从针对该目标应用组件的测试图像中获取异常测试图像,即先对可能发生测试异常的目标应用组件进行定位,再根据定位后的目标应用组件获取异常测试图像,提高了获取异常测试图像的准确性,进而也提高了展示测试异常的操作轨迹的准确性。
另外,能够将异常测试图像与样本测试图像的像素值进行对比,从而确定异常测试图像中的异常位置,并对该异常位置进行标记,从而直观地展示异常测试图像中可能与测试异常有关的位置,进一步便于快速准确地确定测试异常发生的位置和原因,提高了测试的准确性和效率。
另外,能够通过图形界面接收测试配置信息,减少了需要依赖用户搭建测试环境、通过命令行窗口编写测试命令和脚本的可能,降低了对应用程序进行测试的难度,提高了测试的效率。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
实施例三
参照图3,示出了本发明实施例中的一种应用程序的测试装置的结构框图。所述装置可以包括:
接收模块301,用于接收提交的测试配置信息;
测试模块302,用于根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像;
第一展示模块303,用于根据所述测试图像,展示导致测试异常的操作轨迹。
可选的,所述第一展示模块包括:
获取子模块,用于从所述测试图像中获取所述测试异常对应的异常测试图像;
第一确定子模块,用于将所述异常测试图像按照生成时间构成的图像序列确定为所述测试异常的操作轨迹。
可选的,所述获取子模块还用于:
确定所述测试异常对应的目标应用组件;
获取针对所述目标应用组件的测试图像;
从针对所述目标应用组件的测试图像中,获取所述测试异常之前特定数目的测试事件所对应的测试图像;
将获取到的测试图像确定为所述异常测试图像。
可选的,所述测试模块还包括:
第二确定子模块,用于确定当前测试的应用组件;
标记子模块,用于通过所述应用组件对所述测试图像进行标记;
所述获取子模块还用于:
获取携带有目标应用组件标识的测试图像。
可选的,所述装置还包括:
对比模块,用于将所述异常测试图像与样本测试图像进行对比,确定所述异常测试图像中的异常位置;
标记模块,用于对所述异常位置进行标记;
确定模块,用于将标记后的异常测试图像按照生成时间构成的图像序列确定为所述操作轨迹。
可选的,所述对比模块包括:
对比子模块,用于将所述异常测试图像与所述样本测试图像中相同位置的像素值进行对比;
第三确定子模块,用于将所述异常测试图像与所述样本测试图像中像素值不同的位置,确定为所述异常位置。
可选的,所述装置还包括:
第二展示模块,用于通过饼图和/或柱状图展示所述测试异常的分布。
可选的,所述接收模块包括:
接收子模块,用于通过图形界面接收所述测试配置信息。
对于上述应用程序的测试装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本申请实施例中,能够接收提交的测试配置信息,根据测试配置信息对应用程序进行测试,并能够获取测试为过程中的测试图像,由于测试图像能够说明应用程序在测试过程中的运行状态,因此,可以基于测试图像展示测试异常的操作轨迹,从而直观地展示测试过程中可能出现的测试异常以及测试异常发生的过程,便于快速准确地确定测试异常出现的位置以及可能导致该测试异常的原因,提高测试的准确性和效率。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的应用程序的测试方法及装置不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的应用程序的测试方法及装置方案中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种应用程序的测试方法,其特征在于,包括:
接收步骤,接收提交的测试配置信息;
测试步骤,根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像;
根据所述测试图像,展示导致测试异常的操作轨迹。
2.根据权利要求1所述的方法,其特征在于,所述根据所述测试图像,展示导致测试异常的操作轨迹包括:
从所述测试图像中获取所述测试异常对应的异常测试图像;
将所述异常测试图像按照生成时间构成的图像序列确定为所述测试异常的操作轨迹。
3.根据权利要求2所述的方法,其特征在于,所述从所述测试图像中获取所述测试异常对应的异常测试图像包括:
确定所述测试异常对应的目标应用组件;
获取针对所述目标应用组件的测试图像;
从针对所述目标应用组件的测试图像中,获取所述测试异常之前特定数目的测试事件所对应的测试图像;
将获取到的测试图像确定为所述异常测试图像。
4.根据权利要求3所述的方法,其特征在于,所述获取测试过程的测试图像包括:
确定当前测试的应用组件;
通过所述应用组件对所述测试图像进行标记;
所述获取针对所述目标应用组件的测试图像包括:
获取携带有目标应用组件标识的测试图像。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述异常测试图像与样本测试图像进行对比,确定所述异常测试图像中的异常位置;
对所述异常位置进行标记;
将标记后的异常测试图像按照生成时间构成的图像序列确定为所述操作轨迹。
6.根据权利要求5所述的方法,其特征在于,所述将所述异常测试图像与样本测试图像进行对比,确定所述异常测试图像中的异常位置包括:
将所述异常测试图像与所述样本测试图像中相同位置的像素值进行对比;
将所述异常测试图像与所述样本测试图像中像素值不同的位置,确定所述异常位置。
7.一种应用程序的测试装置,其特征在于,包括:
接收模块,用于接收提交的测试配置信息;
测试模块,用于根据所述测试配置信息对应用程序进行测试,并获取测试过程的测试图像;
第一展示模块,用于根据所述测试图像,展示导致测试异常的操作轨迹。
8.根据权利要求7所述的装置,其特征在于,所述第一展示模块包括:
获取子模块,用于从所述测试图像中获取所述测试异常对应的异常测试图像;
第一确定子模块,用于将所述异常测试图像按照生成时间构成的图像序列确定为所述测试异常的操作轨迹。
9.根据权利要求8所述的装置,其特征在于,所述获取子模块还用于:
确定所述测试异常对应的目标应用组件;
获取针对所述目标应用组件的测试图像;
从针对所述目标应用组件的测试图像中,获取所述测试异常之前特定数目的测试事件所对应的测试图像;
将获取到的测试图像确定为所述异常测试图像。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
对比模块,用于将所述异常测试图像与样本测试图像进行对比,确定所述异常测试图像中的异常位置;
标记模块,用于对所述异常位置进行标记;
确定模块,用于将标记后的异常测试图像按照生成时间构成的图像序列确定为所述操作轨迹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810564778.3A CN108595343A (zh) | 2018-06-04 | 2018-06-04 | 应用程序的测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810564778.3A CN108595343A (zh) | 2018-06-04 | 2018-06-04 | 应用程序的测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108595343A true CN108595343A (zh) | 2018-09-28 |
Family
ID=63630619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810564778.3A Pending CN108595343A (zh) | 2018-06-04 | 2018-06-04 | 应用程序的测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595343A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569184A (zh) * | 2019-07-31 | 2019-12-13 | 重庆小雨点小额贷款有限公司 | 一种测试方法及终端设备 |
CN111367816A (zh) * | 2020-03-25 | 2020-07-03 | 上海复深蓝软件股份有限公司 | 移动测试方法、装置、计算机设备及存储介质 |
CN112492294A (zh) * | 2019-09-12 | 2021-03-12 | 北京地平线机器人技术研发有限公司 | 应用程序测试方法、装置、系统、网络摄像头以及介质 |
CN112836340A (zh) * | 2020-12-31 | 2021-05-25 | 武汉网锐检测科技有限公司 | 一种基于红外光谱的pe塑料管断裂伸长率的识别方法 |
CN112860537A (zh) * | 2019-11-27 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 程序测试方法、装置、设备及存储介质 |
CN113553586A (zh) * | 2021-06-16 | 2021-10-26 | 深信服科技股份有限公司 | 病毒检测方法、模型训练方法、装置、设备及存储介质 |
CN113934645A (zh) * | 2021-12-16 | 2022-01-14 | 深圳市明源云链互联网科技有限公司 | 应用测试方法、系统、设备及计算机可读存储介质 |
CN114168468A (zh) * | 2021-12-07 | 2022-03-11 | 广州掌动智能科技有限公司 | 软件测试系统及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276946A1 (en) * | 2010-05-07 | 2011-11-10 | Salesforce.Com, Inc. | Visual user interface validator |
CN104331373A (zh) * | 2014-11-28 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种Monkey测试系统及方法 |
CN105183630A (zh) * | 2014-06-05 | 2015-12-23 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN106055473A (zh) * | 2016-05-23 | 2016-10-26 | 乐视控股(北京)有限公司 | 一种测试方法及装置 |
CN106598867A (zh) * | 2016-12-22 | 2017-04-26 | 深圳中兴网信科技有限公司 | 用户界面的测试方法及测试装置 |
-
2018
- 2018-06-04 CN CN201810564778.3A patent/CN108595343A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276946A1 (en) * | 2010-05-07 | 2011-11-10 | Salesforce.Com, Inc. | Visual user interface validator |
CN105183630A (zh) * | 2014-06-05 | 2015-12-23 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN104331373A (zh) * | 2014-11-28 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种Monkey测试系统及方法 |
CN106055473A (zh) * | 2016-05-23 | 2016-10-26 | 乐视控股(北京)有限公司 | 一种测试方法及装置 |
CN106598867A (zh) * | 2016-12-22 | 2017-04-26 | 深圳中兴网信科技有限公司 | 用户界面的测试方法及测试装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569184A (zh) * | 2019-07-31 | 2019-12-13 | 重庆小雨点小额贷款有限公司 | 一种测试方法及终端设备 |
CN112492294A (zh) * | 2019-09-12 | 2021-03-12 | 北京地平线机器人技术研发有限公司 | 应用程序测试方法、装置、系统、网络摄像头以及介质 |
CN112492294B (zh) * | 2019-09-12 | 2024-03-26 | 北京地平线机器人技术研发有限公司 | 应用程序测试方法、装置、系统、网络摄像头以及介质 |
CN112860537A (zh) * | 2019-11-27 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 程序测试方法、装置、设备及存储介质 |
CN111367816A (zh) * | 2020-03-25 | 2020-07-03 | 上海复深蓝软件股份有限公司 | 移动测试方法、装置、计算机设备及存储介质 |
CN112836340A (zh) * | 2020-12-31 | 2021-05-25 | 武汉网锐检测科技有限公司 | 一种基于红外光谱的pe塑料管断裂伸长率的识别方法 |
CN113553586A (zh) * | 2021-06-16 | 2021-10-26 | 深信服科技股份有限公司 | 病毒检测方法、模型训练方法、装置、设备及存储介质 |
CN113553586B (zh) * | 2021-06-16 | 2024-05-28 | 深信服科技股份有限公司 | 病毒检测方法、模型训练方法、装置、设备及存储介质 |
CN114168468A (zh) * | 2021-12-07 | 2022-03-11 | 广州掌动智能科技有限公司 | 软件测试系统及其控制方法 |
CN113934645A (zh) * | 2021-12-16 | 2022-01-14 | 深圳市明源云链互联网科技有限公司 | 应用测试方法、系统、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595343A (zh) | 应用程序的测试方法及装置 | |
US10698702B1 (en) | Automating interactions with software user interface | |
AU2017258963B2 (en) | Simultaneous multi-platform testing | |
Campos et al. | Gzoltar: an eclipse plug-in for testing and debugging | |
Fazzini et al. | Automated cross-platform inconsistency detection for mobile apps | |
KR101837109B1 (ko) | 트랜잭션을 논리적 서브시스템들의 맵을 통하는 흐름들로서 시각화하는 방법 | |
Gouveia et al. | Using HTML5 visualizations in software fault localization | |
US10073766B2 (en) | Building signatures of application flows | |
US10459830B2 (en) | Executable code abnormality detection | |
US20050071813A1 (en) | Program analysis tool presenting object containment and temporal flow information | |
US10509719B2 (en) | Automatic regression identification | |
US11436133B2 (en) | Comparable user interface object identifications | |
EP3547110B1 (en) | Code correction | |
US10365995B2 (en) | Composing future application tests including test action data | |
EP3333712A2 (en) | Simultaneous multi-platform testing | |
CN103984626A (zh) | 一种生成测试用例脚本的方法及装置 | |
CN113297064A (zh) | 代码覆盖率测试方法、系统、设备及存储介质 | |
EP3734460A1 (en) | Probabilistic software testing via dynamic graphs | |
US10924362B2 (en) | Management of software bugs in a data processing system | |
Wienke et al. | Performance regression testing and run-time verification of components in robotics systems | |
US10545858B2 (en) | Method for testing a graphical interface and corresponding test system | |
US20230124408A1 (en) | An approach for analysis of logs from a complex physical equipment | |
CN113220596B (zh) | 应用的测试方法、装置、设备、存储介质及程序产品 | |
Bodden et al. | Explainable static analysis | |
CN113448832B (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 |