CN107967214A - 应用程序的测试方法及测试设备 - Google Patents
应用程序的测试方法及测试设备 Download PDFInfo
- Publication number
- CN107967214A CN107967214A CN201711296804.0A CN201711296804A CN107967214A CN 107967214 A CN107967214 A CN 107967214A CN 201711296804 A CN201711296804 A CN 201711296804A CN 107967214 A CN107967214 A CN 107967214A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- network
- scene
- destination application
- 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/3692—Test management for test results analysis
Abstract
本发明公开了一种应用程序的测试方法及测试设备,该方法包括:设置测试网络;在测试网络中,根据预设的测试场景通过目标应用程序执行对应的测试操作,得到对应的测试结果;当测试结果符合与测试场景对应的测试异常条件时,对目标应用程序执行对应的修复操作;在修复操作执行后,对目标应用程序执行对应的验证操作以获取修复结果。根据本发明,可以实施弱网环境下应用程序测试自动化,节省测试人力成本。此外,能自动消除异常测试结果对后续测试的影响,提升测试效率。验证目标应用程序的健壮性和易维护性。
Description
技术领域
本发明涉及应用程序的测试技术领域,更具体地,涉及一种应用程序的测试方法及测试设备。
背景技术
随着互联网技术的飞速发展和智能终端的普及,越来越多的用户习惯于通过智能手机、掌上电脑、平板电脑这类终端设备上安装的应用程序(Application,APP),访问网络获取对应的应用服务。
用户在通过终端设备中的APP获取应用服务时,网络质量是影响应用服务获取的关键因素之一。例如,当用户在网络质量较差的弱网环境下使用终端设备中的应用程序时,会因为网络质量较差出现数据传输中断、数据传输延迟等数据传输的不稳定,带来应用程序的页面访问超时、页面异常或者应用程序运行异常出现闪退、卡顿等问题,影响用户的应用程序使用体验。特别是,目前许多应用程序的用户规模庞大,用户数目千万级,遍布各个地域,网络规模化和系统化各不相同,网络环境复杂,用户使用应用程序遇到弱网环境的场景概率增大,弱网环境下应用程序出现异常的问题就更为突出,成为制约应用程序落地推广的关键。
因此,对于应用程序,特别是用户规模庞大的应用程序,在弱网环境下针对应用程序的弱网测试,至关重要。但是,目前针对应用程序的弱网测试,通常需要测试人员人工搭建弱网环境、人工模拟各种用户可能的使用操作对应用程序进行测试,测试耗费的时间和人力较多,并且,在测试中发现问题时,也很难排查确定异常根源进行修复。
因此,发明人认为,有必要对上述现有技术中存在的技术问题进行改进。
发明内容
本发明的一个目的是提供一种用于测试应用程序的新技术方案。
根据本发明的第一方面,提供了一种应用程序的测试方法:
设置测试网络,使得所述测试网络的传输状态符合弱网环境;
在所述测试网络中,根据预设的测试场景通过目标应用程序执行对应的测试操作,得到对应的测试结果;
当所述测试结果符合与所述测试场景对应的测试异常条件时,对所述目标应用程序执行对应的修复操作;
在所述修复操作执行后,对所述目标应用程序执行对应的验证操作以获取修复结果。
可选地,所述设置测试网络的步骤包括:
根据预设的周期,设置测试网络在多个网络模式之间切换;
其中,每个所述网络模式具有对应的网络传输参数;
所述网络传输参数至少包括网络制式、网络传输带宽、网络传输时延其中之一。
可选地,所述测试场景至少包括数据传输场景;
所述测试操作,至少包括传输测试数据;
所述测试异常条件,至少包括所述目标应用程序的本地数据中已存在传输的测试数据中至少部分数据;
所述修复操作,至少包括删除已存在的所述至少部分数据;
所述验证操作,至少包括确定已存在的所述至少部分数据是否删除成功。
可选地,所述数据传输场景包括用户登录场景;
所述测试操作,包括输入登录信息;
所述测试异常条件,包括所述本地数据中已存在新输入的所述登录信息;
所述修复操作,包括删除重复的登录信息;
所述验证操作,包括确定重复的登录信息是否删除成功。
可选地,所述数据传输场景包括登录后数据初始化场景;
所述测试操作,包括登录后数据初始化场景;
所述测试异常条件,包括所述本地数据中已存在所述初始化数据的至少一部分;
所述修复操作,包括清空已存在的初始化数据后重新下载初始化数据;
所述验证操作,包括确定所述初始化数据是否下载完成。
可选地,所述数据传输场景包括用户上传文件场景;
所述测试操作,包括上传测试文件;
所述测试异常条件,包括所述本地数据中已存在测试文件所包含的至少一个数据分片;
所述修复操作,包括删除重复的所述至少一个数据分片;
所述验证操作,包括确定是否成功删除所述重复的所述至少一个数据分片。
可选地,所述测试数据的全部或者每一个部分具有唯一对应的数据标识;
所述本地数据的全部或者每一个部分具有唯一对应的数据标识;
当所述测试数据所对应的数据标识,与所述本地数据的全部或至少一个部分的数据标识重复时,确定本地数据中存在与所述重复的数据标识的对应的测试数据。
可选地,所述方法还包括:
生成与所述测试场景对应的测试脚本,通过执行所述测试脚本,实现测试所述目标应用程序。
进一步可选地,所述方法还包括:
根据测试需求关联多个所述测试脚本,得到测试设计脚本,通过执行所述测试设计脚本,实现在多个所述应用场景下测试所述目标应用程序。
根据本发明的第二方面,提供一种测试设备,包括存储器和处理器,
其中,所述存储器存储可执行指令,所述可执行指令在所述测试设备运行时控制所述处理器执行根据根据本发明第一方面的任何一项所述的应用程序的测试方法中的操作。
本发明的发明人发现,在现有技术中,在弱网环境下对应用程序进行测试通常需要测试人员人工搭建弱网环境对目标应用程序进行人工测试,耗费大量人力和时间,并且人工测试中手动操作会对测试环境和测试结果带来不可控的影响。本发明中提供一种自动执行弱网环境下测试目标应用程序的方案,节省测试人力成本,消除异常测试结果对后续测试的影响,提升测试效率。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的测试环境的硬件配置的例子的框图。
图2示出了本发明第一实施例的应用程序的测试方法的流程图。
图3示出了本发明实施例的应用程序的测试方法的又一流程图。
图4示出了本发明实施例的应用程序的测试方法的例子的流程图。
图5示出了本发明实施例的应用程序的测试设备的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的测试环境1000的硬件配置的框图。
如图1所示,测试环境1000包括测试设备1100、被测设备1200。
测试设备1100可以是任何具有接入无线网络功能例如包含WIFI模块的设备,例如服务器、PC机或者笔记本电脑等。在一个例子中,服务器1100可以是一台计算机。在另一个例子中,服务器1100可以如图1所示,包括处理器1110、存储器1120、接口装置1130、通信装置1140、显示装置1150、输入装置1160。尽管服务器也可以包括扬声器、麦克风等等,但是,这些部件与本发明无关,故在此省略。其中,处理器1110例如可以是中央处理器CPU、微处理器MCU等。存储器1120例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1130例如包括USB接口、串行接口等。通信装置1140例如能够进行有线或无线通信,具体地,至少包含WIFI模块,还可以包含蓝牙模块、NFC模块等。显示装置1150例如是液晶显示屏。输入装置1160例如可以包括触摸屏、键盘等。
被测设备1200可以是任何具有无线接入点功能的电子设备,例如台式机(1200-1)、笔记本电脑(1200-2)、手机(1200-3)、平板电脑(1200-4)等。
图1所示的配置环境1000仅是解释性的,并且决不是为了要限制本发明、其应用或用途。应用于本发明的实施例中,测试设备1100的所述存储器1120用于存储指令,所述指令用于控制所述处理器1110进行操作以通过通信装置1140执行本发明实施例提供的任意一项。
本领域技术人员应当理解,尽管在图1中对测试设备1100都示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,测试设备1100只涉及处理器1110、存储装置1120以及通信装置1140。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<实施例>
<测试方法>
在本实施例中,提供一种应用程序的测试方法,如图2所示。
应用程序是可以被安装于手机、掌上电脑、平板电脑、便携式电脑等电子设备的、运行时可以提供用户对应的应用服务的程序,可以和用户进行交互,具有可视的用户界面。例如,安装于手机可以提供车辆共享服务的APP(Application)。
应用程序的测试方法,如图2所示,包括:
步骤S2100,设置测试网络,使得测试网络的传输状态符合弱网环境。
弱网环境是网络传输质量较差的网络通信环境,包括但不限于如未能规模化或系统化部署网络基站的地域网络例如山区网络、部署在高速移动的交通工具上的通信网络、部署的信号覆盖较弱的各种WIFI热点、部署在偏远地区或者例如核电站这类特殊地域中的通信网络等等。
测试网络的传输状态是测试网络进行数据传输的实际状态,至少包括测试网络的网络信号强度、传输带宽、传输时延等其中一种。
通过设置测试网络,使得测试网络的传输状态符合弱网环境,可以实现模拟实际的弱网环境的测试环境。
在本实施中,可以预先测试获取各种不同类型的弱网环境下的传输带宽、时延、网络制式等等,而后根据具体的弱网环境的测试需求,对应设置测试网络的传输带宽、时延、网络制式(2G/3G/4G/5G/WIFI等)等参数,来模拟实现对应的弱网环境。
但是,上述方法需要投入大量人力、时间成本测试收集各个获取各种不同类型的弱网环境下的传输带宽、时延、网络类型等信息,并且难于定性地获取网络变化较多较不稳定的弱网环境的信息。
在本实施例中,还提出一种更为灵活、能更为有效模拟弱网环境的设置测试网络的方式,可以通过预先设置多个网络模式,每个网络模式具有对应的网络制式(2G/3G/4G/5G/WIFI等)、网络传输带宽、网络传输时延等,通过在多个网络模式之间以预设的周期进行切换,可以更真实地模拟弱网环境的变化,得到更为贴近实际测试需求的弱网环境的测试网络。实施简单有效。
因此,本实施例的一个例子中,设置测试网络的步骤可以包括:
根据预设的周期,设置测试网络在多个网络模式之间切换;
其中,每个所述网络模式具有对应的网络传输参数;
所述网络传输参数至少包括网络制式、网络传输带宽、网络传输时延其中之一。
可以根据实际测试需求,设置不同的周期、不同的网络模式以及网络模式对应的网络参数。例如,可以设置4个网络模式:2G/3G/4G/Slow-WIFI,其中Slow-WIFI模式下是限制WIFI制式下传输带宽限制为56Kbps,具体地,可以通过使用fiddler代理将目标应用程序的传输带宽设置为56Kbps。
通过本实施例的设置测试网络的步骤,实现可以无需测试人员手动设置网络环境,而是自动设置模拟弱网环境的测试网络,节省测试人力和时间。并且,可以避免人工设置操作对测试网络的影响,提升网络搭建的效率。
步骤S2200,在测试网络中,根据预设的测试场景对目标应用程序执行对应的测试操作,得到对应的测试结果;
测试场景是与实际测试需求对应的测试目标应用程序的场景。测试需求不同,对应的测试场景不同,与测试场景对应的测试操作也不同。
在本实施例中,可以根据实际测试需求,预先设置对应的测试场景。
一个例子中,测试场景至少包括数据传输场景。
数据传输场景是在测试网络中测试目标应用程序进行数据传输时的性能。
在数据传输场景中,通过目标应用程序执行数据传输进行测试。
对应的,测试操作至少包括传输测试数据。
测试数据是任何涉及被目标应用程序传输的数据,可以是面向用户的用户数据,也可以是支持目标应用程序运行所必须的应用内部数据等。
数据传输场景可以包括多种针对更具体的测试需求的测试场景。
例如,发明人发现,用户在弱网环境下对目标应用程序输入用户名和密码进行登录,因为网络传输质量差,目标应用程序将未能用户名和密码发送给对应的登录服务器校验,用户一直未能登录成功,用户多次输入用户名和密码试图登录,使得目标应用程序的本地数据中存在重复的用户名和密码信息,导致目标应用程序的运行出现异常。
因此,数据传输场景可以包括用户登录场景。
对应的,测试操作可以包括输入登录信息。
登录信息可以是用于测试的任意的用户名、密码、校验码其中至少之一。
又例如,用户在登录目标应用程序后,通常目标应用程序需要针对对应的用户下载与用户对应的初始化数据,该初始化数据包括与用户对应的界面信息、个性化设置信息等,目标应用程序可以通过初始化数据向用户呈现与用户相关的交互界面。
发明人发现,用户在弱网环境下登录目标应用程序后,目标应用程序在下载初始化数据时,因为网络传输质量差一直未能下载完成,用户被迫点击取消,然后重新登录目标应用程序后,就会出现数据初始化时本地已存在重复的初始化数据,导致目标应用程序的运行出现异常。
因此,数据传输场景可以包括登录后数据初始化场景。
对应的,测试操作包括下载初始化数据。
初始化数据是目标应用程序在用户登录后需下载的,用于初始化与用户相关的交互界面的数据,包括与用户对应的界面信息、个性化设置信息等信息。
或者,例如,发明人发现,用户在弱网环境中通过目标应用程序上传文件时,因为弱网环境下数据传输性能不稳定,会出现文件重复上传的情况,由于多次同样数据的写入,会使得目标应用程序的本地数据中存在重复的文件数据,这些重复的数据是对实际业务毫无意义的“脏数据”,导致目标应用程序的运行出现异常。
因此,数据传输场景可以包括用户上传文件场景。
对应的,测试操作包括上传测试文件。
测试文件可以是任意允许被目标应用程序上传的文件数据,例如文本、图片、音频、视频、多媒体信息等。
在本实施例中,传输测试文件时,会将测试文件分成多个数据分片进行传输,以提升传输效率。具体地划分测试文件的数据分片的方法可以参考常用的数据分片方法,本实施例中不做限制。
以上多个关于数据传输场景的示例并非限制性的,本领域技术人员可以根据具体的数据传输测试需求,很容易得到其他对应的数据传输场景,在此不一一列举。
在模拟弱网环境的测试网络中,根据预先设置的与实际测试需求对应的测试场景,通过目标应用程序执行对应的测试操作,得到对应的测试结果。实现可以无需测试人员人工执行测试操作,自动根据测试场景运行目标程序执行测试操作并得到测试结构,节省测试人力和时间。并且,可以避免人工测试操作对测试环境和结果的影响,提升测试效率。
步骤S2300,当测试结果符合与测试场景对应的测试异常条件时,对目标应用程序执行对应的修复操作。
执行与测试场景对应的测试操作,可以得到测试结果。
可以理解的是,在不同的测试场景中,测试操作对应不同,得到的测试结果的内容相应不同。
测试异常条件是确定测试结果出现异常的条件。
测试结果出现异常,通常是指对目标应用程序的运行会带来影响的测试结果。
当测试结果符合测试异常条件时,则测试结果出现异常。异常的测试结果,可能会影响目标应用程序的运行,带来测试的中断或者后续测试结果的连续异常,带来对后续测试的影响。
在本实施例中,在测试结果出现异常时,可以对目标应用程序执行对应的修复操作。
修复操作是对目标应用程序的测试结果进行修复的操作,通过修复操作,修复目标应用程序的异常测试结果,避免异常测试结果影响目标应用程序的运行,影响后续的测试结果,提升测试效率。
例如,测试场景中至少包括上述的数据传输场景时,对应的测试操作是传输测试数据,对应的测试结果是通过目标应用程序传输测试数据得到的结果。在传输测试数据时,目标应用程序会将测试数据写入本地缓存或者存储中进行发送,如果本地数据已存在传输的测试数据中的至少部分数据,意味着目标应用程序此前已经将测试数据写入本地进行传输,出现了重复数据,会对目标应用程序的运行造成影响,这是测试过程中出现的异常。
因此,对应数据传输场景,测试异常条件至少包括所述目标应用程序的本地数据中已存在传输的测试数据中至少部分数据。
对应的,修复操作至少包括删除已存在的所述至少部分数据。
确定本地数据中是否存在传输的测试数据中至少部分数据,可以是通过将测试数据的具体内容与本地数据的具体内容进行比较确定,但数据内容的直接比较通常需要耗费较多的数据处理、运算资源。
在一个例子中,提出一种节省数据处理、运算资源的方法:可以对测试数据设置唯一对应的数据标识,当测试数据包括多个数据部分时,可以对测试数据的每一个部分设置唯一对应的数据标识;同时,对本地数据(包括写入本地的历史测试数据)也类似处理设置数据标识;这样,在传输测试数据时,可以将测试数据的数据标识与本地数据的数据标识比较,当测试数据所对应的数据标识,与本地数据的全部或至少一个部分的数据标识重复时,确定本地数据中存在与所述重复的数据标识的对应的测试数据。
通过比较数据标识取代比较数据全部内容,可以极大地节省数据处理、运算资源,提升处理资源。
因此,本实施中提供应用程序的测试方法还包括:
所述测试数据的全部或者每一个部分具有唯一对应的数据标识;
所述本地数据的全部或者每一个部分具有唯一对应的数据标识;
当所述测试数据所对应的数据标识,与所述本地数据的全部或至少一个部分的数据标识重复时,确定本地数据中存在与所述重复的数据标识的对应的测试数据。
可以通过能将任意长度的数据通过压缩映射变为固定长度输出值的Hash(哈希)算法,对测试数据、本地数据设置唯一的数据标识。
以测试数据包括多个数据分片为例,对每个数据分片通过hash算法得到唯一的hash值,本地数据中已存在多个具有hash值的数据分片,将测试数据的hash值与本地数据的hash值逐一比较,发现存在相同的hash值时,就能确认本地数据中已存在测试数据的至少部分数据,出现重复数据。
数据传输场景可以包括多种针对更具体的测试需求的测试场景。
例如,数据传输场景可以包括上述的用户登录场景。
对应的,测试操作可以包括输入登录信息。
对应的,测试异常条件可以包括本地数据中已存在新输入的登录信息。
对应的,修复操作可以包括删除重复的登录信息。
当本地数据中已存在新输入的登录信息时,出现登录信息重复,影响目标应用程序的运行,进而会带来对后续测试的影响。通过执行修复操作,删除重复的登录信息,保证登录信息的唯一性,可以避免影响目标应用程序运行,消除对后续测试的影响。
又例如,数据传输场景可以包括上述的登录后数据初始化场景。
对应的,测试操作可以包括登录后数据初始化场景。
对应的,测试异常条件可以所述本地数据中已存在所述初始化数据的至少一部分。
对应的,修复操作可以包括清空已存在的初始化数据后重新下载初始化数据。
当本地数据中已存在初始化数据的至少一部分时,出现初始化数据重复,影响目标应用程序的初始化,进而会带来对后续测试的影响。通过执行修复操作,清空重复的初始化数据,重新执行初始化数据的下载,保证初始化数据的唯一性,可以避免影响目标应用程序运行,消除对后续测试的影响。
或者,例如,数据传输场景可以包括上述的用户上传文件场景。
对应的,测试操作可以包括上传测试文件。
对应的,测试异常条件可以包括本地数据中已存在测试文件所包含的至少一个数据分片。
对应的,修复操作可以包括删除重复的所述至少一个数据分片。
当本地数据中已存在测试文件所包含的至少一个数据分片时,出现测试文件的数据重复,也就是“脏数据”,会影响目标应用程序进而会带来对后续测试的影响。通过执行修复操作,删除重复的测试文件的数据,可以避免影响目标应用程序运行,消除对后续测试的影响。
步骤S2400,在修复操作执行后,对目标应用程序执行对应的验证操作以获取修复结果。
执行修复操作,是对异常的测试结果进行修复。
验证操作,是验证修复操作是否执行成功的操作。
通过在修复操作后执行验证操作,可以验证修复操作是否执行成功,得到对应的修复结果:验证修复操作执行成功,可以确认消除异常测试结果对后续测试的影响,提高后续测试结果的可信度,并且,同时验证目标应用程序的健壮性和可维护性;验证修复操作执行失败,可以记录验证结果,有助于后续跟踪分析测试结果,定位排查测试问题。
针对不同的修复操作,对应的验证操作不同。
测试场景中至少包括上述的数据传输场景时,对应的测试操作是传输测试数据;对应的,测试异常条件至少包括所述目标应用程序的本地数据中已存在传输的测试数据中至少部分数据;对应的,修复操作至少包括删除已存在的所述至少部分数据;
对应的,验证操作至少包括确定已存在的所述至少部分数据是否删除成功。
确定已存在的所述至少部分数据是否删除成功,是在执行修复操作后,确定写入测试数据的本地数据中,是否还存在重复的数据:可以遍历写入测试数据的本地数据的数据内容,确定是否存在内容重复的数据;在上述本地数据、测试数据的全部或者每一个部分都具有唯一对应的数据标识的例子中,也可以通过遍历写入测试数据的本地数据的全部数据标识,通过确定是否还存在重复的数据标识,来确定是否存在重复数据。
数据传输场景可以包括多种针对更具体的测试需求的测试场景。
例如,数据传输场景可以包括上述的用户登录场景。
对应的,测试操作可以包括输入登录信息。
对应的,测试异常条件可以包括本地数据中已存在新输入的登录信息。
对应的,修复操作可以包括删除重复的登录信息。
对应的,验证操作可以包括重复的登录信息是否删除成功。
验证重复的登录信息是否删除成功,也就是验证是否还存在重复的登录信息。验证登录信息是否重复,可以通过上述验证测试数据是否重复的示例实施,在此不再赘述。验证重复的登录信息删除成功,可以确认消除登录信息重复对目标程序测试的影响,同时验证目标应用程序的健壮性和可维护性;验证重复的登录信息删除失败,有助于测试结果的跟踪分析,定位排查测试问题。
又例如,数据传输场景可以包括上述的登录后数据初始化场景。
对应的,测试操作可以包括下载初始化数据。
对应的,测试异常条件可以包括本地数据中已存在初始化数据的至少一部分。
对应的,修复操作可以包括清空已存在的初始化数据后重新下载初始化数据。
对应的,验证操作可以包括确定初始化数据是否下载完成。
验证初始化数据是否下载完成,可以通过目标应用程序中成功展示初始化后的用户界面来确定,也可以通过初始化数据的预设的数据结尾标识来判定,在此不一一列举。验证初始化数据下载完成,可以确认清空已有重复的初始化数据重新下载初始化数据完成,消除初始化数据重复对目标程序测试的影响,同时验证目标应用程序的健壮性和可维护性;验证初始化数据下载未完成,有助于测试结果的跟踪分析,定位排查测试问题。
或者,例如,数据传输场景可以包括上述的用户上传文件场景。
对应的,测试操作可以包括上传测试文件。
对应的,测试异常条件可以包括本地数据中已存在测试文件所包含的至少一个数据分片。
对应的,修复操作可以包括删除重复的至少一个数据分片。
验证重复的至少一个数据分片是否删除成功,也就是验证是否还存在重复的测试文本的数据。验证测试文本的数据是否重复,可以通过上述验证测试数据是否重复的示例实施,在此不再赘述。验证重复的测试文本的数据删除成功,可以确认消除测试文本的数据重复对目标程序测试的影响,同时验证目标应用程序的健壮性和可维护性;验证重复的测试文本的数据删除失败,有助于测试结果的跟踪分析,定位排查测试问题。
在得到测试结果、修复结果后,在本实施例中,可以根据测试结果以及修复结果,以预设的格式生成测试报告,并以预设的上报方式上报,如图3所示的步骤S2500。
预设的格式,可以根据具体的应用需求设置,例如,预设的格式可以是日志列表格式,每一条日志记录对应的时间、对应的测试结果、修复结果,还可以包括对应的测试场景、当前测试网络的网络模式等等,根据日志记录生成日志列表,生成测试报告;或者,还可以将分类后的日志列表格式,可以根据不同的测试场景或者测试结果(异常或正常)、修复结果(失败或成功)进行分类,分类后生成日志列表,生成测试报告。
预设的上报方式可以根据具体上报需求设置,例如,可以是以预设的上报周期、或者在出现异常测试结果和/或失败的修复结果后,即时生成最新的测试报告,通过邮件甚至设置高优先级邮件发送给相关的测试人员、也可以生成对应的显示界面显示并告警提示相关的测试人员查看等等,以供相关测试人员后续跟踪分析。
在本实施例中,可以通过预先生成与测试场景对应的测试脚本,通过运行测试设备执行测试脚本,实现在对应的测试场景下,实施本实施例中提供的应用程序的测试方法,测试目标应用程序。
该测试脚本是可以被重复执行且可被复制的。通过测试脚本的可被重复执行性,可以实现同一个测试场景下的持续测试或者周期测试。通过测试脚本的可被复制性,可以使得更便利地通过多个测试设备执行本实施例中提供的应用程序的测试方法,提升测试效率。
因此,本实施例中提供的应用程序测试方法,还包括:
生成与所述测试场景对应的测试脚本,通过执行所述测试脚本,实现测试所述目标应用程序。
在本实施例中,还可以根据实际的测试需求,关联多个所述测试脚本,得到测试设计脚本,例如,将分别对应不同的测试场景的多个测试脚本,按照一定的时间顺序关联得到对应的测试设计脚本,通过执行该测试设计脚本,可以实现以一定测试顺序遍历多个测试场景测试目标应用程序。
因此,本实施例中提供的应用程序测试方法,还包括:
根据测试需求关联多个所述测试脚本,得到测试设计脚本,通过执行所述测试设计脚本,实现在多个所述应用场景下测试所述目标应用程序。
不同的测试需求,对应不同的关联方式,本领域技术人员根据本实施例,很容易得到适合自身测试需求的关联方式,在此不再赘述。
<例子>
以下将结合图4进一步举例说明本实施例中提供的应用程序的测试方法。在本例中,目标应用程序是一款共享车辆的应用APP,测试场景是用户上传文件场景,具体的测试文件是测试图片,该方法是通过执行对应的测试脚本实现,包括:
步骤S201,设置测试网络在前述的2G、3G、4G、Slow-WIFI的4个网络模式之间切换,符合弱网环境;
步骤S202,运行APP执行模拟用户上传图片的操作,上传测试图片;
上传测试图片时,测试图片被分为多个数据分片,每个数据分片具有唯一的hash值;
步骤S203,确定APP本地数据已存在与测试图片的至少一个数据分片的hash值重复的数据时,执行删除该hash值重复的数据;
步骤S204,写入测试图片后,检查本地是否还存在hash值相同的数据分片,并记录对应的验证结果;
步骤S205,对测试结果和验证结果记录日志并分类标记,生成测试报告,通过邮件发送给指定的相关测试人员。
<测试设备>
以上已经结合附图和例子说明了本实施例中提供的应用程序的测试方法,在本实施例中,还提供一种测试设备3000,如图5所示,包括存储器3100和处理器3200。
其中,存储器1200存储可执行指令,该可执行指令在测试设备3000运行时控制处理器3200执行根据本实施例的任何一项所述的应用程序的测试方法中的操作,包括:
设置测试网络,使得测试网络的传输状态符合弱网环境;
在测试网络中,根据预设的测试场景通过目标应用程序执行对应的测试操作,得到对应的测试结果;
当测试结果符合与测试场景对应的测试异常条件时,对目标应用程序执行对应的修复操作;
在修复操作执行后,对目标应用程序执行对应的验证操作以获取修复结果。
本领域技术人员应当明白,可以通过各种方式来实现测试设备3000。例如,可以通过指令配置处理器来实现测试设备3000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现测试设备3000。例如,可以将测试设备3000固化到专用器件(例如ASIC)中。可以将测试设备3000分成相互独立的单元,或者可以将它们合并在一起实现。测试设备3000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在一个例子中,测试设备3000可以如图1所示的测试设备1100的硬件配置。
以上已经通过附图和例子说明了本实施例提供的应用程序的测试方法以及测试设备,在本实施例中,通过设置符合弱网环境的测试网络,在测试网络中根据预设的测试场景通过目标应用程序执行对应的测试操作,在得到的测试结果出现异常时执行对应的修复操作,并验证得到修复结果,可以实现自动化构建弱网环境、执行弱网环境下的应用程序测试,节省测试人力成本,避免人工测试对测试结果的影响。此外,可以消除异常测试结果对后续测试的影响,提升测试效率。验证目标应用程序的代码健壮性和易维护性。
本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机系统软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以由硬件来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。因此,对于电子信息技术领域的普通技术人员来说,更为直接和清楚地描述一个技术方案的方式是描述该方案中的各个操作。在知道所要执行的操作的情况下,本领域技术人员可以基于对所述非技术性因素的考虑直接设计出期望的产品。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (11)
1.一种应用程序的测试方法,包括:
设置测试网络,使得所述测试网络的传输状态符合弱网环境;
在所述测试网络中,根据预设的测试场景通过目标应用程序执行对应的测试操作,得到对应的测试结果;
当所述测试结果符合与所述测试场景对应的测试异常条件时,对所述目标应用程序执行对应的修复操作;
在所述修复操作执行后,对所述目标应用程序执行对应的验证操作以获取修复结果。
2.根据权利要求1所述的方法,其特征在于,所述设置测试网络的步骤包括:
根据预设的周期,设置测试网络在多个网络模式之间切换;
其中,每个所述网络模式具有对应的网络传输参数;
所述网络传输参数至少包括网络制式、网络传输带宽、网络传输时延其中之一。
3.根据权利要求1所述的方法,其特征在于,
所述测试场景至少包括数据传输场景;
所述测试操作,至少包括传输测试数据;
所述测试异常条件,至少包括所述目标应用程序的本地数据中已存在传输的测试数据中至少部分数据;
所述修复操作,至少包括删除已存在的所述至少部分数据;
所述验证操作,至少包括确定已存在的所述至少部分数据是否删除成功。
4.根据权利要求3所述的方法,其特征在于,
所述数据传输场景包括用户登录场景;
所述测试操作,包括输入登录信息;
所述测试异常条件,包括所述本地数据中已存在新输入的所述登录信息;
所述修复操作,包括删除重复的登录信息;
所述验证操作,包括确定重复的登录信息是否删除成功。
5.根据权利要求3所述的方法,其特征在于,
所述数据传输场景包括登录后数据初始化场景;
所述测试操作,包括登录后数据初始化场景;
所述测试异常条件,包括所述本地数据中已存在所述初始化数据的至少一部分;
所述修复操作,包括清空已存在的初始化数据后重新下载初始化数据;
所述验证操作,包括确定所述初始化数据是否下载完成。
6.根据权利要求3所述的方法,其特征在于,
所述数据传输场景包括用户上传文件场景;
所述测试操作,包括上传测试文件;
所述测试异常条件,包括所述本地数据中已存在测试文件所包含的至少一个数据分片;
所述修复操作,包括删除重复的所述至少一个数据分片;
所述验证操作,包括确定是否成功删除所述重复的所述至少一个数据分片。
7.根据权利要求3所述的方法,其特征在于,还包括:
所述测试数据的全部或者每一个部分具有唯一对应的数据标识;
所述本地数据的全部或者每一个部分具有唯一对应的数据标识;
当所述测试数据所对应的数据标识,与所述本地数据的全部或至少一个部分的数据标识重复时,确定本地数据中存在与所述重复的数据标识的对应的测试数据。
8.根据权利要求1所述的方法,其特征在于,还包括:
生成与所述测试场景对应的测试脚本,通过执行所述测试脚本,实现测试所述目标应用程序。
9.根据权利要求8所述的方法,其特征在于,还包括:
根据测试需求关联多个所述测试脚本,得到测试设计脚本,通过执行所述测试设计脚本,实现在多个所述应用场景下测试所述目标应用程序。
10.根据权利要求1所述的方法,其特征在于,还包括:
根据所述测试结果和修复结果,以预设的格式生成测试报告,并以预设的上报方式上报。
11.一种测试设备,包括存储器和处理器,
其中,所述存储器存储可执行指令,所述可执行指令在所述测试设备运行时控制所述处理器执行根据权利要求1-10中的任何一项所述的应用程序的测试方法中的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710698082 | 2017-08-15 | ||
CN2017106980825 | 2017-08-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107967214A true CN107967214A (zh) | 2018-04-27 |
Family
ID=61999553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711296804.0A Pending CN107967214A (zh) | 2017-08-15 | 2017-12-08 | 应用程序的测试方法及测试设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107967214A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766282A (zh) * | 2019-01-31 | 2019-05-17 | Oppo广东移动通信有限公司 | 一种卡顿检测方法、卡顿检测装置及终端设备 |
CN110324201A (zh) * | 2019-05-21 | 2019-10-11 | 平安科技(深圳)有限公司 | 终端网络测试方法、装置、计算机设备和存储介质 |
CN110569184A (zh) * | 2019-07-31 | 2019-12-13 | 重庆小雨点小额贷款有限公司 | 一种测试方法及终端设备 |
CN110806981A (zh) * | 2019-11-05 | 2020-02-18 | 北京博睿宏远数据科技股份有限公司 | 一种应用程序测试方法、装置、设备和存储介质 |
CN111176972A (zh) * | 2018-11-12 | 2020-05-19 | 阿里巴巴集团控股有限公司 | 测试方法与系统 |
CN111343660A (zh) * | 2020-02-26 | 2020-06-26 | 平安银行股份有限公司 | 一种应用程序的测试方法及设备 |
CN111506502A (zh) * | 2020-04-13 | 2020-08-07 | 杭州涂鸦信息技术有限公司 | 一种移动端ui自动化配网流程测试系统及方法 |
CN112732566A (zh) * | 2020-12-31 | 2021-04-30 | 中国工商银行股份有限公司 | 应用程序用户会话超时测试方法、后台、前台及系统 |
CN116795727A (zh) * | 2023-08-25 | 2023-09-22 | 北京安天网络安全技术有限公司 | 一种测试过程的复现方法及装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279419A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种基于b/s结构系统的自动化版本验证方法及系统 |
CN105808427A (zh) * | 2016-03-02 | 2016-07-27 | 厦门美图移动科技有限公司 | 一种移动终端软件测试方法、装置和系统 |
CN106095682A (zh) * | 2016-06-15 | 2016-11-09 | 浪潮软件集团有限公司 | 一种模拟复杂网络的安卓应用稳定性测试方法 |
CN106888461A (zh) * | 2016-06-08 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种弱网络环境的构建方法和设备 |
-
2017
- 2017-12-08 CN CN201711296804.0A patent/CN107967214A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279419A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种基于b/s结构系统的自动化版本验证方法及系统 |
CN105808427A (zh) * | 2016-03-02 | 2016-07-27 | 厦门美图移动科技有限公司 | 一种移动终端软件测试方法、装置和系统 |
CN106888461A (zh) * | 2016-06-08 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种弱网络环境的构建方法和设备 |
CN106095682A (zh) * | 2016-06-15 | 2016-11-09 | 浪潮软件集团有限公司 | 一种模拟复杂网络的安卓应用稳定性测试方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176972A (zh) * | 2018-11-12 | 2020-05-19 | 阿里巴巴集团控股有限公司 | 测试方法与系统 |
CN109766282B (zh) * | 2019-01-31 | 2020-09-25 | Oppo广东移动通信有限公司 | 一种卡顿检测方法、卡顿检测装置及终端设备 |
CN109766282A (zh) * | 2019-01-31 | 2019-05-17 | Oppo广东移动通信有限公司 | 一种卡顿检测方法、卡顿检测装置及终端设备 |
CN110324201A (zh) * | 2019-05-21 | 2019-10-11 | 平安科技(深圳)有限公司 | 终端网络测试方法、装置、计算机设备和存储介质 |
CN110569184A (zh) * | 2019-07-31 | 2019-12-13 | 重庆小雨点小额贷款有限公司 | 一种测试方法及终端设备 |
CN110806981B (zh) * | 2019-11-05 | 2023-03-31 | 北京博睿宏远数据科技股份有限公司 | 一种应用程序测试方法、装置、设备和存储介质 |
CN110806981A (zh) * | 2019-11-05 | 2020-02-18 | 北京博睿宏远数据科技股份有限公司 | 一种应用程序测试方法、装置、设备和存储介质 |
CN111343660A (zh) * | 2020-02-26 | 2020-06-26 | 平安银行股份有限公司 | 一种应用程序的测试方法及设备 |
CN111343660B (zh) * | 2020-02-26 | 2024-03-22 | 平安银行股份有限公司 | 一种应用程序的测试方法及设备 |
CN111506502A (zh) * | 2020-04-13 | 2020-08-07 | 杭州涂鸦信息技术有限公司 | 一种移动端ui自动化配网流程测试系统及方法 |
CN111506502B (zh) * | 2020-04-13 | 2023-05-12 | 杭州涂鸦信息技术有限公司 | 一种移动端ui自动化配网流程测试系统及方法 |
CN112732566A (zh) * | 2020-12-31 | 2021-04-30 | 中国工商银行股份有限公司 | 应用程序用户会话超时测试方法、后台、前台及系统 |
CN116795727A (zh) * | 2023-08-25 | 2023-09-22 | 北京安天网络安全技术有限公司 | 一种测试过程的复现方法及装置、电子设备及存储介质 |
CN116795727B (zh) * | 2023-08-25 | 2023-10-27 | 北京安天网络安全技术有限公司 | 一种测试过程的复现方法及装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107967214A (zh) | 应用程序的测试方法及测试设备 | |
CN104765678B (zh) | 对移动终端设备上的应用进行测试的方法及装置 | |
CN111200535B (zh) | 设备的模拟系统和方法 | |
US8533691B2 (en) | Managing non-common features for program code translation | |
US20180121335A1 (en) | Testing a virtual network function by a virtual network tester | |
US10860462B2 (en) | System, computer program product and method for enhanced production environment behavior mirroring E.G. while conducting pilot on proof-of-concept (PoC) platforms | |
CN109408105A (zh) | 用户行为数据的采集方法、装置、计算装置和存储介质 | |
US11366738B2 (en) | System to determine performance based on entropy values | |
CN104978263A (zh) | 一种移动端应用程序测试方法及系统 | |
CN107707986B (zh) | 一种在直播软件的开发中模拟弹幕消息的方法及装置 | |
CN110166276A (zh) | 一种帧同步异常的定位方法、装置、终端设备和介质 | |
CN106326120B (zh) | 一种应用软件的回归测试方法及装置、电子设备 | |
CN108228288A (zh) | 一种组件系统及其调用方法和装置 | |
CN105426298A (zh) | 一种基于adb的软件测试方法和系统 | |
CN107168780A (zh) | 虚拟现实场景的加载方法、设备及虚拟现实设备 | |
CN106796597A (zh) | 自动化智能数据抓取和验证 | |
CN107172685A (zh) | 在移动终端展示无线接入点的信息的方法和设备 | |
CN107562637B (zh) | 一种用于软件测试的方法、设备、系统及存储介质 | |
CN110334021A (zh) | 接口测试案例的生成方法、装置、设备及存储介质 | |
CN111092771A (zh) | 一种物联网仿真测试平台 | |
CN105487970A (zh) | 一种界面展示方法及装置 | |
CN105205001A (zh) | 游戏程序的测试方法、装置及系统 | |
CN112463467B (zh) | 自动化的整合测试系统及其方法 | |
CN111176974B (zh) | 容灾测试方法、装置、计算机可读介质及电子设备 | |
CN107797922A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180427 |
|
RJ01 | Rejection of invention patent application after publication |