CN114661602A - 测试用例的生成方法及装置 - Google Patents
测试用例的生成方法及装置 Download PDFInfo
- Publication number
- CN114661602A CN114661602A CN202210294402.1A CN202210294402A CN114661602A CN 114661602 A CN114661602 A CN 114661602A CN 202210294402 A CN202210294402 A CN 202210294402A CN 114661602 A CN114661602 A CN 114661602A
- Authority
- CN
- China
- Prior art keywords
- functional
- test
- functional element
- flow
- elements
- 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
Images
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
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
技术领域
本发明涉及金融或其他技术领域,具体涉及一种测试用例的生成方法及装置。
背景技术
近年来,5G等基础设施飞速发展加之疫情推动,加速了音视频在各行各业的广泛应用。音视频软件版本快速迭代发布,大量业务场景持续接入,需对音视频软件频繁执行回归测试、关键业务7×24小时持续运行的系统稳定性测试。
目前,音视频软件测试多为人工操作:在多终端(Web端、iOS端、Android端)重复执行相同测试,无法保证每次测试、执行操作的一致性,且耗费大量人力,从而导致回归测试无法同时兼顾版本周期及测试范围,而测试范围的缩减上可能会导致测试点覆盖不完全的问题。为保障软件的稳定运行,维护用户对软件的信任,提升软件测试效率,引入自动化测试。
目前,GUI自动化测试主要通过以下方式进行:将整个操作完整录制一遍,工具按照一样的路径和操作回放。然而,工具仅简单记录点击、滑动的轨迹和操作并回放,一旦回放执行过程中窗口出现异常情况,回放操作将无法正常进行。
发明内容
针对现有技术中的问题,本发明实施例提供一种测试用例的生成方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种测试用例的生成方法,包括:
获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;
根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;
根据每个所述测试流程,生成与所述测试流程相对应的测试用例。
可选的,所述功能元素库中的各功能元素的元素类型包括:流程开始必选元素、中间操作可选元素、流程结束必选元素。
可选的,所述根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程包括:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型进行排序,生成所述待测软件的一个测试流程。
可选的,对于具有依赖关系的所述功能元素,所述功能元素库中还保存有各所述具有依赖关系的功能元素之间的依赖关系。
可选的,所述根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程包括:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型以及各所述功能元素之间的依赖关系进行排序,生成所述待测软件的一个测试流程。
可选的,所述根据每个所述测试流程,生成与所述测试流程相对应的测试用例包括:
获取所述测试流程中每个功能元素所对应的操作执行脚本;
按照所述测试流程对每个所述功能元素的操作执行脚本进行拼接,得到与所述测试流程相对应的测试用例。
可选的,所述方法还包括:
根据所述测试用例对所述待测软件进行测试,生成测试报告。
可选的,所述根据所述测试用例对所述待测软件进行测试,生成测试报告包括:
获取目标设备当前操作界面的图像;
若所述图像中存在所述测试用例中的第一个功能元素的元素标识,则在所述操作界面中对所述第一个功能元素的元素标识进行点击操作;
在对所述第一个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第一预设功能元素的元素标识;
若所述目标设备当前操作界面的图像中存在第一预设功能元素的元素标识,则判断所述图像中是否存在所述测试用例中的第二个功能元素的元素标识;
若所述图像中存在所述测试用例中的第二个功能元素的元素标识,则在所述操作界面中对所述第二个功能元素的元素标识进行点击操作;
在对所述第二个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第二预设功能元素的元素标识,以此类推,直至在目标设备的操作界面中对所述测试用例中的最后一个功能元素的元素标识进行点击操作,并在对所述最后一个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识,或者,直至在所述操作界面中对所述测试用例中的第m个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识;其中,1≤m≤n,n表示所述测试用例中功能元素的个数;
若所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识或所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识,生成测试报告。
另一方面,本发明提出一种测试用例的生成装置,包括:
获取模块,用于获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;
第一生成模块,用于根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;
第二生成模块,用于根据每个所述测试流程,生成与所述测试流程相对应的测试用例。
可选的,所述功能元素库中的各功能元素的元素类型包括:流程开始必选元素、中间操作可选元素、流程结束必选元素。
可选的,所述第一生成模块具体用于:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型进行排序,生成所述待测软件的一个测试流程。
可选的,对于具有依赖关系的所述功能元素,所述功能元素库中还保存有各所述具有依赖关系的功能元素之间的依赖关系。
可选的,所述第一生成模块具体用于:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型以及各所述功能元素之间的依赖关系进行排序,生成所述待测软件的一个测试流程。
可选的,所述第二生成模块具体用于:
获取所述测试流程中每个功能元素所对应的操作执行脚本;
按照所述测试流程对每个所述功能元素的操作执行脚本进行拼接,得到与所述测试流程相对应的测试用例。
可选的,所述装置还包括:
测试模块,用于根据所述测试用例对所述待测软件进行测试,生成测试报告。
可选的,所述测试模块具体用于:
获取目标设备当前操作界面的图像;
若所述图像中存在所述测试用例中的第一个功能元素的元素标识,则在所述操作界面中对所述第一个功能元素的元素标识进行点击操作;
在对所述第一个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第一预设功能元素的元素标识;
若所述目标设备当前操作界面的图像中存在第一预设功能元素的元素标识,则判断所述图像中是否存在所述测试用例中的第二个功能元素的元素标识;
若所述图像中存在所述测试用例中的第二个功能元素的元素标识,则在所述操作界面中对所述第二个功能元素的元素标识进行点击操作;
在对所述第二个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第二预设功能元素的元素标识,以此类推,直至在目标设备的操作界面中对所述测试用例中的最后一个功能元素的元素标识进行点击操作,并在对所述最后一个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识,或者,直至在所述操作界面中对所述测试用例中的第m个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识;其中,1≤m≤n,n表示所述测试用例中功能元素的个数;
若所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识或所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识,生成测试报告。
又一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的测试用例的生成方法的步骤。
再一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的测试用例的生成方法的步骤。
本发明实施例提供的测试用例的生成方法及装置,通过获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;根据每个所述测试流程,生成与所述测试流程相对应的测试用例。这样,能够基于元素分类自动生成待测软件的各测试流程,并基于每个所述测试流程自动生成该测试流程所对应的可执行测试用例,降低测试人员编写测试脚本的技术难度,提高音视频软件回归测试效率,克服了通过记录回放的方法进行自动化测试的弊端。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的测试用例的生成方法的流程示意图。
图2是本发明一实施例提供的测试用例的生成方法的部分流程示意图。
图3是本发明另一实施例提供的测试用例的生成方法的流程示意图。
图4是本发明一实施例提供的测试用例的生成方法的部分流程示意图。
图5是本发明一实施例提出的一种测试用例的生成装置的结构示意图。
图6是本发明另一实施例提出的一种测试用例的生成装置的结构示意图。
图7是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意排序。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部排序。
本发明实施例提供的测试用例的生成方法的执行主体包括但不限于计算机。
图1是本发明一实施例提供的测试用例的生成方法的流程示意图,如图1所示,本发明实施例提供的测试用例的生成方法,所述方法包括:
S101、获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;
本步骤,所述待测软件是具有人机交互界面(UI界面)的软件,例如音视频软件,所述功能元素库中的功能元素是指所述待测软件的软件界面上的功能控件的标识,例如所述功能元素是所述待测软件界面上的功能控件的图标;可预先对每个所述功能元素进行分类,例如按照实现所述待测软件的目标功能时各所述功能元素之间的操作顺序对各所述功能元素进行分类,在对各所述功能元素进行分类之后,将每个所述功能元素与该功能元素所属的元素类型之间的映射关系存储在所述功能元素库中。
S102、根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;
本步骤,每个所述功能元素所属的元素类型代表了该功能元素在实现所述待测软件的目标功能时的作用,故可按照所述功能元素库中每个所述功能元素所属的元素类型对各所述功能元素进行排序,生成所述待测软件的至少一个测试流程,以按照每个所述测试流程对所述待测软件的所述目标功能进行测试。
S103、根据每个所述测试流程,生成与所述测试流程相对应的测试用例。
本步骤,按照每个所述测试流程,自动生成与该测试流程相对应的可执行测试用例。
本发明实施例提供的测试用例的生成方法,通过获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;根据每个所述测试流程,生成与所述测试流程相对应的测试用例。这样,能够基于元素分类自动生成待测软件的各测试流程,并基于每个所述测试流程自动生成该测试流程所对应的可执行测试用例,降低测试人员编写测试脚本的技术难度,提高音视频软件回归测试效率,克服了通过记录回放的方法进行自动化测试的弊端。
可选的,所述功能元素库中的各功能元素的元素类型包括:流程开始必选元素、中间操作可选元素、流程结束必选元素。
本实施例,所述流程开始必选元素是指在对所述待测软件的目标功能进行测试时流程开始的必选元素,所述流程结束必选元素是指在对所述待测软件的目标功能进行测试时流程结束的必选元素,所述中间操作可选元素是指在对所述待测软件的目标功能进行测试的过程中可选的元素。举例而言,在对某一音视频软件的视频通话功能进行测试时,“打开APP”、“选择通话对象”、“拨打电话”三个功能元素属于流程开始必选元素,“本地麦克风操作”、“本地摄像头操作”、“静音设置”三个功能元素属于中间操作可选元素,“挂断通话”属于流程结束必选元素,参见下表1:
表1:
可选的,所述根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程包括:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型进行排序,生成所述待测软件的一个测试流程。
本实施例,流程开始必选元素中的所有功能元素以及流程结束必选元素中的所有功能元素在测试流程中均为必选,中间操作可选元素中的功能元素在测试流程中属于可选功能元素;在每次按照上述规则从所述功能元素库中选出各功能元素之后,将各功能元素按照流程开始必选元素→中间操作可选元素→流程结束必选元素进行排序,生成所述待测软件的一个测试流程。
为使功能点覆盖全面,按照数学中的排列方法在所述功能元素库中选择属于中间操作可选元素,也即中间操作可选元素中的功能元素的数量为n时,则共有种选择方法,将每种选择方法选择出来的中间操作可选元素与属于流程开始必选元素的所有功能元素、属于流程结束必选元素的所有功能元素按照流程开始必选元素→中间操作可选元素→流程结束必选元素进行排序,生成所述待测软件的一个测试流程;最终得到所述待测软件的个测试流程。根据每个测试流程生成一个测试用例,共生成个测试用例,从而实现对所述待测软件的功能点的全面测试、发现定式流程无法测出的问题点。
可选的,对于具有依赖关系的所述功能元素,所述功能元素库中还保存有各所述具有依赖关系的功能元素之间的依赖关系。
本实施例,对于具有依赖关系的功能元素,可将其划分为同一类功能元素,并将该依赖关系存储在功能元素库中,举例而言,在上表1中,“打开APP”、“选择通话对象”、“拨打通话”需连续执行,按照点击顺序绑定其相互依赖关系。
可选的,在所述功能元素之间存在依赖关系时,所述根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程包括:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型以及各所述功能元素之间的依赖关系进行排序,生成所述待测软件的一个测试流程。
本实施例,结合功能元素所属的元素类型以及功能元素之间的依赖关系对从所述功能元素库中选取出来的各功能元素进行排序,使得生成的测试流程更加准确。具体的,按照每种元素类型下各功能元素之间的依赖关系对该元素类型下的各所述功能元素进行排序,并按照元素类型对属于不同元素类型的功能元素进行排序。
举例而言,在从上表1中选取的功能元素包括“打开APP”、“选择通话对象”、“拨打通话”、“本地麦克风操作”、“挂断通话”时,按照各所述功能元素所属的元素类型以及各所述功能元素之间的依赖关系进行排序,生成所述待测软件的一个测试流程为:“打开APP”→“选择通话对象”→“拨打通话”→“本地麦克风操作”→“挂断通话”。
如图2所示,可选的,所述根据每个所述测试流程,生成与所述测试流程相对应的测试用例包括:
S1031、获取所述测试流程中每个功能元素所对应的操作执行脚本;
本步骤,可预先为每种功能元素编写操作执行脚本,举例而言,预先为某一目标功能元素编写的操作执行脚本的逻辑如下:
第一步:点击目标功能元素;
第二步:等待1ms;
第三步:获取待测软件当前操作界面上出现的功能元素,若所述功能元素与预期相同,则确定操作成功,执行后续处理;操作失败则循环执行至操作成功或执行三次后失败退出。
由此可见,脚本编写简单易上手,降低了测试人员门槛。
S1032、按照所述测试流程对每个所述功能元素的操作执行脚本进行拼接,得到与所述测试流程相对应的测试用例。
本步骤,按照测试流程中各功能元素所在的次序,依次对各所述功能元素的操作执行脚本进行拼接,得到与所述测试流程相对应的测试用例。
本发明实施例提供的测试用例的生成方法,通过简单的脚本编写自动生成可执行测试用例,降低测试人员技术难度,提高音视频软件回归测试效率。在软件持续的迭代开发中,新增功能只需执行简单脚本编写,便可生成含新功能在内的全流程测试用例,无需手动改写用例。
如图3所示,可选的,所述方法还可以包括:
S104、根据所述测试用例对所述待测软件进行测试,生成测试报告。
本实施例,可通过图像处理技术实现功能元素的识别与定位,执行上述所生成的测试用例。测试用例执行完毕,自动生成测试报告。基于appium测试框架对待测软件进行测试时,移动端(手机)开启开发者模式下的USB调试设置,使用数据线连接多台移动端测试设备(安装待测软件的设备),为实现同时控制多台移动端设备(每台设备IP不同),需在appium测试框架中配置设备IP,以便实现精准设备控制。
如图4所示,可选的,所述根据所述测试用例对所述待测软件进行测试,生成测试报告包括:
S1041、获取目标设备当前操作界面的图像;
本步骤,所述目标设备是指安装了待测软件的设备,可通过截图方式获取目标设备当前操作界面的图像。
S1042、若所述图像中存在所述测试用例中的第一个功能元素的元素标识,则在所述操作界面中对所述第一个功能元素的元素标识进行点击操作;
本步骤,所述测试用例中的第一个功能元素是指按照所述测试用例的测试逻辑第一个进行测试的功能元素;所述第一个功能元素的元素标识是指所述第一个功能元素在UI界面中的图标,可根据图像处理技术识别所述图像中是否具有所述第一个功能元素的图标;所述在所述操作界面中对所述第一个功能元素的元素标识进行点击操作是指利用自动化测试工具模拟人在软件界面上的点击操作。
在本步骤之前,可以通过截图的方式截取待测软件UI界面上全部需要的功能元素,将其命名保存;版本迭代过程中若有新功能加入,则截图获取新功能元素,将其命名并保存。获取功能元素的手段由ID(身份标识)获取转为截图获取。
S1043、在对所述第一个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第一预设功能元素的元素标识;
本步骤,在对所述第一个功能元素的元素标识进行点击操作之后,正常情况下,所述目标设备会跳转至新的操作界面,故可将正常情况下目标设备跳转到的新的操作界面中的功能元素作为所述第一预设功能元素,据此判断待测软件对所述第一个功能元素的元素标识的点击操作的响应是否正常。
S1044、若所述目标设备当前操作界面的图像中存在第一预设功能元素的元素标识,则判断所述图像中是否存在所述测试用例中的第二个功能元素的元素标识;
本步骤,若所述目标设备当前操作界面的图像中存在第一预设功能元素的元素标识,则说明待测软件对所述第一个功能元素的元素标识的点击操作的响应正常,此时需在所述目标设备当前操作界面中查找所述测试用例中的第二个功能元素的元素标识,以对所述第二个功能元素的元素标识进行点击操作测试。
可以理解的是,在一些情况下,所述第一预设功能元素与所述第二个功能元素可以是同一个功能元素,此时,则可省略上述步骤S1044,直接执行以下步骤S1045。
S1045、若所述图像中存在所述测试用例中的第二个功能元素的元素标识,则在所述操作界面中对所述第二个功能元素的元素标识进行点击操作;
本步骤,与上述步骤S1042的具体执行过程类似,在此不再赘述。
S1046、在对所述第二个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第二预设功能元素的元素标识,以此类推,直至在目标设备的操作界面中对所述测试用例中的最后一个功能元素的元素标识进行点击操作,并在对所述最后一个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识,或者,直至在所述操作界面中对所述测试用例中的第m个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识;其中,1≤m≤n,n表示所述测试用例中功能元素的个数;
本步骤,按照顺序对测试用例中的各功能元素进行测试,直至待测软件响应失败或者待测软件对各功能元素的测试响应成功。
S1047、若所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识或所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识,生成测试报告。
本步骤,在按照顺序对测试用例中的各功能元素进行测试,直至待测软件响应失败或者待测软件对各功能元素的测试响应成功之后,按照该测试结果生成测试报告,该测试报告中可以包括对每个功能元素的测试结果。
本发明实施例提供的测试用例的生成方法,通过图像处理技术进行功能元素获取、响应状态判断,克服了在部分软件源代码中获取界面功能元素困难的问题。
图5是本发明一实施例提出的一种测试用例的生成装置的结构示意图,如图5所示,本发明实施例提出的一种测试用例的生成装置,包括:
获取模块21,用于获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;
第一生成模块22,用于根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;
第二生成模块23,用于根据每个所述测试流程,生成与所述测试流程相对应的测试用例。
本发明实施例提供的测试用例的生成装置,通过获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;根据每个所述测试流程,生成与所述测试流程相对应的测试用例。这样,能够基于元素分类自动生成待测软件的各测试流程,并基于每个所述测试流程自动生成该测试流程所对应的可执行测试用例,降低测试人员编写测试脚本的技术难度,提高音视频软件回归测试效率,克服了通过记录回放的方法进行自动化测试的弊端。
可选的,所述功能元素库中的各功能元素的元素类型包括:流程开始必选元素、中间操作可选元素、流程结束必选元素。
可选的,所述第一生成模块具体用于:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型进行排序,生成所述待测软件的一个测试流程。
可选的,对于具有依赖关系的所述功能元素,所述功能元素库中还保存有各所述具有依赖关系的功能元素之间的依赖关系。
可选的,所述第一生成模块具体用于:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型以及各所述功能元素之间的依赖关系进行排序,生成所述待测软件的一个测试流程。
可选的,所述第二生成模块具体用于:
获取所述测试流程中每个功能元素所对应的操作执行脚本;
按照所述测试流程对每个所述功能元素的操作执行脚本进行拼接,得到与所述测试流程相对应的测试用例。
如图6所示,可选的,所述装置还包括:
测试模块24,用于根据所述测试用例对所述待测软件进行测试,生成测试报告。
可选的,所述测试模块具体用于:
获取目标设备当前操作界面的图像;
若所述图像中存在所述测试用例中的第一个功能元素的元素标识,则在所述操作界面中对所述第一个功能元素的元素标识进行点击操作;
在对所述第一个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第一预设功能元素的元素标识;
若所述目标设备当前操作界面的图像中存在第一预设功能元素的元素标识,则判断所述图像中是否存在所述测试用例中的第二个功能元素的元素标识;
若所述图像中存在所述测试用例中的第二个功能元素的元素标识,则在所述操作界面中对所述第二个功能元素的元素标识进行点击操作;
在对所述第二个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第二预设功能元素的元素标识,以此类推,直至在目标设备的操作界面中对所述测试用例中的最后一个功能元素的元素标识进行点击操作,并在对所述最后一个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第n预设功能元素的元素标识,或者,直至在所述操作界面中对所述测试用例中的第m个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识;其中,1≤m≤n,n表示所述测试用例中功能元素的个数。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
需要说明的是,本发明实施例提供的测试用例的生成方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对测试用例的生成方法及装置的应用领域不做限定。
图7为本发明一实施例提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行上述任一实施例所述的方法,例如包括:获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;根据每个所述测试流程,生成与所述测试流程相对应的测试用例。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种测试用例的生成方法,其特征在于,包括:
获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;
根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;
根据每个所述测试流程,生成与所述测试流程相对应的测试用例。
2.根据权利要求1所述的方法,其特征在于,所述功能元素库中的各功能元素的元素类型包括:流程开始必选元素、中间操作可选元素、流程结束必选元素。
3.根据权利要求2所述的方法,其特征在于,所述根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程包括:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型进行排序,生成所述待测软件的一个测试流程。
4.根据权利要求2所述的方法,其特征在于,对于具有依赖关系的所述功能元素,所述功能元素库中还保存有各所述具有依赖关系的功能元素之间的依赖关系。
5.根据权利要求4所述的方法,其特征在于,所述根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程包括:
将所述功能元素库中属于流程开始必选元素的所有功能元素、属于中间操作可选元素的至少一个功能元素、以及属于流程结束必选元素的所有功能元素按照各所述功能元素所属的元素类型以及各所述功能元素之间的依赖关系进行排序,生成所述待测软件的一个测试流程。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据每个所述测试流程,生成与所述测试流程相对应的测试用例包括:
获取所述测试流程中每个功能元素所对应的操作执行脚本;
按照所述测试流程对每个所述功能元素的操作执行脚本进行拼接,得到与所述测试流程相对应的测试用例。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述测试用例对所述待测软件进行测试,生成测试报告。
8.根据权利要求7所述的方法,其特征在于,所述根据所述测试用例对所述待测软件进行测试,生成测试报告包括:
获取目标设备当前操作界面的图像;
若所述图像中存在所述测试用例中的第一个功能元素的元素标识,则在所述操作界面中对所述第一个功能元素的元素标识进行点击操作;
在对所述第一个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第一预设功能元素的元素标识;
若所述目标设备当前操作界面的图像中存在第一预设功能元素的元素标识,则判断所述图像中是否存在所述测试用例中的第二个功能元素的元素标识;
若所述图像中存在所述测试用例中的第二个功能元素的元素标识,则在所述操作界面中对所述第二个功能元素的元素标识进行点击操作;
在对所述第二个功能元素的元素标识进行点击操作之后,判断所述目标设备当前操作界面的图像中是否存在第二预设功能元素的元素标识,以此类推,直至在目标设备的操作界面中对所述测试用例中的最后一个功能元素的元素标识进行点击操作,并在对所述最后一个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识,或者,直至在所述操作界面中对所述测试用例中的第m个功能元素的元素标识进行点击操作之后,所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识;其中,1≤m≤n,n表示所述测试用例中功能元素的个数;
若所述目标设备当前操作界面的图像中存在第n预设功能元素的元素标识或所述目标设备当前操作界面的图像中不存在第m预设功能元素的元素标识,生成测试报告。
9.一种测试用例的生成装置,其特征在于,包括:
获取模块,用于获取待测软件的功能元素库中每个功能元素与所述功能元素所属的元素类型之间的映射关系;
第一生成模块,用于根据每个所述功能元素所属的元素类型,对各所述功能元素进行排序,生成至少一个测试流程;
第二生成模块,用于根据每个所述测试流程,生成与所述测试流程相对应的测试用例。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210294402.1A CN114661602A (zh) | 2022-03-24 | 2022-03-24 | 测试用例的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210294402.1A CN114661602A (zh) | 2022-03-24 | 2022-03-24 | 测试用例的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661602A true CN114661602A (zh) | 2022-06-24 |
Family
ID=82031739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210294402.1A Pending CN114661602A (zh) | 2022-03-24 | 2022-03-24 | 测试用例的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661602A (zh) |
-
2022
- 2022-03-24 CN CN202210294402.1A patent/CN114661602A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853232B2 (en) | Adaptive system for mobile device testing | |
CN108984389B (zh) | 一种应用程序测试方法及终端设备 | |
US20140237451A1 (en) | Exposing method related data calls during testing in an event driven, multichannel architecture | |
US20090199096A1 (en) | Automated gui test recording/playback | |
JP5213671B2 (ja) | テストケースの選択方法及び選択システム | |
CN114546738B (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
CN112882930B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
CN110554962A (zh) | 回归测试的流程覆盖方法、服务器及计算机可读存储介质 | |
CN110727592A (zh) | 应用程序测试方法、介质、装置和计算设备 | |
CN111078637A (zh) | 脚本文件上线方法、装置、计算机设备及存储介质 | |
CN114238134A (zh) | 一种测试结果展示方法、装置、设备及存储介质 | |
Usman et al. | Test case generation from android mobile applications focusing on context events | |
CN111400171B (zh) | 一种接口测试方法、系统、装置及可读存储介质 | |
CN108563578B (zh) | Sdk兼容性检测方法、装置、设备及可读存储介质 | |
CN114661602A (zh) | 测试用例的生成方法及装置 | |
CN115237441A (zh) | 一种基于云平台的升级测试方法、装置及介质 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN113326193A (zh) | 一种小程序测试方法及装置 | |
CN115248772A (zh) | 软件中间件的接口测试方法和装置 | |
CN111209204B (zh) | 一种基于JSON的web自动化测试方法及其系统和装置 | |
CN112558975B (zh) | 组件的代码切换方法、装置、电子设备及可读存储介质 | |
CN111026650B (zh) | 软件测试的方法、装置、存储介质和电子设备 | |
CN114253867B (zh) | 基于神经网络模型的自动化测试方法、装置及系统 | |
Hu et al. | DroidWalker: Generating Reproducible Test Cases via Automatic Exploration of Android Apps | |
CN111104318B (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 |