CN112559338B - 应用程序的校验方法、装置、设备及存储介质 - Google Patents
应用程序的校验方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112559338B CN112559338B CN202011441172.4A CN202011441172A CN112559338B CN 112559338 B CN112559338 B CN 112559338B CN 202011441172 A CN202011441172 A CN 202011441172A CN 112559338 B CN112559338 B CN 112559338B
- Authority
- CN
- China
- Prior art keywords
- page
- application program
- priority
- user
- test case
- 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
Links
- 238000012795 verification Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012360 testing method Methods 0.000 claims abstract description 164
- 230000006870 function Effects 0.000 claims description 96
- 230000006399 behavior Effects 0.000 claims description 77
- 230000015654 memory Effects 0.000 claims description 24
- 230000003542 behavioural effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
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/3684—Test management for test design, e.g. generating new test cases
-
- 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
Abstract
本公开提供了一种应用程序的校验方法,涉及应用程序开发领域,具体的,涉及应用程序的校验与测试领域。该应用程序的校验方法包括:基于通过用户操作应用程序而产生的行为路径,生成多个测试用例;根据应用程序的待校验页面的类型和经过待校验页面的行为路径的产生次数两者中至少之一,确定针对待校验页面的测试用例的优先级;以及基于优先级,从多个测试用例中选择至少一个测试用例来对待校验页面的功能进行校验。本公开还提供了一种应用程序的校验装置、设备、存储介质和计算机程序产品。
Description
技术领域
本公开涉及应用程序开发领域,具体的,涉及应用程序的校验与测试领域,更具体的,涉及一种应用程序的校验方法、装置、设备、存储介质和计算机程序产品。
背景技术
随着生产移动终端设备的厂商的增加,移动终端设备的型号和功能也呈现多样性,由此导致终端用户场景越来越复杂。为了保证安装在移动终端设备上的应用程序在不同用户场景下功能能够正确实现并兼容,减少应用程序的崩溃率以及提升用户在使用应用程序时的体验,需要花费较高的成本,并投入大量的人力来对应用程序的功能进行校验和测试。
发明内容
有鉴于此,本公开提供了一种应用程序的校验方法、装置、设备、存储介质和计算机程序产品。
本公开的第一方面提供了一种应用程序的校验方法,包括:
基于通过用户操作应用程序而产生的行为路径,生成多个测试用例;
根据所述应用程序的待校验页面的类型和经过所述待校验页面的行为路径的产生次数两者中至少之一,确定针对待校验页面的测试用例的优先级;以及
基于所述优先级,从所述多个测试用例中选择至少一个测试用例来对所述待校验页面的功能进行校验。
本公开的第二方面提供了一种应用程序的校验装置,包括:
用例生成模块,配置为基于用户操作应用程序所产生的行为路径生成多个测试用例;
优先级确定模块,配置为根据所述应用程序的待校验页面的类型和经过所述应用程序的待校验页面的行为路径的产生次数两者中至少之一确定针对待校验页面的测试用例的优先级;以及
用例选择模块,配置为基于所述优先级,从所述多个测试用例中选择至少一个测试用例来对所述待校验页面的功能进行校验。
本公开的第三方面提供了一种应用程序的校验设备,包括:
存储器,存储有程序指令;以及
处理器,被配置为执行所述程序指令,以执行本公开第一方面所提供的方法。
本公开的第四方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现本公开第一方面所提供的方法。
本公开的第五方面提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开第一方面所提供的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了根据本公开实施例的应用程序的校验方法的流程图;
图2示出了根据本公开实施例的基于用户操作生成的行为路径的示意图;
图3示出了根据本公开实施例的确定测试用例的优先级的示意图;
图4示出了根据本公开实施例的用于对应用程序进行校验的示例架构;
图5示出了根据本公开实施例的应用程序的校验装置的框图;以及
图6示出了根据本公开实施例的适于对应用程序进行校验的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
图1示出了根据本公开实施例的应用程序的校验方法100的流程图。如图1所示,根据本公开实施例的应用程序的校验方法100包括以下步骤:
在步骤S110中,基于用户操作应用程序所产生的行为路径生成多个测试用例。
在步骤S120中,根据应用程序的待校验页面的类型和经过应用程序的待校验页面的行为路径的产生次数两者中至少之一确定针对待校验页面的测试用例的优先级。
在步骤S130中,基于优先级,从多个测试用例中选择至少一个测试用例来对待校验页面的功能进行校验。
具体的,在步骤S110中,可以基于用户在线下的非校验状态下对应用程序进行操作所产生的行为路径来生成所需的测试用例。用户在线下状态对应用程序的操作更能体现应用程序实际使用的过程,也更有利于发现在操作应用程序的过程可能遇到的问题。在本公开的实施例中,可以从一个用户或多个不同的用户处获取用户对应用程序的操作。因此,根据本公开实施例的方法所生成的测试用例具有代表性,并且具有普遍的适用性。
接下来,在步骤S120中,应用程序可以包括多个功能页面,每个功能页面可以相互独立地实现不同的功能。通过用户对应用程序的操作,例如,点击终端设备的屏幕、在终端设备的屏幕上滑动等,在各功能页面之间进行切换。在对应用程序进行校验时,可以针对某个特定的功能页面进行校验。例如,对于有声读物APP,可以仅针对收藏节目的功能页面进行校验,以校验其是否能够正确实现添加并收藏节目。待校验页面反映的是校验的目标,经过该待校验页面的行为路径的产生次数反映的是与该待校验页面有关的核心功能。在本公开的实施例中,根据应用程序的待校验页面的类型和经过该待校验页面的行为路径的产生次数两者中的至少一个来确定测试用例的优先级,以便实现对测试用例的有效筛选,这样可以提高测试用例的针对性,有利于选择更有针对性的测试用例来用于校验。
接下来,在步骤S130中,可以基于所确定的测试用例的优先级来选择适合的测试用例以用于应用程序的校验,即对应用程序的待校验页面的功能进行校验。在本公开的实施例中,测试用例的优先级指的是针对特定的校验目标(或待校验页面),提供某个或某些测试用例以用于校验的优选程度。例如,假设校验目标是校验新功能页面A,并且根据该校验目标以及结合行为路径的产生次数确定测试用例集合B的优先级P0为最高,并确定测试用例集合C的优先级P1低于测试用例集合B的优先级P0。需要注意的是,测试用例集合B和测试用例集合C中各自包括具有相同优先级的至少一个测试用例。在提供用于校验新功能页面A的测试用例时,基于优先级,优选提供测试用例集合B来用于校验,如果测试用例集合B中的测试用例数量较少,不足以可靠地支撑校验结果,则可以继续基于优先级,提供测试用例集合C来用于校验。根据实施例,还可以设置优先级的阈值。在选择测试用例时,选择优先级大于阈值的测试用例来对应用程序进行校验。例如,可以将优先级的阈值设置为P3,则选择优先级为P0、P1和P2(P0、P1、P2和P3的优先级依次降低)的测试用例集合来对应用程序进行校验。
根据本公开的实施例,基于用户对应用程序的实际操作生成测试用例,提高了测试用例的适用性,通过确定测试用例的优先级并基于优先级来选择测试用例进行校验,通过对测试用例进行筛选来提高测试用例的针对性,有利于校验中的问题进行定位,缩短校验时间,并降低校验成本。
根据实施例,可以通过AOP(Aspect-Oriented Programming,面向方面编程)方法或HOOK(钩子)方法获取用户的用户日志,以便从用户日志中获取用户操作应用程序时的操作步骤,然后根据所获取的操作步骤确定用户操作应用程序时的行为路径以及其他相关数据。
具体的,可以在不同用户所使用的终端设备上安装用于执行AOP方法或HOOK方法的应用程序或插件。在用户操作应用程序时,就可以通过AOP方法或HOOK方法来对用户的操作的进行捕获。例如可以通过读取记录用户操作的日志来捕获用户操作。AOP方法是一种面向方面的编程方法,是一种“横切”技术,其可以剖解开已经封装的对象内部,从而获取与业务无关、却被封装于对象中的为业务模块所共同调用的逻辑。容易理解的是,AOP方法或HOOK方法仅为示例,可以采用其他合适的方法来获取用户对应用程序的操作步骤。
图2示出了根据本公开实施例的基于用户操作生成的行为路径的示意图。在图2所示的示例中,通过截获用户日志,可以获取用户在一定时间内对有声读物APP的操作步骤如下:在t1时刻,用户通过点击有声读物APP的图标进入有声读物APP的首页;在t2时刻,用户通过点击首页上推荐栏目中的“节目1”进入节目朗读页面;在t3时刻,用户通过点击朗读页面上的“…”打开对节目1进行处理的菜单页;在t4时刻,用户通过点击菜单页上的“下载”进入节目下载页面;在t5时刻,用户通过点击下载页面上的弹出窗口中的“结束”返回到朗读页面;在t6时刻,用户通过在朗读页面上从左向右滑动而进入用户书架页面;在t7时刻,用户通过在书架页面上点击“退出”栏来结束对有声读物APP的操作。根据上面的操作步骤所生成的用户行为路径依次经过多个功能页面,如图2所示,该用户行为路径依次经过首页、节目朗读页面、…菜单页、节目下载页面、节目朗读页面和用户书架页面。在图2中,方框“退出”表示本次操作有声读物APP正常退出,而不是表示具体的功能页面。
根据实施例,在获取到用户操作应用程序所产生的行为路径之后,可以根据用户行为路径确定行为路径所经过的应用程序的功能页面以及用户在功能页面上执行的操作的类型和执行操作的位置。具体的,用户行为路径所经过的应用程序的功能页面如前所述,此处不再赘述。用户在功能页面上执行操作的类型可以包括“点击”、“滑动”等。例如,在首页上的推荐栏目中点击“节目1”,在下载页面上的弹出窗口中点击“结束”,在朗读页面上滑动等。用户在功能页面上执行操作的位置可以包括例如“点击”的位置或“滑动”的位置。例如,在首页上的推荐栏目中点击“节目1”,在朗读页面上从左向右滑动等。接下来,可以基于功能页面、操作类型和操作位置生成测试用例。在测试用例中,将针对每个功能页面的操作类型和操作位置对应地存储,并按照行为路径的顺序依次存储每个功能页面。可以基于所生成的测试用例来复现用户对应用程序的实际操作。
根据本公开的实施例,可以通过获取用户对应用程序的实际操作来自动地生成测试用例,这样使得所生成的测试用例能够更加符合实际用户的操作,由此使得得到的测试用例能够更加有效地用于对应用程序的校验,有利于发现应用程序出现的问题,从而提高校验的效率。
在本公开的实施例中,可以基于不同的校验目标并结合行为路径的产生次数来设置测试用例的优先级,以便在校验中能够更多地使用针对校验目标进行校验的测试用例,以进一步提高校验的效率。
根据实施例,在应用程序的待校验页面是新功能页面的情况下,在多个测试用例中,确定基于经过新功能页面的行为路径而生成的测试用例,并将所确定的测试用例设置为具有最高优先级。
在本公开的实施例中,新功能页面可以是新添加到应用程序中的页面,也可以是对原功能页面中的功能模块进行修改而得到的页面。新功能页面的功能是否能够与应用程序中的其他页面兼容,并且新功能页面的功能是否能够可靠地实现,需要针对新功能页面进行大量的校验来保证。根据本公开的实施例,通过基于用户对应用程序的实际操作来生成测试用例,因此,能够及时捕获并生成涉及新功能页面的测试用例,将生成的涉及新功能页面的测试用例存储到测试用例数据库。由于新生成的测试用例数量较小,因此,在从测试用例数据库中选择测试用例以用于应用程序的校验时,如果不对选择的方法进行调整,从测试用例数据库中选取到涉及新功能页面的测试用例可能性较低。因此,在本公开的实施例中,将基于经过新功能页面的行为路径而生成的测试用例确定为具有最高优先级,这样,在从测试用例数据库中选择涉及新功能页面的测试用例时,能够优选地选取到涉及新功能页面的测试用例,以用于对新功能页面的校验。
现有技术中,针对新功能页面的页面功能的校验一般通过有针对性的编程实现。如果新功能页面的内容改变或又添加了新功能页面,则需要根据新获取的涉及新功能页面的测试用例修改编程的代码,校验工作量巨大并且校验成本较高。在本公开的实施例中,仍然通过基于用户对应用程序的新功能页面的操作自动化地生成涉及新功能页面的测试用例,并通过设置涉及新功能页面的测试用例的优先级来提供相关测试用例。即在本公开的实施例中,将自动化的测试用例生成与自动化地针对新功能页面的功能校验结合在一起,显著地降低了校验工作量,同时降低了校验成本,并能够缩短校验时间。
根据实施例,在应用程序的待校验页面是核心功能页面的情况下,在多个测试用例中,根据经过核心功能页面的行为路径的产生次数确定针对核心功能页面的测试用例的优先级。根据实施例,可以确定经过核心功能页面的行为路径,在所确定的行为路径中确定到达该核心功能页面的子路径,以及根据子路径的产生次数确定针对核心功能页面的测试用例的优先级。
在本公开的实施例中,核心功能页面可以是用于实现应用程序的核心功能的页面。例如,对于有声读物APP,选定节目进行播放是其核心功能,因此需要关注从首页上推荐栏目中的选定节目进入节目朗读页面的行为路径是否能够正确地实现其功能。同样地,认为核心功能是多个用户使用该应用程序时较多使用的功能。即从“首页”到“节目朗读页面”这个行为路径时不同用户操作有声读物APP时较多经过的行为路径。因此,在本公开的实施例中,通过确定到达核心功能页面的子路径的次数来确定涉及核心功能页面的测试用例的优先级。
图3示出了根据本公开实施例的确定测试用例的优先级的示意图。如图3所示,相同的字母表示相同的页面,其中,以字母“O”表示待校验页面,该待校验页面是核心功能页面,此外,在图3中未示出退出功能。如图3所示,从基于一个用户或多个用户对应用程序的操作所产生的行为路径中确定了4个经过核心功能页面O的行为路径。其中,行为路径1依次经过页面A、页面B、页面O和页面D,核心功能页面O不是行为路径1的终点页面,而是行为路径1所经过的一个中间页面。行为路径2依次经过页面A、页面B和页面O。行为路径3依次经过页面A、页面B、页面C和页面O。行为路径4依次经过面A、页面C和、页面O、页面E和页面F,并且核心功能页面O是行为路径4所经过的一个中间页面。接下来,确定每个行为路径中到达核心功能页面O的子路径。在行为路径1中,到达核心功能页面O的子路径依次经过页面A、页面B和页面O,这里以A→B→O表示。在行为路径2中,到达核心功能页面O的子路径依次经过页面A、页面B和页面O,以A→B→O表示。在行为路径3中,到达核心功能页面O的子路径依次经过页面A、页面B、页面C和页面O,以A→B→C→O表示。在行为路径4中,到达核心功能页面O的子路径依次经过页面A、页面C和页面O,以A→C→O表示。接下来,确定各子路径的产生次数。行为路劲1中达到核心功能页面O的子路径与行为路劲2中达到核心功能页面O的子路径相同,均为A→B→O,因此将子路径A→B→O的产生次数确定为2。行为路劲3中达到核心功能页面O的子路径与其他子路径均不相同,因此将子路径A→B→C→O的产生次数确定为1。行为路劲4中达到核心功能页面O的子路径与其他子路径均不相同,因此将子路径A→C→O的产生次数确定为1。接下来,根据子路径的产生次数设置测试用例的优先级。在图3所示的示例中,将基于行为路径1生成的测试用例和基于行为路径2生成的测试用例确定为具有较高的优先级(例如最高优先级),将基于行为路径3生成的测试用例和基于行为路径4生成的测试用例确定为具有较低的优先级(例如低于最高优先级)。
在其他的实施例中,还可以设置子路径产生次数的阈值,从而根据阈值确定测试用例的优先级。例如,将所涉及的子路径的产生次数大于200的测试用例的优先级设置为P0,即最高优先级;将所涉及的子路径的产生次数大于100的测试用例的优先级设置为P1,优先级P1低于优先级P0。将所涉及的子路径的产生次数大于50的测试用例的优先级设置为P2,优先级P2低于优先级P1。
需要说明的是,以上所述实施例仅为示例,可以设置其他优先级的确定方法。例如,如果待校验页面为新功能页面,且将所涉及的子路径的产生次数在50~100范围内的测试用例的优先级设置为P1。
在本公开的实施例中,通过设置测试用例的优先级,实现了对测试用例的有针对性的筛选,从而能够更有效地提供校验所需的测试用例,以提高校验效率,缩短校验时间。
导致应用程序出现问题的原因可能是多方面的,因此,在本公开的其他实施例中,还可以根据其他要素来对所生成的测试用例进行筛选。根据实施例,可以在获取用户操作应用程序所产生的行为路径的同时,获取不同用户的用户数据和用于安装应用程序的终端在应用程序被操作期间的性能数据,并基于用户数据和性能数据中的至少一个,从多个测试用例中选择至少一个测试用例来对待校验页面的功能进行校验。根据实施例,用户数据可以包括例如用户ID和用户所使用的终端的类型。性能数据可以包括例如终端的响应时间和内存使用率。
此外,还可以在获取用户操作应用程序所产生的行为路径的同时,获取用户操作应用程序所产生的页面截图和操作时间,以便基于所获取的行为路径、用户数据、页面截图和操作时间对应用程序进行问题定位。通过基于多方面要素进行考虑,可以缩小出现问题的行为路径、子路径、功能页面的范围,从而更快速地定位问题页面或问题路径。
根据实施例,在基于用户对应用程序的操作生成的测试用例数量庞大的情况下,还可以在确定针对待校验页面的测试用例的优先级之前,对测试用例进行分配。根据实施例,可以针对应用程序所包括的多个页面中的每一个页面,在获取的多个测试用例当中,将基于经过该页面的行为路径所生成的测试用例确定为针对该页面的测试用例。在本公开的实施例中,可以将应用程序所包括的每个页面依次作为目标页面,以该目标页面为参照,将涉及经过该目标页面的行为路径的测试用例进行聚合,并将聚合得到的测试用例分配给与该目标页面功能相关联的业务部门或业务人员,以实现多层级的校验开发架构。
图4示出了根据本公开实施例的用于对应用程序进行校验的示例架构。如图4所示,该示例架构由三个部分组成:测试用例的自动生成部分401、测试用例的自动解析部分402和自动校验部分403。在测试用例的自动生成部分401,通过AOP或者其他HOOK手段获取到用户在线下测试执行过程中的操作步骤,以便对用户行为路径进行采集。可以获取到用户当前运行类(一个页面)、在页面上的点击坐标(操作位置)、页面截图和用户相关信息。接下来,通过大数据处理,把用户操作应用程序所产生的所有行为路径按照行为路径的产生次数、是否有新页面、性能数据、用户数据等纬度进行聚合分析。并将所获取的测试用例进行存储,可以将用户数据、页面截图、页面名称、性能数据等与测试用例进行对应存储。在测试用例的自动解析部分402,根据目标类(目标页面)对数据库中所存储的测试用例进行分配。根据实施例,以目标类作为参照,根据目标类对应的代码仓库,生成仓库和特定类(特定页面)的对应关系。具体的,将不同的测试用例分配给与不同页面功能相关联的开发部门或开发人员。这样,分配至每个开发部门或开发人员的测试用例数据库的规模可以极大地缩小。接下来,在每个具体的开发部门,即针对特定的功能页面进行开发和校验的部门,分别针对特定的功能页面进行自动化的测试用例脚本的生成。如图4所示,可以确定测试用例的不同优先级,可以针对不同的校验目标来调整测试用例的优先级,并根据优先级来选择所需的测试用例。可以基于业务代码仓库生成测试用例脚本,可以执行统一去弹窗的处理等。在自动校验部分403,可以基于通过规则和自定义规则两种方式进行校验。在通过规则校验方式中,默认一个通用的自动化校验逻辑。在自定义规则校验方式中,可以允许开发人员自定义设置某个场景或者某类场景(行为路径)或者某个业务(页面)的校验策略。例如校验某个页面原始元素是否存在、页面结构是否相似、具有阈值相似度的页面的比例等,如果没有设置相关阈值,则可以和数据库中存储的目标类的截图进行对比并与默认阈值进行对比。如果这些校验均未通过,则可以使用崩溃/卡顿、白屏和黑屏、乱码等的校验逻辑进行校验。
该示例架构可以自动生成测试用例,并且可以在对应用程序进行性能校验的同时,对具体的页面进行功能校验,所有校验均自动化完成,相关校验数据可以上传到校验数据分析平台上。
此外,该示例架构在执行校验的过程中同时关注稳定性问题,获取到崩溃/anr等相关信息,并通过日志回捞到当时对应的堆栈信息进行问题上报,有利地支撑定位问题。
图5示出了根据本公开实施例的应用程序的校验装置500的框图。如图5所示,该应用程序的校验装置500包括用例生成模块510、优先级确定模块520和用例选择模块530。
根据实施例,用例生成模块510被配置为基于用户操作应用程序所产生的行为路径生成多个测试用例。优先级确定模块520被配置为根据应用程序的待校验页面的类型和经过应用程序的待校验页面的行为路径的产生次数两者中至少之一确定针对待校验页面的测试用例的优先级。用例选择模块530被配置为基于优先级,从多个测试用例中选择至少一个测试用例来对待校验页面的功能进行校验。
以上各功能模块的具体操作可以参考前述实施例中的应用程序的校验方法100的操作步骤来获取,此处不再赘述。
图6示出了根据本公开实施例的适于对应用程序进行校验的电子设备600的框图。
如图6所示,该电子设备600包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器601可以对在电子设备600内执行的指令进行处理,包括存储在存储器602中或者存储器602上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中仅示出一个处理器601作为示例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器601执行的指令,以使至少一个处理器601执行本申请所提供的应用程序的校验方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的应用程序的校验方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的应用程序的校验方法对应的程序指令/模块。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的应用程序的校验方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于对应用程序进行校验的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至提供应用程序的校验的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于实现本申请的应用程序的校验方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中示出了总线连接的示例。
输入装置603可接收输入的数字或字符信息,以及与用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
根据本公开的实施例,计算机可读存储介质可以是计算机非易失性的计算机可读存储介质,例如可以可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种应用程序的校验方法,包括:
基于通过用户操作应用程序而产生的行为路径,生成多个测试用例;
根据所述应用程序的待校验页面的类型和经过所述待校验页面的行为路径的产生次数两者中至少之一,确定针对待校验页面的测试用例的优先级;以及
基于所述优先级,从所述多个测试用例中选择至少一个测试用例来对所述待校验页面的功能进行校验,
其中,所述根据所述应用程序的待校验页面的类型和经过所述待校验页面的行为路径的产生次数两者中至少之一,确定针对待校验页面的测试用例的优先级包括:
在所述应用程序的待校验页面是新功能页面的情况下,在所述多个测试用例中,确定基于经过所述新功能页面的行为路径而生成的测试用例;将所确定的测试用例设置为具有最高优先级;
在所述应用程序的待校验页面是核心功能页面的情况下,在所述多个测试用例中,根据经过所述核心功能页面的行为路径的产生次数确定针对所述核心功能页面的测试用例的优先级。
2.根据权利要求1所述的方法,其中,基于用户操作应用程序所产生的行为路径生成多个测试用例包括:
获取用户操作应用程序所产生的行为路径;
确定所述行为路径所经过的所述应用程序的功能页面、所述用户在所述功能页面上执行的操作的类型和位置;以及
基于所述功能页面、所述操作的类型和位置生成所述多个测试用例。
3.根据权利要求2所述的方法,其中,获取用户操作应用程序所产生的行为路径包括:
通过AOP或HOOK方法获取所述用户操作所述应用程序的用户日志;以及
根据所述用户日志确定用户操作应用程序所产生的行为路径。
4.根据权利要求1所述的方法,其中,根据经过所述核心功能页面的行为路径的产生次数确定针对待校验页面的测试用例的优先级包括:
确定经过所述核心功能页面的行为路径;
在所述行为路径中确定到达所述核心功能页面的子路径;以及
根据所述子路径的产生次数确定针对所述核心功能页面的测试用例的优先级。
5.根据权利要求4所述的方法,其中,基于所述优先级,从所述多个测试用例中选择至少一个测试用例来对所述待校验页面的功能进行校验包括:
从所述多个测试用例中选择优先级大于阈值的测试用例来对所述待校验页面的功能进行校验。
6.根据权利要求1所述的方法,所述用户包括多个用户,所述方法还包括:
获取所述多个用户的用户数据和安装所述应用程序的终端在所述应用程序被操作期间的性能数据;以及
基于所述用户数据和所述性能数据中的至少一个,从所述多个测试用例中选择至少一个测试用例来对所述待校验页面的功能进行校验。
7.根据权利要求6所述的方法,还包括:
获取所述用户操作应用程序所产生的页面截图和操作时间;以及
基于所述行为路径、所述用户数据、所述页面截图和所述操作时间对所述应用程序进行问题定位。
8.根据权利要求6或7所述的方法,其中,所述用户数据包括用户ID和用户所使用的终端的类型,所述性能数据包括所述终端的响应时间和内存使用率。
9.根据权利要求1所述的方法,所述应用程序包括多个页面,所述待校验页面为所述多个页面之一,所述方法还包括:在确定针对待校验页面的测试用例的优先级之前,
针对所述多个页面中的每一个,在获取的所述多个测试用例当中将基于经过该页面的行为路径所生成的测试用例确定为针对该页面的测试用例。
10.一种应用程序的校验装置,包括:
用例生成模块,配置为基于用户操作应用程序所产生的行为路径生成多个测试用例;
优先级确定模块,配置为根据所述应用程序的待校验页面的类型和经过所述应用程序的待校验页面的行为路径的产生次数两者中至少之一确定针对待校验页面的测试用例的优先级;以及
用例选择模块,配置为基于所述优先级,从所述多个测试用例中选择至少一个测试用例来对所述待校验页面的功能进行校验,
其中,所述优先级确定模块还配置为执行以下操作以根据所述应用程序的待校验页面的类型和经过所述应用程序的待校验页面的行为路径的产生次数两者中至少之一确定针对待校验页面的测试用例的优先级:
在所述应用程序的待校验页面是新功能页面的情况下,在所述多个测试用例中,确定基于经过所述新功能页面的行为路径而生成的测试用例;将所确定的测试用例设置为具有最高优先级;
在所述应用程序的待校验页面是核心功能页面的情况下,在所述多个测试用例中,根据经过所述核心功能页面的行为路径的产生次数确定针对所述核心功能页面的测试用例的优先级。
11.一种应用程序的校验设备,包括:
存储器,存储有程序指令;以及
处理器,被配置为执行所述程序指令,以执行如权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011441172.4A CN112559338B (zh) | 2020-12-11 | 2020-12-11 | 应用程序的校验方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011441172.4A CN112559338B (zh) | 2020-12-11 | 2020-12-11 | 应用程序的校验方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559338A CN112559338A (zh) | 2021-03-26 |
CN112559338B true CN112559338B (zh) | 2024-02-06 |
Family
ID=75062111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011441172.4A Active CN112559338B (zh) | 2020-12-11 | 2020-12-11 | 应用程序的校验方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559338B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303101B (zh) * | 2023-05-19 | 2023-08-15 | 建信金融科技有限责任公司 | 测试案例生成方法、装置和设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893253A (zh) * | 2016-03-29 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 应用软件测试方法、测试装置及测试设备 |
CN108073519A (zh) * | 2018-01-31 | 2018-05-25 | 百度在线网络技术(北京)有限公司 | 测试用例生成方法和装置 |
CN108153658A (zh) * | 2016-12-02 | 2018-06-12 | 富士通株式会社 | 优先级模型训练方法及确定测试用例优先级的方法和装置 |
CN109960648A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 一种应用程序的测试方法、装置 |
CN109992498A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 测试用例的生成方法及系统、计算机系统 |
CN110633196A (zh) * | 2018-06-21 | 2019-12-31 | 亿度慧达教育科技(北京)有限公司 | 应用程序的自动化用例执行方法和装置 |
US10613971B1 (en) * | 2018-01-12 | 2020-04-07 | Intuit Inc. | Autonomous testing of web-based applications |
CN111694754A (zh) * | 2020-07-30 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 应用程序的测试方法、装置、电子设备及计算机介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161459B2 (en) * | 2009-01-15 | 2012-04-17 | Infosys Technologies Limited | Method and system for generating functional test cases |
CN104063325B (zh) * | 2014-07-11 | 2016-10-26 | 电子科技大学 | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 |
US9672029B2 (en) * | 2014-08-01 | 2017-06-06 | Vmware, Inc. | Determining test case priorities based on tagged execution paths |
-
2020
- 2020-12-11 CN CN202011441172.4A patent/CN112559338B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893253A (zh) * | 2016-03-29 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 应用软件测试方法、测试装置及测试设备 |
CN108153658A (zh) * | 2016-12-02 | 2018-06-12 | 富士通株式会社 | 优先级模型训练方法及确定测试用例优先级的方法和装置 |
CN109960648A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 一种应用程序的测试方法、装置 |
CN109992498A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 测试用例的生成方法及系统、计算机系统 |
US10613971B1 (en) * | 2018-01-12 | 2020-04-07 | Intuit Inc. | Autonomous testing of web-based applications |
CN108073519A (zh) * | 2018-01-31 | 2018-05-25 | 百度在线网络技术(北京)有限公司 | 测试用例生成方法和装置 |
CN110633196A (zh) * | 2018-06-21 | 2019-12-31 | 亿度慧达教育科技(北京)有限公司 | 应用程序的自动化用例执行方法和装置 |
CN111694754A (zh) * | 2020-07-30 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 应用程序的测试方法、装置、电子设备及计算机介质 |
Non-Patent Citations (3)
Title |
---|
一种针对交互式软件的测试用例生成技术;曹文静;徐胜红;杨秀霞;;小型微型计算机系统(08);155-158 * |
基于OTT策略的组合测试用例优先级排序方法;张娜;林青霞;包晓安;吴彪;张唯;;计算机工程与应用(13);155-158 * |
基于用户会话Web应用程序测试的新方法;李英;李劲华;;青岛大学学报(自然科学版)(04);65-69 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559338A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10747652B2 (en) | Automatic risk analysis of software | |
US10642725B2 (en) | Automated test generation for multi-interface enterprise virtualization management environment | |
US10296563B2 (en) | Automated testing of perceptible web page elements | |
US10031841B2 (en) | Method and system for incrementally updating a test suite utilizing run-time application executions | |
US10210076B2 (en) | White box testing | |
US8024453B2 (en) | Monitoring performance of dynamic web content applications | |
US9286273B1 (en) | Method and system for implementing a website builder | |
CN108319575B (zh) | 一种页面组件的校验方法、装置、服务器和存储介质 | |
US20200050540A1 (en) | Interactive automation test | |
CN110610089B (zh) | 用户行为模拟方法、装置及计算机设备 | |
US10552306B2 (en) | Automated test generation for multi-interface and multi-platform enterprise virtualization management environment | |
KR102105753B1 (ko) | 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템 | |
CN111538659B (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN112882930A (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
US8887112B2 (en) | Test validation planning | |
CN112559338B (zh) | 应用程序的校验方法、装置、设备及存储介质 | |
Sayagh et al. | Multi-layer software configuration: Empirical study on wordpress | |
US11748238B2 (en) | Model-based biased random system test through rest API | |
CN116841543A (zh) | 基于Flutter动态生成跨平台多端应用的开发方法 | |
US11057416B2 (en) | Analyze code that uses web framework using local parameter model | |
US10331436B2 (en) | Smart reviews for applications in application stores | |
CN113986768A (zh) | 应用程序稳定性测试方法、装置、设备及介质 | |
KR102481254B1 (ko) | 테스트 자동화 서비스 장치 및 방법 | |
US9697018B2 (en) | Synthesizing inputs to preserve functionality | |
CN111026650B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |