CN113535567B - 软件测试方法、装置、设备和介质 - Google Patents
软件测试方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113535567B CN113535567B CN202110822307.XA CN202110822307A CN113535567B CN 113535567 B CN113535567 B CN 113535567B CN 202110822307 A CN202110822307 A CN 202110822307A CN 113535567 B CN113535567 B CN 113535567B
- Authority
- CN
- China
- Prior art keywords
- test
- test case
- functional module
- content
- module
- 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
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/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/3664—Environments for testing or debugging software
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
技术领域
本公开涉及测试领域,具体涉及一种软件测试方法、装置、设备和介质。
背景技术
测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
随着信息技术的发展,软件版本迭代频率加速,无形中增加了测试的工作量。目前通常的软件测试过程需测试人员参与,投入大量人力成本,测试效率较低。
发明内容
鉴于上述问题,本公开提供了一种能够节省人力成本、提高测试效率的软件测试方法、装置、设备和介质。
根据本公开的第一个方面,提供了一种软件测试方法,包括:
获取待测试的测试用例,形成测试用例集;
根据测试执行框架构建测试触发项目;
在测试触发项目被触发时,测试执行框架自动执行测试用例;
获得并显示测试结果。
根据本公开的实施例,获取待测试的测试用例集包括:
构建测试用例与功能模块内容的映射关系,其中,功能模块内容至少包括功能模块、包含功能模块的文件、包含功能模块的文件夹三者中的一者;
保存测试用例与功能模块内容的映射关系至数据库中;
在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例,形成待测试的测试用例集。
根据本公开的实施例,测试执行框架包括jenkins,根据测试执行框架构建测试触发项目包括:
利用jenkins构建与测试用例的适配的版本部署测试环境;
利用jenkins构建测试触发项目。
根据本公开的实施例,测试执行框架还包括利用django框架实现的webservice,软件测试方法还包括:
利用django框架实现的webservice驱动测试用例的执行;
利用django框架实现的web前端显示测试用例的执行状态。
根据本公开的实施例,在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例包括:
利用django查找与变动的功能模块内容具有映射关系的测试用例,或者
解析功能模块内容,获得具有代码变动的功能模块内容,在数据库中过滤与代码变动的功能模块内容具有映射关系的测试用例。
根据本公开的实施例,测试执行框架还包括lettuce,测试执行框架自动执行测试用例集包括:
利用lettuce自动执行测试用例集中的测试用例。
根据本公开的实施例,软件测试方法还包括:
在开发阶段根据被定义的接口创建待测试的测试用例;
利用lettuce执行测试用例,以验证接口。
根据本公开的实施例,软件测试方法还包括:
在测试用例集中包括多个测试用例时,划分测试用例集中的测试用例,形成多个测试任务;
利用django驱动测试任务的分发;
利用django显示各个测试任务。
根据本公开的实施例,软件测试方法还包括:
利用django显示与测试用例相关的信息,其中,与测试用例相关的信息包括:执行测试用例的测试结果和/或执行测试用例后的测试报告。
本公开的第二方面提供了一种软件测试装置,包括:
测试用例获取模块,用于获取待测试的测试用例,形成测试用例集;
测试触发项目构建模块,用于根据测试执行框架构建测试触发项目;
测试用例自动执行模块,用于在测试触发项目被触发时,测试执行框架自动执行测试用例;
测试结果获得模块,用于获得并显示测试结果。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述软件测试方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述软件测试方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的软件测试方法、装置、设备和介质的应用场景图;
图2示意性示出了根据本公开实施例的软件测试方法的流程图;
图3示意性示出了操作S201的一种实施例的获取待测试的测试用例集的流程图;
图4示意性示出了操作S202的根据测试执行框架构建测试触发项目的流程图;
图5示意性示出了另一实施例的软件测试方法的流程图;
图6示意性示出了操作S31的在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例的流程图;
图7示意性示出了操作S203的测试执行框架自动执行测试用例集的流程图;
图8示意性示出了又一实施例的软件测试方法的流程图;
图9示意性示出了根据本公开实施例的软件测试装置的结构框图;以及
图10示意性示出了根据本公开实施例的适于实现软件测试方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
需要说明的是,本公开的软件测试方法和装置涉及测试领域、还涉及大数据、人工智能、云计算、物联网技术领域,可应用于金融领域,也可用于除金融领域之外的任意领域,本公开对软件测试方法和装置的应用领域不做限定。
还需要说明是,在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
随着信息技术的发展,软件版本迭代频率加速,无形中增加了测试的工作量,当前普遍进行的由测试人员执行的手动测试往往跟不上版本的迭代速度。
目前通常的软件测试过程是根据产品需求书确定测试点、模拟应用场景编写测试用例,开发完成软件版本后根据当次软件版本的功能提取相关的测试点进行测试用例的选择及执行以覆盖和测试有变动的功能模块。整个过程均需人员参与,需要投入大量人力成本及沟通成本,测试效率较低,具体体现在以下几个方面:
首先,当下的测试人员往往要到开发人员完成功能开发才能开始测试工作,开发和测试的工作在时间效用上通常存在彼此约束的情况,测试等待开发完成,开发等待测试结果。
其次,在版本迭代频繁的时候,往往出现人力不足的情况,从而导致无法同时兼顾版本周期及测试范围,在测试范围的缩减上可能会导致测试点覆盖不完全。
再次,每次版本迭代均需要人员沟通变动相关测试点而后确定测试范围及测试集合,有时会因沟通不及时出现误差,也有时会因经验,个人主观上对相关性判断的误差导致测试点遗漏。
本公开的实施例提供了一种软件测试方法,包括:获取待测试的测试用例,形成测试用例集;根据测试执行框架构建测试触发项目;在测试触发项目被触发时,测试执行框架自动执行测试用例;获得并显示测试结果。
本公开实施例的软件测试方法能够根据测试执行框架构建测试触发项目以及在测试触发项目被触发时自动执行测试用例,实现自动执行测试用例,减少测试人员的工作量,节省人力成本,提高测试效率。
图1示意性示出了根据本公开实施例的测试用例执行的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103、网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的软件测试方法一般可以由服务器105执行。相应地,本公开实施例所提供的软件测试装置一般可以设置于服务器105中。本公开实施例所提供的软件测试方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的软件测试装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图8对公开实施例的软件测试方法进行详细描述。
图2示意性示出了根据本公开实施例的软件测试方法的流程图。
如图2所示,该实施例的测试用例执行包括操作S201~操作S204。
在操作S201,获取待测试的测试用例,形成测试用例集;
在操作S202,根据测试执行框架构建测试触发项目;
在操作S203,在测试触发项目被触发时,测试执行框架自动执行测试用例;
在操作S204,获得并显示测试结果。
软件开发后需要进行测试,以检查软件是否能够实现相应的功能,另外,为修复软件的部分缺陷或者优化软件的部分内容或者对软件增加功能时也会不定期或者定期发布新的软件版本,同样需要进行测试,相关的测试人员需要编写测试用例,按照测试用例中描述的具体步骤进行软件测试。应该理解的是,测试用例的测试内容可以是软件整体或部分功能。
本公开实施例的技术方案中,操作S201中提到的“待测试的测试用例”是指针对上述的开发后或者新版本的软件,用于描述软件整体或者部分功能的测试用例,待测试的测试用例可以有一个或者多个;操作S202中提到的“测试触发项目”用于触发测试执行框架进行执行测试用例,可理解为测试执行框架进行执行测试用例的“开关”,操作S203中提到的“执行测试用例”是指按照测试用例中描述的具体步骤对软件进行测试;操作S203中提到的“测试执行框架”至少具有:构建测试触发项目和被测试触发项目触发时能够自动执行测试用例的功能。
本公开实施例的软件测试方法中,能够根据测试执行框架构建测试触发项目以及在测试触发项目被触发时自动执行测试用例,实现自动执行测试用例,减少测试人员的工作量,节省人力成本,提高测试效率。
结合图2、图3,根据本公开的实施例,操作S201的获取待测试的测试用例集可包括操作S11~操作S13:
在操作S11,构建测试用例与功能模块内容的映射关系;
在操作S12,保存测试用例与功能模块内容的映射关系至数据库中;
在操作S13,在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例,形成待测试的测试用例集。
操作S11中提到的“功能模块内容”至少包括功能模块、包含功能模块的文件、包含功能模块的文件夹三者中的一者。应该理解的是,“功能模块”是指数据说明、可执行语句等程序元素的集合,单独命名的可通过名字来访问的过程、函数、子程序或宏调用,每个功能模块完成软件整体功能的一个子功能。
应该理解的是,在版本更新时(具体可包括新增功能/功能改变或优化/开发框架改变等),功能模块、包含功能模块的文件以及包含功能模块的文件夹三者中的至少一者会发生变动(版本更新时,代码变动,代码变动的体现方式是功能模块变动,进而影响到包含功能模块的文件/文件夹变动)。
本公开实施例的技术方案中,版本更新时,功能模块内容会随之变动,根据变动的功能模块与测试用例的映射关系可自动查找到待测试的测试用例集,节省人力资源;还可准确查找出待测试的测试用例集,即准确确定测试范围,无需人员之间沟通,避免因沟通不及时出现误差或者根据个人主观上对相关性判断的误差导致测试点遗漏,具有更高的测试效率。
示例性地,操作S12的“数据库”可以是MySQL数据库。
示例性地,功能模块内容包括功能模块、包含功能模块的文件以及包含功能模块的文件夹。
需要说明的是,在操作S11之前可创建测试用例并维护在数据库表中,然后在数据库表中配置测试用例对应的功能模块以及包含对应功能模块的文件/文件夹。
结合图2、图4所示,根据本公开的实施例,测试执行框架包括jenkins,操作S202的根据测试执行框架构建测试触发项目可包括操作S21~操作S22:
在操作S21,利用jenkins构建与测试用例的适配的版本部署测试环境;
在操作S22,利用jenkins构建测试触发项目。
需要说明的是,jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件平台项目能够持续集成。在利用jenkins构建部署测试环境之前需要:
1)在本地电脑或者linux服务器上下载安装jenkins,下载完后将jenkins部署到tomcat上运行,放到tomcat的webapps目录下,然后通过浏览器访问。
2)安装插件以及在linux服务器装安装git、maven,创建一个jenkins目录,配置git的公钥到github上,以使得自动化部署前可实时从git远程仓库中拉取新的代码;安装maven的目的是通过项目中的pom.xml文件自动解决项目依赖问题,构建项目。
3)将linux服务器注册到jenkins上。
在创建自动化部署任务时,需要编写shell部署脚本,并放到linux服务器装的jenkins目录下;在jenkins上点击新建一个任务,填好任务名,填写运行的节点(将linux服务器注册到jenkins上时所建的节点);点击源码管理,填写github(或gitlab)地址;点击add,选择check out to a sub-directory,添加源码下载到jenkins目录下的指定目录;填写构建任务时的shell脚本,然后保存,点击立即构建完成自动构建。
在构建测试触发项目时:
1)准备一个测试脚本,使得版本构建完成后可执行该脚本;
2)创建一个触发构建的项目,选择自由软件风格即可;
3)源码管理选择git,然后只需在repository url中输入git仓库地址即可;
4)构建,选择execute shell,执行部署脚本即可;
5)触发器配置:即gitlab有提交操作,则自动部署,这里只需要设置一个认证的token即可。
6)在系统管理-用户管理-查看用户id和token,需要把用户id和API Token加入触发器中,做用户验证,根据触发器验证令牌和用户id+token会生成一个url,只要访问这个url地址jenkins就会自动部署对应项目的代码;
7)gitlab位置webhooks,每次提交代码就访问这个url,执行构建;
8)在jenkins全局安全设置中取消勾选“防止跨站点请求伪造”,否则jenkins会认为gitlab的请求不合法;
9)添加完成测试。
根据本公开实施例的技术方案,jenkins可在代码上传仓库(github、gitee、gitlab)后,中通过获取代码仓库中最新代码,进行自动化部署,而省去手工打包、上传服务器、部署等一系列的步骤;还可通过自动触发的方式实时追踪代码变动,减少测试人员的工作量,提高测试效率。尤其是,在版本迭代频繁的时候,自动追踪代码变动的方式可在第一时间进行测试,不会错过版本周期。
结合上文中提到的自动查找待测试的测试用例集,本公开实施例的软件测试方法能够兼顾版本周期和测试范围,自动选择待测试的测试用例以及执行测试用例,提高测试效率。
需要说明的是,除了利用jenkins进行构建测试触发项目,在代码更新时即可触发这种方式之外,还可通过jenkins构建定时触发项目,以在设定的时间触发;另外还可使用人工触发的方式。
还需要说明的是,除了使用jenkins之外,其他能够自动部署和构建触发项目的应用也可以使用。
如图5所示,测试执行框架还包括利用django框架实现的webservice,另一实施例的软件测试方法300还可包括操作S301~操作S302:
在操作S301,利用django框架实现的webservice驱动测试用例的执行;
在操作S302,利用django框架实现的web前端显示测试用例的执行状态。
需要说明的是,django是一个开放源代码的web应用框架,由python写成,django本身基于MVC模型,即Model(模型)+View(视图)+Controller(控制器)设计模式,具有强大的数据库功能和后台功能,还能够提供外部页面与开发、测试人员进行交互。Webservice是一种跨编程语言和跨操作系统平台的远程调用技术。
具体地,利用django框架实现的webservice驱动测试用例的执行可通过在jenkins中创建用于调用django接口的脚本,以及在django的后台编写接口实现,django本身能够提供外部页面(即web前端),还可根据需求进行页面展示内容的调整,因此django驱动测试用例执行后还可将测试用例的执行状态可视化显示在外部界面上,以使得测试人员能够得到测试用例执行状态的信息,合理安排测试。
本公开实施例的技术方案中,通过django可完成驱动测试用例执行、测试用例执行状态可视化等功能,简化测试过程,提高测试效率。
还需要说明的是,除了django之外,其他能够实现前后端交互、与数据库交互以及提供外部页面功能的web应用框架也可以。
结合图3、图6所示,根据本公开的实施例,操作S13的在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例可包括操作S131:
在操作S131,利用django查找与变动的功能模块内容具有映射关系的测试用例,或者
解析功能模块内容,获得具有代码变动的功能模块内容,在数据库中过滤与代码变动的功能模块内容具有映射关系的测试用例。
需要说明的是,django自身具有于数据库进行交互验证的功能,因此可直接用django在数据库中过滤数据,查找到与变动的功能模块具有映射关系的测试用例,还可以利用脚本解析功能模块内容,查找到代码变动的功能模块内容,进而在数据库中查找到与代码变动的功能模块具有映射关系的测试用例,查找到的测试用例即为待测试用例。
本公开实施例的技术方案中,可以通过两种方式可自动、准确查找待测试的测试用例,查找方式更加灵活。测试人员可选择其中一种方式。
结合图2、图7所示,根据本公开的实施例,测试执行框架还可包括lettuce,操作S203的测试执行框架自动执行测试用例集可包括操作S31:
在操作S31,利用lettuce自动执行测试用例集中的测试用例。
需要说明的是,lettuce是一种基于“行为驱动开发”思想的框架,对于项目的自动化测试,它可以执行纯文本的功能描述,运行测试人员用自然语言描述一个一个系统的行为。
具体地,利用lettuce自动执行测试用例集中的测试用例需要进行多轮以下过程:
1)根据定义的问题描述行为;
2)用python定义步骤;
3)执行并观察到失败;
4)编写代码使其通过;
6)再一次执行,并观察其通过;
本公开实施例的技术方案中,通过lettuce可自动执行测试用例,并且lettuce可供不同编程水平的人员使用,使用更加简单,具有更高的测试效率。
如图8所示,根据本公开的实施例,软件测试方法400还可包括操作S401~操作S402:
在操作S401,在开发阶段根据被定义的接口创建待测试的测试用例;
在操作S402,利用lettuce执行测试用例,以验证接口。
需要说明的是,在软件开发阶段,软件的各个功能是根据对应的功能模块实现的,功能模块需要定义接口,以完成数据交互等,例如,以实现“用户管理”这一功能的功能模块为例,该功能模块可能具有增加用户信息、维护用户信息以及删除用户信息的功能,以增加用户信息为例,需要定义一个相应的接口,并设定输入参数、名称、返回值,使得该接口能够将用户信息保存至数据库中,在测试阶段,还需要测试该接口是否正常,例如增加用户A时,利用该接口将用户A的信息保存至数据库中,需要确认数据库中是否有数据更新,还需要确认数据库中新增的用户A的数据是否与输入的用户A的数据一致。
因此,测试用例中会涉及各种接口的验证,一般地,测试用例是在软件开发完成后进行编写的,测试用例相比于软件开发是具有滞后性的。本公开实施例的技术方案中,在开发阶段,在开发人员定义接口(这里的接口是指与实现软件功能相关的接口,是开发的一部分,上文中提到的在django的后台编写接口是测试人员为利用django进行软件测试而添加的接口,两者并不相同)后,测试人员根据该接口创建待测试的测试用例,利用lettuce执行该测试用例,将测试阶段提前至与开发阶段同步,一定程度上消除测试阶段相对于开发阶段的滞后性,提高测试效率。
如图5所示,软件测试方法300还可包括操作S303~操作S305:
在操作S303,在测试用例集中包括多个测试用例时,划分测试用例集中的测试用例,形成多个测试任务;
在操作S304,利用django驱动测试任务的分发;
在操作S305,利用django显示各个测试任务。
在一些情况下,需要区分不同的测试任务,例如不同的测试用例的执行环境不同,则需要划分测试任务。本公开实施例中通过django驱动测试任务的分发具体也是通过后台编写的接口实现的,django的外部界面可将各个测试任务可视化展示给测试人员。
需要说明的是,测试任务可由测试人员划分,还可自动划分,具体地,可将测试用例保存在数据库中时,区分测试任务,django查找测试用例时可直接获得不同测试任务。
还需要说明的是,在jenkins部署完成后会生成测试计划,该测试计划是指需要进行软件测试,而这里的测试任务是指根据不同的情境,需要细分软件测试的进程和内容。
如图5所示,根据本公开的实施例,软件测试方法300还可包括操作S306:
在操作S306,利用django显示与测试用例相关的信息,其中,与测试用例相关的信息包括:执行测试用例的测试结果和/或执行测试用例后的测试报告。
上文中也说明了django能够提供外部页面,外部页面中除了可以显示测试任务、测试案例执行状态之外,还可显示其他的与测试用例相关的信息,例如执行测试用例的测试结果和/或执行测试用例后的测试报告,其中测试报告中可包括测试用例执行时的各项参数,便于测试人员了解测试用例执行的过程,如果出现问题,能够第一时间处理。
需要说明的是,本公开实施例的软件测试方法总体提供了一个jenkins+django+lettuce+数据库的测试框架,能够实现选择测试用例-执行测试用例-获得并显示测试结果的过程自动化,对于测试人员来说,可以充分利用时间,不受人员限制完成工作内容,例如开发人员即便在下班前将需要验证的代码提交,也不影响该测试框架利用晚上时间执行测试用例集,完全满足每日构建的需求。另外,多次重复性的测试工作可全部交由测试服务器自动完成,降低了测试人员重复性工作带来的不良情绪。
基于上述软件测试方法,本公开还提供了一种软件测试装置。以下将结合图9对该装置进行详细描述。
图9示意性示出了根据本公开实施例的软件测试装置的结构框图。
如图8所示,该实施例的软件测试装置500包括测试用例获取模块510、测试触发项目构建模块520、测试用例自动执行模块530和测试结果获得模块540。
测试用例获取模块510用于获取待测试的测试用例,形成测试用例集。在一实施例中,测试用例获取模块510可以用于执行前文描述的操作S201,在此不再赘述。
测试触发项目构建模块520用于根据测试执行框架构建测试触发项目。在一实施例中,测试触发项目构建模块520可以用于执行前文描述的操作S202,在此不再赘述。
测试用例自动执行模块530用于在测试触发项目被触发时,测试执行框架自动执行测试用例。在一实施例中,测试用例自动执行模块530可以用于执行前文描述的操作S203,在此不再赘述。
测试结果获得模块540用于获得并显示测试结果。在一实施例中,测试结果获得模块540可以用于执行前文描述的操作S204,在此不再赘述。
根据本公开的实施例,测试用例获取模块510、测试触发项目构建模块520、测试用例自动执行模块530和测试结果获得模块540中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,测试用例获取模块510、测试触发项目构建模块520、测试用例自动执行模块530和测试结果获得模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,测试用例获取模块510、测试触发项目构建模块520、测试用例自动执行模块530和测试结果获得模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图10示意性示出了根据本公开实施例的适于实现软件测试方法的电子设备的方框图。
如图10所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。电子设备600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的软件测试方法。
在该计算机程序被处理器601执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (8)
1.一种软件测试方法,其特征在于,包括:
获取待测试的测试用例,形成测试用例集;
根据测试执行框架构建测试触发项目;
在测试触发项目被触发时,测试执行框架自动执行测试用例集;
获得并显示测试结果,
其中,所述获取待测试的测试用例,形成测试用例集包括:
构建测试用例与功能模块内容的映射关系,其中,功能模块内容至少包括功能模块、包含所述功能模块的文件、包含所述功能模块的文件夹三者中的一者;
保存测试用例与功能模块内容的映射关系至数据库中;
在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例,形成待测试的测试用例集,
所述测试执行框架包括jenkins,所述根据测试执行框架构建测试触发项目包括:
利用jenkins构建与测试用例的适配的版本部署测试环境;
利用jenkins构建测试触发项目,
所述测试执行框架还包括利用django框架实现的webservice,所述软件测试方法还包括:
利用django框架实现的webservice驱动测试用例的执行;
利用django框架实现的web前端显示测试用例的执行状态,
所述测试执行框架还包括lettuce,所述测试执行框架自动执行测试用例集包括:
利用lettuce自动执行测试用例集中的测试用例。
2.根据权利要求1所述的软件测试方法,其特征在于,所述在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例包括:
利用django查找与变动的功能模块内容具有映射关系的测试用例,或者
解析功能模块内容,获得具有代码变动的功能模块内容,在数据库中过滤与代码变动的功能模块内容具有映射关系的测试用例。
3.根据权利要求1所述的软件测试方法,其特征在于,还包括:
在开发阶段根据被定义的接口创建待测试的测试用例;
利用lettuce执行测试用例,以验证接口。
4.根据权利要求1所述的软件测试方法,其特征在于,还包括:
在所述测试用例集中包括多个测试用例时,划分所述测试用例集中的测试用例,形成多个测试任务;
利用django驱动测试任务的分发;
利用django显示各个测试任务。
5.根据权利要求1所述的软件测试方法,其特征在于,还包括:
利用django显示与所述测试用例相关的信息,其中,与测试用例相关的信息包括:执行测试用例的测试结果和/或执行测试用例后的测试报告。
6.一种软件测试装置,包括:
测试用例获取模块,用于获取待测试的测试用例,形成测试用例集;
测试触发项目构建模块,用于根据测试执行框架构建测试触发项目;
测试用例自动执行模块,用于在测试触发项目被触发时,测试执行框架自动执行测试用例;
测试结果获得模块,用于获得并显示测试结果,
其中,所述获取待测试的测试用例,形成测试用例集包括:
构建测试用例与功能模块内容的映射关系,其中,功能模块内容至少包括功能模块、包含所述功能模块的文件、包含所述功能模块的文件夹三者中的一者;
保存测试用例与功能模块内容的映射关系至数据库中;
在某一功能模块内容变动时,查找所有与其具有映射关系的测试用例,形成待测试的测试用例集。
所述测试执行框架包括jenkins,所述根据测试执行框架构建测试触发项目包括:
利用jenkins构建与测试用例的适配的版本部署测试环境;
利用jenkins构建测试触发项目,
所述测试执行框架还包括利用django框架实现的webservice,所述软件测试方法还包括:
利用django框架实现的webservice驱动测试用例的执行;
利用django框架实现的web前端显示测试用例的执行状态,
所述测试执行框架还包括lettuce,所述测试执行框架自动执行测试用例集包括:
利用lettuce自动执行测试用例集中的测试用例。
7.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110822307.XA CN113535567B (zh) | 2021-07-21 | 2021-07-21 | 软件测试方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110822307.XA CN113535567B (zh) | 2021-07-21 | 2021-07-21 | 软件测试方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535567A CN113535567A (zh) | 2021-10-22 |
CN113535567B true CN113535567B (zh) | 2023-02-24 |
Family
ID=78100607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110822307.XA Active CN113535567B (zh) | 2021-07-21 | 2021-07-21 | 软件测试方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535567B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114218076A (zh) * | 2021-12-01 | 2022-03-22 | 浙江中控技术股份有限公司 | 一种基于Smartauto的快速迭代的软件测试方法及系统 |
CN114706790B (zh) * | 2022-05-12 | 2022-09-13 | 中国科学院自动化研究所 | 一种自动化软件测试方法、装置及设备 |
CN115174383B (zh) * | 2022-05-30 | 2024-03-22 | 青岛海尔科技有限公司 | 设备更新方法、存储介质及电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786696A (zh) * | 2014-12-26 | 2016-07-20 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN106776290A (zh) * | 2016-11-28 | 2017-05-31 | 北京铭铭鑫软件有限公司 | 一种增量学习的智能持续集成测试方法 |
CN106991035A (zh) * | 2017-04-06 | 2017-07-28 | 北京计算机技术及应用研究所 | 一种基于微服务架构的主机监控系统 |
CN108415820A (zh) * | 2017-02-09 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 应用安装包的测试方法和装置 |
CN109032941A (zh) * | 2018-07-20 | 2018-12-18 | 郑州云海信息技术有限公司 | 测试用例驱动的可持续集成接口自动化测试方法及系统 |
CN111026635A (zh) * | 2019-09-27 | 2020-04-17 | 珠海随变科技有限公司 | 一种软件项目的测试系统、方法、装置及存储介质 |
CN111198811A (zh) * | 2018-11-19 | 2020-05-26 | 中移(苏州)软件技术有限公司 | 一种页面自动化测试的方法、装置、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3064771A1 (en) * | 2017-06-01 | 2018-12-06 | Royal Bank Of Canada | System and method for test generation |
US10783065B2 (en) * | 2018-03-23 | 2020-09-22 | Sungard Availability Services, Lp | Unified test automation system |
CN110716852B (zh) * | 2018-07-12 | 2023-06-23 | 伊姆西Ip控股有限责任公司 | 用于生成自动化测试脚本的系统、方法和介质 |
US11436128B2 (en) * | 2018-10-09 | 2022-09-06 | Charter Communications Operating, Llc | System and computer implemented method for generating test scripts |
CN113127335B (zh) * | 2020-01-16 | 2024-07-16 | 北京京东振世信息技术有限公司 | 一种系统测试的方法和装置 |
CN111881024A (zh) * | 2020-07-13 | 2020-11-03 | 广联达科技股份有限公司 | 一种接口测试脚本的确定方法、装置、设备及存储介质 |
-
2021
- 2021-07-21 CN CN202110822307.XA patent/CN113535567B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786696A (zh) * | 2014-12-26 | 2016-07-20 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN106776290A (zh) * | 2016-11-28 | 2017-05-31 | 北京铭铭鑫软件有限公司 | 一种增量学习的智能持续集成测试方法 |
CN108415820A (zh) * | 2017-02-09 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 应用安装包的测试方法和装置 |
CN106991035A (zh) * | 2017-04-06 | 2017-07-28 | 北京计算机技术及应用研究所 | 一种基于微服务架构的主机监控系统 |
CN109032941A (zh) * | 2018-07-20 | 2018-12-18 | 郑州云海信息技术有限公司 | 测试用例驱动的可持续集成接口自动化测试方法及系统 |
CN111198811A (zh) * | 2018-11-19 | 2020-05-26 | 中移(苏州)软件技术有限公司 | 一种页面自动化测试的方法、装置、电子设备及存储介质 |
CN111026635A (zh) * | 2019-09-27 | 2020-04-17 | 珠海随变科技有限公司 | 一种软件项目的测试系统、方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
Lettuce(基于Python的BDD工具,中文编写自动化测试用例);小冯先生;《CSDN博客》;20200109;全文 * |
基于Django的程序测试;安然_随心;《CSDN博客》;20190118;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113535567A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN113535567B (zh) | 软件测试方法、装置、设备和介质 | |
AU2017258963B2 (en) | Simultaneous multi-platform testing | |
US8984489B2 (en) | Quality on submit process | |
US9417992B2 (en) | Web portal API test report generation | |
CN108958992A (zh) | 测试方法和装置 | |
US10606586B2 (en) | Application architecture generation | |
US10152405B2 (en) | Application testing system and method | |
US20160077955A1 (en) | Regression testing of responsive user interfaces | |
CN113032257A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN114168471A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN115982491A (zh) | 页面更新方法及装置、电子设备和计算机可读存储介质 | |
CN113986679A (zh) | 基于配置信息热加载的性能分析方法及装置 | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN113805877A (zh) | 基于idea插件的项目工程的构建方法及装置 | |
CN113835691A (zh) | 一种iOS应用开发方法、系统、设备、介质和程序产品 | |
CN113495498A (zh) | 用于硬件设备的模拟方法、模拟器、设备和介质 | |
CN113032256A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN116756016A (zh) | 多浏览器测试方法、装置、设备、介质及程序产品 | |
CN111930629A (zh) | 页面测试方法、装置、电子设备及存储介质 | |
CN111625291A (zh) | 数据处理模型自动迭代方法、装置及电子设备 | |
US20160132424A1 (en) | Simulating sensors | |
Silva | Quality Assurance Framework for Low-Code Development Platforms | |
CN112765040B (zh) | 页面测试方法、系统、计算机设备和存储介质 | |
CN113806229A (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 |