CN108491331B - 软件测试方法、装置、设备和计算机存储介质 - Google Patents
软件测试方法、装置、设备和计算机存储介质 Download PDFInfo
- Publication number
- CN108491331B CN108491331B CN201810337548.3A CN201810337548A CN108491331B CN 108491331 B CN108491331 B CN 108491331B CN 201810337548 A CN201810337548 A CN 201810337548A CN 108491331 B CN108491331 B CN 108491331B
- Authority
- CN
- China
- Prior art keywords
- code
- difference
- test
- preset
- information
- 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
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
技术领域
本发明涉及计算机技术领域,尤其涉及软件测试方法、装置、设备和计算机存储介质。
背景技术
受到用户需求变化和软件本身的性质影响,软件都时具有生命周期的,软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码开发、调试和测试、验收与运行、维护升级到废弃等阶段。
在软件的生命周期中需要对软件代码进行更新和测试,软件更新是由开发人员优化产品代码,再由软件测试人员对优化完成的代码进行测试,在软件测试完成后进行产品新版本的上架,由于测试人员并不了解软件中哪些代码进行了更新,也不知道更新的代码会对软件有什么影响,因而测试人员需要对全部的代码进行测试,导致测试效率较低。如何能提高测试效率为了目前亟待解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种软件测试方法、装置、设备和计算机存储介质,旨在减少代码的测试范围,提高代码测试效率。
为实现上述目的,本发明提供一种软件测试方法,所述软件测试方法包括以下步骤:
接收代码测试请求,获取所述代码测试请求中包含的版本信息和待测试代码;
获取预设代码库中与所述版本信息对应的初始代码,并将所述初始代码替换为所述待测试代码;
将所述待测试代码与所述初始代码按预设动态规划算法进行比对,得到差异代码及其对应差异位置,并将所述差异代码及所述差异位置作为差异信息;
根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码;
渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端。
可选地,所述根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码的步骤包括:
获取所述差异信息中的差异代码及其对应差异位置,将所述差异代码与预设差异表格进行遍历,确定差异类型;
获取预设标记集合中与所述差异类型对应的嵌套代码,将所述嵌套代码作为所述差异类型对应的差异标记信息;
将所述嵌套代码嵌套至所述差异代码对应差异位置,形成当前代码。
可选地,所述渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端的步骤包括:
获取所述当前代码中的待测试代码和差异标记信息,按照所述待测试代码进行一次渲染生成基准页面;
在所述基准页面上按所述差异标记信息进行二次渲染,生成具有所述差异标识的测试页面,并将所述测试页面发送至测试终端。
可选地,所述根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码的步骤之后,还包括:
获取当前代码与初始代码,将当前代码与初始代码转化预设超级文本标记语言格式,并分别解析超级文本标记语言格式的所述当前代码与所述初始代码,以对应生成当前文档对象模型和初始文档对象模型;
遍历所述当前文档对象模型和所述初始文档对象模型,获取所述当前文档对象模型和所述初始文档对象模型上元素的样式及文本内容,形成JS对象标记;
通过所述JS对象标记渲染出可视化的差异对比视图,并将所述差异对比视图发送至测试终端。
可选地,所述渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端的步骤之后,包括:
接收所述测试终端上传的测试日志,获取所述测试日志中包含的逻辑测试结果和性能测试结果;
将所述逻辑测试结果与预设标准逻辑进行比对,将所述性能测试结果与预设性能参数进行比对;
若逻辑测试结果与预设标准逻辑相同且性能测试结果与预设性能参数相同,则判定当前代码测试通过,并删除当前代码中的差异标记信息,以将当前代码还原成待测试代码;
将所述待测试代码进行页面渲染,生成更新界面,以完成版本更新。
可选地,所述将所述逻辑测试结果与预设标准逻辑进行比对,将所述性能测试结果与预设性能参数进行比对的步骤之后,包括:
若逻辑测试结果与预设标准逻辑不同,则判定当前代码测试不通过,将初始代码进行回滚,并生成提示信息,以提示代码开发人员进行代码的重新开发;
若逻辑测试结果与预设标准逻辑相符,性能测试结果与预设性能参数不同,则生成提示信息,以提示代码开发人员根据预设优化目标进行代码优化。
可选地,所述将所述待测试代码进行页面渲染,生成更新界面,以完成版本更新的步骤之后,包括:
当检测到版本更新完成时,生成版本更新的提示信息,并将所述提示信息发送至预设终端;
接收版本更新请求,获取所述版本更新请求包含的版本标识,获取所述版本标识对应的待测试代码,并将待测试代码发送至预设终端;
接收预设终端在版本更新后的反馈信息,以使测试人员根据所述反馈信息进行代码二次测试。
此外,为实现上述目的,本发明还提供一种软件测试装置;
所述软件测试装置包括:
接收获取模块,用于接收代码测试请求,获取所述代码测试请求中包含的版本信息和待测试代码;
获取替换模块,用于获取预设代码库中与所述版本信息对应的初始代码,并将所述初始代码替换为所述待测试代码;
比对确定模块,用于将所述待测试代码与所述初始代码按预设动态规划算法进行比对,得到差异代码及其对应差异位置,并将所述差异代码及所述差异位置作为差异信息;
差异标记模块,用于根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码;
渲染发送模块,用于渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端。
此外,为实现上述目的,本发明还提供一种软件测试设备,所述软件测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件测试程序,其中:
所述软件测试程序被所述处理器执行时实现如上述的软件测试方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质;
所述计算机存储介质上存储有软件测试程序,所述软件测试程序被处理器执行时实现如上述的软件测试方法的步骤。
本发明实施例提出的一种软件测试方法、装置、设备和计算机存储介质,通过在服务器上触发代码测试请求,服务器接收代码测试请求,获取代码测试请求中包含的版本信息和待测试代码;获取预设代码库版本信息对应的初始代码,并将初始代码替换为待测试代码;将待测试代码与初始代码进行比对,确定差异代码及其对应差异位置,根据差异代码及其对应差异位置确定差异类型,以根据差异类型选取差异标记信息,将差异标记信息与待测试代码结合,形成当前代码;渲染当前代码生成具有差异标识的测试页面,并将测试页面发送至测试终端,以供测试人员进行测试页面的测试;测试人员根据差异标识进行测试页面的测试,即测试人员确定重点测试对象,并围绕测试对象进行测试,提高了测试的效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;
图2为本发明软件测试方法第一实施例的流程示意图;
图3为图2中软件测试方法的步骤S14的细化流程示意图;
图4为图2中软件测试方法的步骤S15的细化流程示意图;
图5为本发明软件测试方法第二实施例的流程示意图;
图6为本发明软件测试方法第三实施例的流程示意图;
图7为本发明软件测试方法第四实施例的流程示意图;
图8为本发明软件测试装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由于现有的软件测试人员与软件开发人员是由不同的人员进行的,软件开发人员将开放的软件发送至软件测试人员,由软件测试人员进行针对性的软件测试,由于软件测试人员并不是对代码进行查看测试,而是围绕代码生成的页面进行测试,即,测试人员是在模拟用户操作,以防止用户操过程中出错,在软件版本更新时,测试人员需要针对全部的页面进行测试,这样可能导致测试员的测试量比较大,测试人员并不能对待测试代码进行针对性的软件测试,导致测试效率低,需要的测试人员较多,浪费人力物力资源。
本发明实施例的主要解决方案是:将更新的代码进行比对,确定差异信息(差异信息包括差异代码及其差异代码的位置信息),并根据差异信息在待测试代码上进行差异标记,服务器根据差异信息确定差异类型,并选取预设标记集合中符合差异类型的差异标记信息,将差异标记信息与待测试代码结合,形成当前代码,服务器将当前代码进行渲染生成具有差异标识的测试页面,并将具有差异标识的测试页面发生至测试终端,使得测试人员可以根据测试页面进行重点测试,同时避免了待测试代码测试遗漏的问题,最终达到了提高测试效率的目的。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的服务器(又叫软件测试设备,其中,软件测试设备可以是由单独的软件测试装置构成,也可以是由不同的装置与软件测试装置组合形成)结构示意图。
本发明实施例服务器指一个管理资源并为用户提供服务的计算机,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器,服务器在稳定性、安全性、性能等方面都要求较高;如图1所示,该服务器可以包括:处理器1001(例如中央处理器Central Processing Unit,CPU),网络接口1004,用户接口1003,存储器1005,通信总线1002、芯片组、磁盘系统、网络等硬件等。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真WIreless-FIdelity,WIFI接口)。存储器1005可以是高速随机存取存储器(random access memory,RAM),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
如图1所示,该计算机软件产品存储在一个存储介质(存储介质:又叫计算机存储介质、计算机介质、可读介质、可读存储介质、计算机可读存储介质或者直接叫介质等,如RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及软件测试应用程序。
在图1所示的服务器中,网络接口1004主要用于连接后台数据库,与后台数据库进行数据通信;用户接口1003主要用于连接客户端(客户端,又叫用户端或终端,本发明实施例终端可以固定终端,也可以是移动终端,其中,固定终端如“物联网设备”、带联网功能的智能空调、智能电灯、智能电源等等;与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的软件测试应用程序,并执行本发明以下实施例提供的软件测试方法中的步骤。
参照图2,本发明软件测试方法的第一实施例中,所述软件测试方法包括:
步骤S11,接收代码测试请求,获取所述代码测试请求中包含的版本信息和待测试代码。
开发人员在预设代码库(预设代码库是指预先设置的代码存放调用的存储空间,与数据库类似)上传待测试代码时,触发代码测试请求;或者是测试人员在软件测试时,手动触发代码测试请求,其中,触发更新请求的形式不作限定,可以是手动触发也可以是自动触发,服务器接收代码测试请求,并获取代码测试请求中包含的版本信息和待测试代码,其中,版本信息包括软件名称,软件初始版本序列和更新对应的更新版本序列。
需要补充说明的是,本发明中针对的待测试代码主要是版本更新的代码的测试,因为版本更新的代码中包含有较多相似的代码,但是本发明还可以应用在其他的具体测试场景中。
步骤S12,获取预设代码库中与所述版本信息对应的初始代码,并将所述初始代码替换为所述待测试代码。
服务器接收版本信息,确定软件名称和软件初始版本序列,服务器获取预设代码库中软件名称和软件初始版本序列对应的软件代码,并将软件名称和软件初始版本序列对应的软件代码作为初始代码,服务器将初始代码进行下架,并将待测试代码上架,实现待测试代码与初始代码的替换。
步骤S13,将所述待测试代码与所述初始代码按预设动态规划算法进行比对,得到差异代码及其对应差异位置,并将所述差异代码及所述差异位置作为差异信息。
服务器将初始代码与待测试代码替换完成后,生成提示信息,服务器根据提示信息后确定代码更新完成,服务器调用预置的代码比对工具,其中,预置的代码比对工具是预先设置的代码比对的比对逻辑,可以将代码进行比对,在本实施例中代码比对工具将待测试代码与初始代码进行比对,确定待测试代码与初始代码的差异,需要补充说明的是本实施例中并不对初始代码和待测试代码的比对方式进行限定,服务器可以采用传统一一比对的方式,还可以划分区域批量数据比对。
具体地,本实施例中具体给出一种代码比对的实现方式:
服务器待测试代码与初始代码按预设动态规划算法进行比对(预设动态算法是指动态规划思想设置的方法,例如,服务器将初始代码与当前代码两段文字之间,由文字A转变成文字B所需的最少编辑次数。依据动态规划思想,定义允许的编辑次数包括增、删、改,即在特定文字增加文字,删除特定位置的文字,替换特定位置的文字所设置的算法),即,服务器将待测试代码和初始代码进行分块;服务器将分块完成的待测试代码和初始代码进行比对,得到差异代码,进一步地,服务器确定差异代码的位置,将差异代码及其对应差异位置作为差异信息。
本实施例中采用动态规划算法,提高代码的比对效率,即,服务器接收到待测试代码就可以快速地将待测试代码与初始代码进行比对,使得代码的监控比对更加及时高效。
步骤S14,根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码。
服务器根据差异信息确定差异类型,并选取预设标记集合中符合差异类型的差异标记信息,即,服务器将待测试代码和初始代码进行比对,以初始代码作为基准,确定待测试代码是进行了代码增加、代码删除或者是代码更换;若待测试代码与初始代码相比是增加了部分代码,则将增加的部分添加增加标记信息;若待测试代码与初始代码相比是删除了部分代码,则将删除的部分代码添加删除标记信息;若待测试代码与初始代码相比是替换了部分代码,则将替换的部分代码添加替换标记信息;服务器将添加差异标记信息的待测试代码作为当前代码,以根据当前代码渲染出具有标识的页面。
具体地,参照图3,步骤S14包括:
步骤S141,获取所述差异信息中的差异代码及其对应差异位置,将所述差异代码与预设差异表格进行遍历,确定差异类型。
服务器获取差异信息中的差异代码及其对应差异位置,服务器将差异代码及其对应差异位置与预设差异表格进行遍历,其中,预设差异表格是指预先定义的差异分类表,服务器将差异代码及其对应差异位置与预设差异表格进行比对,确定差异的类型。
步骤S142,获取预设标记集合中与所述差异类型对应的嵌套代码,将所述嵌套代码作为所述差异类型对应的差异标记信息。
服务器将差异类型与预设标记集合中的嵌套代码进行比对,其中,嵌套代码是指预设格式的语句,也是,步骤S14中的差异标记信息,若差异类型与预设标记集合中的嵌套代码匹配,则嵌套代码符合差异类型,并将嵌套代码作为差异类型对应的差异标记信息,若差异类型与预设标记集合中的嵌套代码不匹配,则嵌套代码不符合差异类型;服务器获取预设标记集合中符合差异类型的嵌套代码,将嵌套代码作为差异类型对应的差异标记信息。
例如,服务器将差异的代码上嵌套预设格式的语句,即,服务器比对出当前代码是的更新是代码的增加、删除、变更或者其他,服务器根据变更的类型选取预设的嵌套代码,例如,增加的嵌套代码为“<div style”background:yellow:>”,删除的嵌套代码为“<divstyle”background:blue:>”变更的嵌套代码为“<div style”background:red:>。
步骤S143,将所述嵌套代码嵌套至所述差异代码对应差异位置,形成当前代码。
服务器将嵌套代码嵌套至差异代码对应位置,形成当前代码,即,服务器将预设格式的语句嵌套在差异代码对应位置处,形成包含差异标记信息的待测试代码,并将包含差异标记信息的待测试代码作为当前代码。
本实施例中将差异的代码嵌套代码,使得待测试代码上增加差异标记信息,以使服务器根据待测试代码上差异标记信息渲染生成具有差异标识的页面,使得测试人员根据差异标识进行快速的测试。
步骤S15,渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端。
服务器渲染当前代码生成具有差异标识的测试页面,服务器将测试页面发送至测试终端,以供测试人员进行测试页面的测试。例如,待测试代码中,嵌套代码为“<divstyle”background:yellow:>”,则服务器根据嵌套代码生成的界面上变化会变成黄色背景;服务器嵌套代码为“<div style”background:blue:>”;则服务器根据嵌套代码生成的界面上变化会变成蓝色背景;服务器嵌套代码为“<div style”background:red:>,则服务器根据嵌套代码生成的界面上变化会变成红色背景。
具体地,参照图4,步骤S15包括:
步骤S151,获取所述当前代码中的待测试代码和差异标记信息,按照所述待测试代码进行一次渲染生成基准页面。
服务器获取当前代码中的待测试代码和差异标记信息,服务器按照待测试代码进行一次渲染生成基准页面,即,本实施例中可以是理解为多次渲染,即,首先,服务器按照待测试代码进行一次渲染生成基准页面,以按照差异标记信息进行二次渲染生成具有差异标识的测试页面。
步骤S152,在所述基准页面上按所述差异标记信息进行二次渲染,生成具有所述差异标识的测试页面,并将所述测试页面发送至测试终端。
服务器在基准页面上按差异标记信息进行二次渲染,生成具有差异标识的测试页面,并将测试页面发送至测试终端,以供测试人员进行测试页面的测试。
在本实施例中通过代码比对可以确定变化的代码信息,并将变化的代码信息上添加差异标记信息,以生成差异标记信息对应的包含差异标识的页面,使得测试人员根据差异标识进行测试页面的测试,即,测试人员可以围绕测试页面确定重点测试对象,并围绕测试对象进行测试,最终提高软件测试的效率。
参照图5,在本发明第一实施例的基础上,进一步提出了本发明软件测试方法的第二实施例,与本发明第一实施例的区别在于本实施例中将待测试代码与初始代码生成差异对比视图,使得测试人员可以基于差异对比视图进行代码测试。
所述软件测试方法包括:
步骤S21,获取当前代码与初始代码,将当前代码与初始代码转化预设超级文本标记语言格式,并分别解析超级文本标记语言格式的所述当前代码与所述初始代码,以对应生成当前文档对象模型和初始文档对象模型。
服务器获取当前代码与初始代码,将当前代码与初始代码转化预设超级文本标记语言格式,预设超级文本标记语言格式是指:预设HTML格式(HyperText Markup Language,超级文本标记语言)并分别解析HTML格式的当前代码与初始代码,以对应生成当前文档对象模型和初始文档对象模型,其中,文档对象模型是指DOM树(Document Object Model,文档对象模型),即,在本实施例中服务器根据当前代码的差异标记信息,生成的当前dom树上具有差异标识。
步骤S22,遍历所述当前文档对象模型和所述初始文档对象模型,获取所述当前文档对象模型和所述初始文档对象模型上元素的样式及文本内容,形成JS对象标记。
服务器遍历当前dom树和初始dom树,并获取当前dom树和初始dom树上元素的样式及文本内容,形成JS对象标记,其中JS对象标记是指JSON对象(JavaScript ObjectNotation,JS对象标记),即,服务器将具有差异标识的当前dom树与初始dom树上的元素的样式和文本内容进行解析,以生成JSON对象。
步骤S23,通过所述JS对象标记渲染出可视化的差异对比视图,并将所述差异对比视图发送至测试终端。
服务器通过JSON对象渲染出可视化的差异对比视图,服务器将差异对比视图发送至测试终端,以供测试人员进行测试。
在本实施例中提供了区别与第一实施例中的差异化显示方案,使得测试人员可以根据差异对比视图,进行对比查看,测试人员可以围绕差异对比视图确定重点测试对象,并围绕测试对象进行测试,最终提高软件测试的效率。
进一步的,参照图6,本发明软件测试方法的第三实施例中,服务器将测试页面发送至测试终端,测试终端根据测试页面进行测试,并将测试日志上传至服务器,以服务器得到软件测试结果,并进行软件的更新。
本实施例可以与本发明的第一实施例结合,还可以与本发明的第二实施例结合,即,图6中的操作步骤既可以是第一实施例中步骤S15的后续步骤,还可以是第二实施例中步骤S23的后续步骤。
所述软件测试方法包括:
步骤S31,接收测试终端上传的测试日志,获取测试日志中包含的逻辑测试结果和性能测试结果。
服务器接收测试终端上传的测试日志,获取测试日志中包含的逻辑测试结果和性能测试结果,其中,逻辑测试结果是指在页面上是否可以进行正常的页面跳转,数据统计计算;性能测试结果是指代码运行过程中对CPU的占用率的影响,对网络资源的消耗等。
步骤S32,将逻辑测试结果与预设标准逻辑进行比对,将性能测试结果与预设性能参数进行比对。
服务器将逻辑测试结果与预设标准逻辑进行比对,其中,预设标准逻辑是指预先设置的代码正常调用的逻辑关系,即,服务器判断逻辑测试结果与预设标准逻辑是否相符;服务器将性能测试结果与预设性能参数进行比对,其中,预设性能参数是预先设置的软件运行时的性能参数,即,服务器判断性能测试结果与预设性能参数是否相符。
步骤S33,若逻辑测试结果与预设标准逻辑相同且性能测试结果与预设性能参数相同,则判定当前代码测试通过,并删除当前代码中的差异标记信息,以将当前代码还原成待测试代码。
若逻辑测试结果与预设标准逻辑相符且性能测试结果与预设性能参数相符,即,服务器确定软件测试过程中代码的运行正常运行,且对代码运行时没有过度消耗终端的性能。则服务器判定当前代码测试通过,服务器确定测试通过时,服务器删除当前代码中的差异标记信息,以将当前代码还原成待测试代码。
步骤S34,将所述待测试代码进行页面渲染,生成更新界面,以完成版本更新。
服务器将待测试代码进行页面渲染,生成更新界面,即,服务器将待测试代码设置为HTML格式,服务器将HTML解析成一个DOM树,DOM树的构建过程是一个深度遍历过程:当前节点的所有子节点都构建好后才会去构建当前节点的下一个兄弟节点;将CSS(层叠样式表(Cascading Style Sheets))解析成CSS Rule Tree(CSS规则树)。服务器根据DOM树和CSSOM(Cascading Style Sheets Object Model层叠样式模型)来构造Rendering Tree(渲染树)。浏览器通过Render Tree确定网页中有哪些节点、各个节点的CSS定义以及从属关系。并计算出每个节点在屏幕中的位置;服务器遍历渲染树,并使用UI(用户界面)后端层绘制每个节点,最终以完成版本更新。
步骤S35,若逻辑测试结果与预设标准逻辑不同,则判定当前代码测试不通过,将初始代码进行回滚,并生成提示信息,以提示代码开发人员进行代码的重新开发。
若逻辑测试结果与预设标准逻辑不符,则服务器判定当前代码测试不通过,服务器将初始代码进行回滚,即,服务器确定待测试代码测试不通过,即,待测试代码中存在逻辑错误,服务器生成逻辑错误提示信息,以提示代码开发人员进行代码的重新开发。
步骤S36,若逻辑测试结果与预设标准逻辑相符,性能测试结果与预设性能参数不同,则生成提示信息,以提示代码开发人员根据预设优化目标进行代码优化。
若逻辑测试结果与预设标准逻辑相符,性能测试结果与预设性能参数不符,即,服务器判定待测试代码中并不存在逻辑错误,但是待测试代码运行时对终端性能有较大影响,则服务器生成提示信息,以提示代码开发人员根据预设优化目标进行代码优化。
在本实施例中服务器接收测试终端基于待测试代码的测试日志,并基于测试日志确定是否测试通过,并进行对应的版本更新,最终加快代码测试更新的流程。
进一步的,参照图7,本发明软件测试方法的第四实施例中,本实施例旨在第三实施例的基础上提出的,即图7中步骤S41是在第三实例之后的步骤,图7中省略了其他的步骤,所述软件测试方法包括:
步骤S41,当检测到版本更新完成时,生成版本更新的提示信息,并将所述提示信息发送至预设终端。
在代码更新完成时,将生成更新完成的提示信息,服务器接收到更新完成的提示信息,则检测到代码更新完成,服务器生成版本更新的提示信息并发送至预设终端,预设终端是服务器预先选取的抽样终端。
步骤S42,接收版本更新请求,获取所述版本更新请求包含的版本标识,获取所述版本标识对应的待测试代码,并将待测试代码发送至预设终端。
预设终端接收提示信息,并基于提示信息触发版本更新请求,服务器接收版本更新请求,获取版本更新请求包含的版本标识,其中,版本标识是指版本序列还,获取版本标识对应的待测试代码,并发送至预设终端。
步骤S43,接收预设终端在版本更新后的反馈信息,以使测试人员根据所述反馈信息进行代码二次测试。
服务器接收预设终端基于更新版本的反馈信息,即,服务器实时地检测获取预设终端基于更新版本的使用信息,以使测试人员根据反馈信息进行代码测试。
在本实施例中提供了基于待测试软件的小范围试用的方法,避免由于测试的不全面导致的代码出现问题,使得用户体验更好。
此外,参照图8,本发明实施例还提出软件测试装置,所述软件测试装置包括:
接收获取模块10,用于接收代码测试请求,获取所述代码测试请求中包含的版本信息和待测试代码;
获取替换模块20,用于获取预设代码库中与所述版本信息对应的初始代码,并将所述初始代码替换为所述待测试代码;
比对确定模块30,用于将所述待测试代码与所述初始代码按预设动态规划算法进行比对,得到差异代码及其对应差异位置,并将所述差异代码及所述差异位置作为差异信息;
差异标记模块40,用于根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码;
渲染发送模块50,用于渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端。
进一步地,所述差异标记模块40,包括:
获取遍历单元,用于获取所述差异信息中的差异代码及其对应差异位置,将所述差异代码与预设差异表格进行遍历,确定差异类型;
嵌套标记单元,用于获取预设标记集合中与所述差异类型对应的嵌套代码,将所述嵌套代码作为所述差异类型对应的差异标记信息;
嵌套形成单元,用于将所述嵌套代码嵌套至所述差异代码对应差异位置,形成当前代码。
进一步地,所述渲染发送模块50包括:
一次渲染单元,用于获取所述当前代码中的待测试代码和差异标记信息,按照所述待测试代码进行一次渲染生成基准页面;
二次渲染单元,用于在所述基准页面上按所述差异标记信息进行二次渲染,生成具有所述差异标识的测试页面,并将所述测试页面发送至测试终端。
进一步地,所述软件测试装置,还包括:
模型生成模块,用于获取当前代码与初始代码,将当前代码与初始代码转化预设超级文本标记语言格式,并分别解析超级文本标记语言格式的所述当前代码与所述初始代码,以对应生成当前文档对象模型和初始文档对象模型;
变量获取模块,用于遍历所述当前文档对象模型和所述初始文档对象模型,获取所述当前文档对象模型和所述初始文档对象模型上元素的样式及文本内容,形成JS对象标记;
差异视图模块,用于通过所述JS对象标记渲染出可视化的差异对比视图,并将所述差异对比视图发送至测试终端。
进一步地,所述软件测试装置,还包括:
接收获取模块,用于接收所述测试终端上传的测试日志,获取所述测试日志中包含的逻辑测试结果和性能测试结果;
比对模块,用于将所述逻辑测试结果与预设标准逻辑进行比对,将所述性能测试结果与预设性能参数进行比对;
测试还原模块,用于若逻辑测试结果与预设标准逻辑相同且性能测试结果与预设性能参数相同,则判定当前代码测试通过,并删除当前代码中的差异标记信息,以将当前代码还原成待测试代码;
渲染更新模块,用于将所述待测试代码进行页面渲染,生成更新界面,以完成版本更新。
进一步地,所述软件测试装置,还包括:
回滚提示模块,用于若逻辑测试结果与预设标准逻辑不同,则判定当前代码测试不通过,将初始代码进行回滚,并生成提示信息,以提示代码开发人员进行代码的重新开发;
提示优化模块,用于若逻辑测试结果与预设标准逻辑相符,性能测试结果与预设性能参数不同,则生成提示信息,以提示代码开发人员根据预设优化目标进行代码优化。
进一步地,所述软件测试装置,还包括:
更新提示模块,用于当检测到版本更新完成时,生成版本更新的提示信息,并将所述提示信息发送至预设终端;
接收获取模块,用于接收版本更新请求,获取所述版本更新请求包含的版本标识,获取所述版本标识对应的待测试代码,并将待测试代码发送至预设终端;
接收模块,用于接收预设终端在版本更新后的反馈信息,以使测试人员根据所述反馈信息进行代码二次测试。
其中,软件测试装置的各个功能模块实现的步骤可参照本发明软件测试方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机存储介质。
所述计算机存储介质上存储有软件测试程序,所述软件测试程序被处理器执行时实现上述实施例提供的软件测试方法中的操作。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种软件测试方法,其特征在于,所述软件测试方法包括以下步骤:
接收代码测试请求,获取所述代码测试请求中包含的版本信息和待测试代码;
获取预设代码库中与所述版本信息对应的初始代码,并将所述初始代码替换为所述待测试代码;
将所述待测试代码与所述初始代码按预设动态规划算法进行比对,得到差异代码及其对应差异位置,并将所述差异代码及所述差异位置作为差异信息;
根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码;
渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端。
2.如权利要求1所述的软件测试方法,其特征在于,所述根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码的步骤包括:
获取所述差异信息中的差异代码及其对应差异位置,将所述差异代码与预设差异表格进行遍历,确定差异类型;
获取预设标记集合中与所述差异类型对应的嵌套代码,将所述嵌套代码作为所述差异类型对应的差异标记信息;
将所述嵌套代码嵌套至所述差异代码对应差异位置,形成当前代码。
3.如权利要求1所述的软件测试方法,其特征在于,所述渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端的步骤包括:
获取所述当前代码中的待测试代码和差异标记信息,按照所述待测试代码进行一次渲染生成基准页面;
在所述基准页面上按所述差异标记信息进行二次渲染,生成具有所述差异标识的测试页面,并将所述测试页面发送至测试终端。
4.如权利要求1所述的软件测试方法,其特征在于,所述根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码的步骤之后,还包括:
获取当前代码与初始代码,将当前代码与初始代码转化预设超级文本标记语言格式,并分别解析超级文本标记语言格式的所述当前代码与所述初始代码,以对应生成当前文档对象模型和初始文档对象模型;
遍历所述当前文档对象模型和所述初始文档对象模型,获取所述当前文档对象模型和所述初始文档对象模型上元素的样式及文本内容,形成JS对象标记;
通过所述JS对象标记渲染出可视化的差异对比视图,并将所述差异对比视图发送至测试终端。
5.如权利要求1所述的软件测试方法,其特征在于,所述渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端的步骤之后,包括:
接收所述测试终端上传的测试日志,获取所述测试日志中包含的逻辑测试结果和性能测试结果;
将所述逻辑测试结果与预设标准逻辑进行比对,将所述性能测试结果与预设性能参数进行比对;
若逻辑测试结果与预设标准逻辑相同且性能测试结果与预设性能参数相同,则判定当前代码测试通过,并删除当前代码中的差异标记信息,以将当前代码还原成待测试代码;
将所述待测试代码进行页面渲染,生成更新界面,以完成版本更新。
6.如权利要求5所述的软件测试方法,其特征在于,所述将所述逻辑测试结果与预设标准逻辑进行比对,将所述性能测试结果与预设性能参数进行比对的步骤之后,包括:
若逻辑测试结果与预设标准逻辑不同,则判定当前代码测试不通过,将初始代码进行回滚,并生成提示信息,以提示代码开发人员进行代码的重新开发;
若逻辑测试结果与预设标准逻辑相符,性能测试结果与预设性能参数不同,则生成提示信息,以提示代码开发人员根据预设优化目标进行代码优化。
7.如权利要求5所述的软件测试方法,其特征在于,所述将所述待测试代码进行页面渲染,生成更新界面,以完成版本更新的步骤之后,包括:
当检测到版本更新完成时,生成版本更新的提示信息,并将所述提示信息发送至预设终端;
接收版本更新请求,获取所述版本更新请求包含的版本标识,获取所述版本标识对应的待测试代码,并将待测试代码发送至预设终端;
接收预设终端在版本更新后的反馈信息,以使测试人员根据所述反馈信息进行代码二次测试。
8.一种软件测试装置,其特征在于,所述软件测试装置包括:
接收获取模块,用于接收代码测试请求,获取所述代码测试请求中包含的版本信息和待测试代码;
获取替换模块,用于获取预设代码库中与所述版本信息对应的初始代码,并将所述初始代码替换为所述待测试代码;
比对确定模块,用于将所述待测试代码与所述初始代码按预设动态规划算法进行比对,得到差异代码及其对应差异位置,并将所述差异代码及所述差异位置作为差异信息;
差异标记模块,用于根据所述差异信息确定差异类型,并选取预设标记集合中与所述差异类型对应的差异标记信息,将所述差异标记信息与待测试代码结合,形成当前代码;
渲染发送模块,用于渲染所述当前代码生成具有差异标识的测试页面,并将所述测试页面发送至测试终端。
9.一种软件测试设备,其特征在于,所述软件测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件测试程序,其中:
所述软件测试程序被所述处理器执行时实现如权利要求1至7中任一项所述的软件测试方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有软件测试程序,所述软件测试程序被处理器执行时实现如权利要求1至7中任一项所述的软件测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810337548.3A CN108491331B (zh) | 2018-04-13 | 2018-04-13 | 软件测试方法、装置、设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810337548.3A CN108491331B (zh) | 2018-04-13 | 2018-04-13 | 软件测试方法、装置、设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491331A CN108491331A (zh) | 2018-09-04 |
CN108491331B true CN108491331B (zh) | 2023-03-21 |
Family
ID=63316403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810337548.3A Active CN108491331B (zh) | 2018-04-13 | 2018-04-13 | 软件测试方法、装置、设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491331B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446056B (zh) * | 2018-09-11 | 2023-03-21 | 平安科技(深圳)有限公司 | 代码验证方法、装置、电子设备及介质 |
CN109783353A (zh) * | 2018-12-14 | 2019-05-21 | 平安普惠企业管理有限公司 | 一种程序分析方法及终端设备 |
CN109766272A (zh) * | 2018-12-26 | 2019-05-17 | 深圳壹账通智能科技有限公司 | 自助存取款应用软件的测试方法、装置、终端及存储介质 |
CN110134595B (zh) * | 2019-04-19 | 2024-05-28 | 平安科技(深圳)有限公司 | Svn资源库测试前的分析方法、装置、计算机设备 |
CN110221968A (zh) * | 2019-05-20 | 2019-09-10 | 平安普惠企业管理有限公司 | 软件测试方法及相关产品 |
CN110515755A (zh) * | 2019-07-11 | 2019-11-29 | 平安普惠企业管理有限公司 | 接口功能验证方法、装置、设备及计算机可读存储介质 |
CN112445693B (zh) * | 2019-08-28 | 2024-05-10 | 腾讯科技(深圳)有限公司 | 一种页面更新检测方法、装置、设备及存储介质 |
CN110633218B (zh) * | 2019-09-24 | 2023-04-11 | 北京首汽智行科技有限公司 | 一种app升级测试方法 |
CN110688315A (zh) * | 2019-09-26 | 2020-01-14 | 招商局金融科技有限公司 | 接口代码检测报告生成方法、电子装置及存储介质 |
CN110750457B (zh) * | 2019-10-21 | 2023-11-10 | 中国民航信息网络股份有限公司 | 一种基于内存数据库的自动化单元测试方法及装置 |
CN110908898B (zh) * | 2019-11-06 | 2023-07-21 | 贝壳找房(北京)科技有限公司 | 生成测试方案的方法及系统 |
CN110879932A (zh) * | 2019-11-12 | 2020-03-13 | 北京达佳互联信息技术有限公司 | 字符代码的获取和生成的方法以及装置 |
CN111124909B (zh) * | 2019-12-20 | 2024-02-23 | 网易(杭州)网络有限公司 | 测试的方法及装置 |
CN111427770B (zh) * | 2020-02-29 | 2024-04-09 | 中国平安人寿保险股份有限公司 | 一种资源测试方法及相关设备 |
CN113535533B (zh) * | 2020-04-15 | 2024-04-05 | 百度在线网络技术(北京)有限公司 | 用于测试代码的方法、装置、设备以及存储介质 |
CN111831549B (zh) * | 2020-06-04 | 2023-04-14 | 深圳手回科技集团有限公司 | 增量代码覆盖率确定方法、装置、设备及存储介质 |
CN111666217B (zh) * | 2020-06-05 | 2023-06-20 | 百度在线网络技术(北京)有限公司 | 用于测试代码的方法和装置 |
CN111930612B (zh) * | 2020-07-09 | 2024-03-19 | 北京皮尔布莱尼软件有限公司 | 一种代码更新正确性的检测方法、装置及计算设备 |
CN113760314A (zh) * | 2020-07-17 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 页面模块的控制方法、装置、电子设备和存储介质 |
CN112099805A (zh) * | 2020-08-11 | 2020-12-18 | 欧拉信息服务有限公司 | 一种发布应用的方法、装置、电子设备及存储介质 |
CN112015645A (zh) * | 2020-08-27 | 2020-12-01 | 云账户技术(天津)有限公司 | web系统的功能测试方法、装置和电子设备 |
CN112256562B (zh) * | 2020-09-22 | 2024-10-01 | 北京达佳互联信息技术有限公司 | 页面跳转的测试方法、装置、设备和存储介质 |
CN112115057B (zh) * | 2020-09-24 | 2024-09-20 | 京东科技控股股份有限公司 | 应用程序页面搭建流程的自动测试方法、装置及设备 |
CN112947986B (zh) * | 2020-09-29 | 2024-05-24 | 深圳市明源云科技有限公司 | 多版本代码签入控制方法、装置、客户端及存储介质 |
CN112231327B (zh) * | 2020-10-12 | 2024-01-23 | 中国民航信息网络股份有限公司 | 一种航班信息更新方法、装置、服务器及存储介质 |
CN112363929B (zh) * | 2020-11-10 | 2023-07-25 | 中国平安人寿保险股份有限公司 | 系统上线方法、装置、计算机设备及存储介质 |
CN112597028B (zh) * | 2020-12-25 | 2024-07-09 | 北京知因智慧科技有限公司 | 一种用例测试结果的展示方法、装置及可读存储介质 |
CN112597046B (zh) * | 2020-12-29 | 2024-08-09 | 上海商汤智能科技有限公司 | 测试方法、装置、计算机设备及存储介质 |
CN112631935B (zh) * | 2020-12-30 | 2024-08-06 | 中国农业银行股份有限公司 | 一种基于版本冲突的测试方法和装置 |
CN112860564A (zh) * | 2021-02-24 | 2021-05-28 | 深圳海付移通科技有限公司 | 代码检测方法、服务器、用户端、计算机设备和存储介质 |
CN113515444B (zh) * | 2021-04-21 | 2023-07-25 | 平安银行股份有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN113138930A (zh) * | 2021-05-12 | 2021-07-20 | 上海云从企业发展有限公司 | 软件测试方法、装置及计算机存储介质 |
CN113434413B (zh) * | 2021-06-28 | 2023-06-06 | 平安银行股份有限公司 | 基于数据差异的数据测试方法、装置、设备及存储介质 |
TWI769896B (zh) * | 2021-07-23 | 2022-07-01 | 鼎新電腦股份有限公司 | 破壞性程式功能驗證方法及其系統 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996988B2 (en) * | 2009-10-19 | 2015-03-31 | Browsera, LLC | Automated application compatibility testing |
CN104077217B (zh) * | 2013-03-28 | 2017-11-10 | 腾讯科技(深圳)有限公司 | 代码文件的编译发布方法及系统 |
CN104035873A (zh) * | 2014-06-30 | 2014-09-10 | 青岛海信电器股份有限公司 | 测试代码生成方法及生成装置 |
-
2018
- 2018-04-13 CN CN201810337548.3A patent/CN108491331B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108491331A (zh) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491331B (zh) | 软件测试方法、装置、设备和计算机存储介质 | |
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
CN107122344B (zh) | 一种报告生成方法及系统 | |
US9323650B2 (en) | Methods for generating software test input data and devices thereof | |
CN108345532A (zh) | 一种自动化测试用例生成方法和装置 | |
KR101588027B1 (ko) | 소프트웨어 현지화를 위한 테스트 케이스 생성 장치 및 방법 | |
CN102665231B (zh) | 一种lte系统自动生成参数配置文件的方法 | |
CN105808701B (zh) | 实现表单自动化验证及多系统间通讯的方法及系统 | |
CN110837356B (zh) | 一种数据处理方法和装置 | |
CN110688300A (zh) | 兼容性测试方法、装置、设备及存储介质 | |
WO2019100635A1 (zh) | 自动化测试脚本的编辑方法、装置、终端设备及存储介质 | |
CN113422693A (zh) | 物联网设备的模型构建方法、识别方法及计算机设备 | |
CN112711438A (zh) | 依赖组件信息提取方法、设备及计算机可读存储介质 | |
CN113448862A (zh) | 软件版本测试方法、装置及计算机设备 | |
CN113377431A (zh) | 一种代码处理方法、装置、设备及介质 | |
CN113704110A (zh) | 用户界面的自动化测试方法及装置 | |
CN111104324A (zh) | 测试用例的生成方法、生成装置及计算机可读存储介质 | |
CN109542496B (zh) | 增量代码确定方法、装置及系统 | |
US10055269B2 (en) | Additional message information handling for applications | |
CN113064811B (zh) | 基于工作流的自动化测试方法、装置以及电子设备 | |
CN114610608A (zh) | 测试用例处理方法、装置、电子设备以及存储介质 | |
CN113342692A (zh) | 测试用例自动生成方法、装置、电子设备及存储介质 | |
CN117290236A (zh) | 软件测试方法、装置、计算机设备及计算机可读存储介质 | |
CN110413518B (zh) | 控件对象库的生成方法及生成装置和计算机可读存储介质 | |
CN112597023A (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 |