CN115617640A - 一种软件测试方法、装置、电子设备及存储介质 - Google Patents
一种软件测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115617640A CN115617640A CN202110784251.3A CN202110784251A CN115617640A CN 115617640 A CN115617640 A CN 115617640A CN 202110784251 A CN202110784251 A CN 202110784251A CN 115617640 A CN115617640 A CN 115617640A
- Authority
- CN
- China
- Prior art keywords
- test
- user input
- input data
- scene
- output result
- 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
-
- 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/3676—Test management for coverage analysis
-
- 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
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
技术领域
本发明涉及软件技术领域,尤其是一种软件测试方法、装置、电子设备及存储介质。
背景技术
在软件开发过程中,软件测试是保障软件质量和可靠性的重要手段,也是现代信息工程中的一项重要工作。
虽然软件的测试原则、测试方法和测试策略方面都有很多成熟的理论与方法可以给予测试人员很多指导,但在实际的软件测试过程中,测试人员往往只根据研发阶段既定好的测试方案、测试用例或者测试任务来完成软件测试,测试依据单一,精确性不高,若前期测试的设计不足,缺少测试场景易导致被测软件的测试不足,可能会影响软件质量。
软件发布后,用户为软件真正的使用者及测试者,如何针对发布后的产品进行测试及利用用户在使用过程中的输入将测试模块的设计缺陷反馈到研发测试端也是需要解决的技术问题。
发明内容
本发明实施例提供了一种软件测试方法,用以解决现有软件测试中的测试模块设计不足的技术问题。
第一方面,本发明实施例提供了一种软件测试方法,包括:
通过网络接收被测软件的用户输入数据;
确定所述测试模块中当前包含的各个测试场景对应的处理逻辑中是否存在能执行所述用户输入数据的处理逻辑;其中,所述测试模块中预存储有根据所述被测软件的产品需求建立的覆盖不同测试场景的处理逻辑;
若不存在,在所述测试模块中新增与所述用户输入数据对应的测试场景,以及与新增的测试场景对应的处理逻辑;将所述用户输入数据输入测试模块,并输出所述用户输入数据被新增的所述处理逻辑执行后的第一预期输出结果;
若存在,且所述用户输入数据对应的测试场景没有测试通过,则输出将所述用户数据输入测试模块后被对应的处理逻辑执行后的第一预期输出结果;
将所述用户输入数据输入所述被测软件,获得对应的第一实际输出结果;
比较所述第一预期输出结果与所述第一实际输出结果是否一致,判定所述用户输入数据触发的测试场景是否测试通过。
本发明的实施例为针对软件发布后进行的测试,在对软件测试的同时,利用用户使用过程中的用户输入数据对测试模块进行缺陷挖掘,将测试模块的缺陷监测与测试过程形成无缝衔接,完善了测试模块,为解决现有软件测试中测试模块设计不足提供了一种技术方案。
在一些实施例中,若所述测试模块中存在与所述用户输入数据对应的测试场景且已测试通过,则将所述测试场景对应的用户输入数据丢弃。
本实施例的技术方案通过判断用户输入数据对应的测试场景测试是否通过来判断是否需要进行测试,减少了不必要的重复性测试,提高测试效率。
在一些实施例中,还包括:确定所述测试模块中是否存在未测试场景;
在确定存在所述未测试场景时,在预先建立的用户输入数据集合中选取与所述未测试场景对应的测试数据;其中,所述用户输入数据集合中预存储有用于触发所述不同测试场景对应的测试数据;
将所述测试数据分别输入所述测试模块和所述被测软件,分别获得对应的第二预期输出结果和第二实际输出结果;
比较所述第二预期输出结果和第二实际输出结果是否一致,判定所述测试数据触发的测试场景是否通过;
重复上述步骤,直到所述测试模块中不存在未测试场景。
本发明的实施例为针对发布后的产品进行的测试,若用户输入数据测试不完全,则从预先建立的用户输入集中选取相应数据补充测试,可有效的防止产品漏测的发生,也可有效监测产品发布后用户使用阶段质量情况,保障了产品质量。
在一些实施例中,所述测试模块中包含每个所述测试场景对应的覆盖标记;还包括:将所述用户输入数据和所述测试数据已经触发过的测试场景对应的覆盖标记进行标识;
确定所述测试模块中是否存在未测试场景,具体包括:
确定是否存在未被标识覆盖标记的测试场景。
本发明实施例通过在测试模块中增加覆盖标记,若该处理逻辑被触发,覆盖标记被标识,该技术方案可有效的找出测试模块中未被触发的测试场景,以便于从预先建立的用户输入数据集合中选取未测试场景对应的测试数据。
在一些实施例中,将所述用户输入数据输入测试模块之前,对所述测试模块中的各测试场景对应的预期输出结果进行初始化;
确定所述测试模块中是否存在未测试场景,具体包括:
确定是否存在预期输出结果为初始化值的测试场景。
该实施例通过对预期输出结果进行初始化操作,当测试模块中的测试场景被触发时,相应的预期输出结果不再为初始化值,从中找出预期输出结果为初始化值的测试场景即为未测试场景,该技术方案为找出测试模块中未被触发的测试场景提供了另一种技术方案,在实际使用过程中,可根据需要选择不同的技术方案。
在一些实施例中,还包括:将新增的测试场景对应的用户输入数据添加到所述用户输入数据集合中。
本发明的实施例通过收集被测软件的用户输入数据,利用用户的动态输入来完善用户输入数据集合,处理方式灵活,更高效率的完善用户输入数据集合。
在一些实施例中,还包括:记录用户输入数据,并进行用户行为分析,得到用户行为分析结果。
发明实施例可根据不同需求对用户行为进行不同的分析,以获得所需分析结果,更好的完善被测软件。
第二方面,本发明实施例提供了一种软件测试装置,包括:
输入单元,用于通过网络接收用户输入数据;
测试模块,用于确定包含的各个测试场景对应的处理逻辑中是否存在能执行所述用户输入数据的处理逻辑;其中,所述测试模块中预存储有根据被测软件的产品需求建立的覆盖不同测试场景的处理逻辑;若不存在,在所述测试模块中新增与所述用户输入数据对应的测试场景,以及与新增的测试场景对应的处理逻辑,根据所述输入单元的输入,输出所述用户输入数据被新增的所述处理逻辑执行后的第一预期输出结果;若存在,且所述用户输入数据对应的测试场景没有测试通过,根据所述输入单元的输入,输出将所述用户数据输入测试模块后被对应的处理逻辑执行后的第一预期输出结果;
判断单元,用于将所述用户输入数据输入所述被测软件,获得对应的第一实际输出结果;还用于比较所述第一预期输出结果与所述第一实际输出结果是否一致,判定所述用户输入数据触发的测试场景是否测试通过。
在一些实施例中,所述装置还包括:
场景测试单元,用于确定所述测试模块中是否存在未测试场景;
在确定存在所述未测试场景时,在预先建立的用户输入数据集合中选取与所述未测试场景对应的测试数据;其中,所述用户输入数据集合中预存储有用于触发所述不同测试场景对应的测试数据;将所述测试数据输入所述测试模块,获得对应的第二预期输出结果;
所述判断单元,还用于将所述用户输入数据集合输入所述被测软件,获得对应的第二实际输出结果,还用于比较所述第二预期输出结果与所述第二实际输出结果是否一致,判定所述用户输入数据集合触发的测试场景是否通过;
重复上述步骤,直到所述测试模块中不存在未测试场景。
在一些实施例中,所述装置还包括:
数据更新单元,用于将新增的测试场景对应的用户输入数据添加到所述用户输入数据集合中。
第三方面,本发明实施例提供了一种电子设备,所述电子设备包括处理器及存储器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面任一项所述方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现第一方面任一项所述方法的步骤。
第二方面、第三方面、第四方面的实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
本发明有益效果如下:
本发明的实施例为针对软件发布后进行的测试,在对软件测试的同时,利用用户使用过程中的用户输入数据对测试模块进行缺陷挖掘,将测试模块的缺陷监测与测试过程形成无缝衔接,完善了测试模块,为解决现有软件测试中测试模块设计不足提供了一种技术方案。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件测试方法流程图;
图2为本发明实施例提供的一种确定测试模块是否存在漏测的方法流程图;
图3为本发明实施例提供的一种用户行为分析流程图;
图4为本发明实施例提供的一种软件测试装置结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本发明的技术方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
下面对本发明的设计思想进行说明。
本发明实施例提供的一种软件测试方法,如图1所示,具体包括以下步骤:
S101、接收用户输入数据;
用户输入的数据来自于产品发布后使用产品用户的输入数据,也可以是用户输入的数据的集合作为测试的输入。
S102、确定测试模块中当前包含的各个测试场景对应的处理逻辑中是否存在能执行用户输入数据的处理逻辑;其中,测试模块中预存储有根据被测软件的产品需求建立的覆盖不同测试场景的处理逻辑;
若是,执行步骤S104,若否,执行步骤S103;
测试模块为在产品需求设计阶段根据产品需求设计说明书实现处理各类输入的逻辑模块,每一类输入的逻辑处理都有相应的预期输出,测试模块包括根据被测试软件的产品需求建立的覆盖各种测试场景对应的处理逻辑。
S103、若不存在,在测试模块中新增与用户输入数据对应的测试场景,以及与新增的测试场景对应的处理逻辑;
若测试场景不全,即测试模块有缺陷,可能是设计不足未将测试场景考虑到,或是其它原因,如被测软件更新后引入新的测试场景导致测试模块无该测试场景等,因此需要在测试过程中补入当前测试场景,新增用户输入数据对应的测试场景来完善测试,即通过用户输入发现测试模块可能的缺陷来完善测试过程。
S104、若存在,判断用户输入数据对应的测试场景是否没有测试通过;
若是,执行步骤S105,若否,执行步骤S112;
存在测试场景,需判断对应的测试场景是否有测试通过,若未通过,说明此前测试时预期的输出和实际输出不一致,需要进行测试,同时,也包括了测试场景未测试的情况,需要进行测试。
S105、将用户输入数据输入测试模块;
S106、输出第一预期输出结果;
若是新增加测试场景,则输出新增的处理逻辑执行后的第一预期输出结果,若已有测试场景,则直接输出对应的处理逻辑执行后的第一预期输出结果。
S107、将用户输入数据输入被测软件;
被测软件可以为任何一种待测试的软件。
S108、获得对应的第一实际输出结果;
S109、比较第一预期输出结果与第一实际输出结果是否一致;
若是,执行步骤S110,若否,执行步骤S111;
S110、若一致,用户输入数据触发的测试场景测试通过;
若一致,说明当前的测试场景的第一预期输出结果与第一实际输出结果一致,测试场景通过。
S111、若不一致,用户输入数据触发的测试场景测试不通过。
不一致,说明当前的测试场景的第一预期输出结果与第一实际输出结果不一致,测试场景不通过,若有需要,需进一步分析产生差异的原因。
本发明的实施例为针对软件发布后进行的测试,在对软件测试的同时,利用用户使用过程中的用户输入数据对测试模块进行缺陷挖掘,将测试模块的缺陷监测与测试过程形成无缝衔接,完善了测试模块,为解决现有软件测试中测试模块设计不足提供了一种技术方案。
可选的,作为其中一种实施例,若所述测试模块中存在与所述用户输入数据对应的测试场景且已测试通过,则将所述测试场景对应的用户输入数据丢弃。
如图1所示,本实施例省略与上述实施例相同步骤的描述,仅描述与上述实施例有所区别的内容;
S101、S102、S104与上述实施例的步骤相同;
S104、判断用户输入数据对应的测试场景是否没有测试通过;
若是,执行步骤S105,若否,执行步骤S112;
S112、将用户输入数据丢弃;
若测试模块中存在与所述用户输入数据对应的测试场景且已测试通过,说明该用户输入数据已进行了测试,且测试的结果是通过的,因此,不必再将用户输入的数据输入测试模块并进行测试比对,直接丢弃用户的输入数据,结束当前流程。
本实施例的技术方案通过判断用户输入数据对应的测试场景测试是否通过来判断是否需要进行测试,减少了不必要的重复性测试,提高测试效率。
可选的,作为其中一种实施例,本发明实施例还提供了一种确定测试模块是否存在漏测的方法流程图,如图2所示,具体包括以下步骤:
S201、确定测试模块中是否存在未测试场景;
若是,执行步骤S202,若否,执行步骤S208;
若存在未测试的场景,说明被测软件获取的用户数据的测试不完全,即存在产品漏测,需要增加相应测试场景的输入数据来做补充测试。
S202、在确定存在未测试场景时,在预先建立的用户输入数据集合中选取与未测试场景对应的测试数据;其中,用户输入数据集合中预存储有用于触发不同测试场景对应的测试数据;
预先建立的用户输入数据集合为前期在研发测试端维护的一份输入数据的全集,根据被测软件需求设计采取一定的测试方法建立,例如等价类划分、边界值覆盖方法等,其中的数据可覆盖需求设计所有测试场景。
S203、将测试数据输入测试模块;
S204、获得第二预期输出结果;
S205、将测试数据输入被测软件;
S206、获得第二实际输出结果;
S207、比较第二预期输出结果和第二实际输出结果是否一致,判定测试数据触发的测试场景是否通过;
S208、重复步骤S201-S207,直到测试模块中不存在未测试场景,结束流程。
本发明的实施例为针对发布后的产品进行的测试,若用户输入数据测试不完全,则从预先建立的用户输入集中选取相应数据补充测试,可有效的防止产品漏测的发生,也可有效监测产品发布后用户使用阶段质量情况,保障了产品质量。
可选的,作为其中一种实施例,测试模块中包含每个测试场景对应的覆盖标记;还包括:
将用户输入数据和测试数据已经触发过的测试场景对应的覆盖标记进行标识;
确定测试模块中是否存在未测试场景,具体包括:
确定是否存在未被标识覆盖标记的测试场景。
以下给出一个具体的应用实例:
假定,以产品功能模块X为例,模块X具有M个输入数据,N个待测试场景,那么对应的测试模块X具有N个预期输出,N个覆盖标记,如下以部分代码的形式示意性描述,其中,//后用于对当前代码的解释说明。
具体描述如下:
以上示例可以看出,测试模块中包含每个处理逻辑具有对应的覆盖标记,若输入的数据触发了某个测试场景,通过对覆盖标记进行标识即可找出未测试的场景,若未触发该场景,则覆盖标记未被标识。
本实施例通过在测试模块中增加覆盖标记,若测试场景被触发,则覆盖标记被标识,该技术方案可有效的找出测试模块中未被触发的测试场景,以便于从预先建立的用户输入数据集合中选取未测试场景对应的测试数据。
可选的,作为其中一种实施例,在将用户输入数据输入测试模块之前,对测试模块中的各测试场景对应的预期输出结果进行初始化;
确定测试模块中是否存在未测试场景,具体包括:
确定是否存在预期输出结果为初始化值的测试场景。
同样以上述例子为例,代码部分见上述实施例,此处不再重复列举。
若取消对覆盖标记,则在测试前,对测试模块X中的各测试场景对应的预期输出结果进行初始化,即predictOut1…N进行初始化,通常会进行Null的初始化,如下:
predictOut1=Null;
PredictOut2=Null;
……
PredictOutN=Null;
当被测试的场景被触发时,对应的场景的预期输出结果会有所变化,如条件1的测试场景被触发时,则对应预期输出结果predictOut1为pOut1值而不再为Null,因此,通过该种方式,可以找出未被测试的场景。
该实施例通过对预期输出结果进行初始化操作,当测试模块中的测试场景被触发时,相应的预期输出结果不再为初始化值,从中找出预期输出结果为初始化值的测试场景即为未测试场景,该技术方案为找出测试模块中未被触发的测试场景提供了另一种技术方案,在实际使用过程中,可根据需要选择不同的技术方案。
可选的,作为其中一种实施例,还包括:将新增的测试场景对应的用户输入数据添加到用户输入数据集合中。
本发明的实施例通过收集被测软件的用户输入数据,利用用户的动态输入来完善用户输入数据集合,处理方式灵活,更高效率的完善用户输入数据集合。
可选的,作为其中一种实施例,记录用户输入数据,并进行用户行为分析,得到用户行为分析结果。
以下给出一个具体的应用实例:
图3为本发明实施例提供的一种用户行为分析流程图,具体包括以下步骤:
S301、记录用户输入数据;
S302、数据整理、分类;
可以根据不同的场景进行分类,也可根据分析的需求采用不同的分类方式。
S303、分析输入数据;
S304、获得用户高频输入数据;
可根据不同的需求进行不同的分析,此处以获得用户高频输入数据为例,当然也可以分析其它的数据,此处仅是列举。
S305、在用户输入数据集合中对高频行为进行标引,增加高频行为的数据测试量;
S306、得到高频用户行为,并分析;
S307、针对用户高频行为进一步分析,完善被测软件的相关使用功能;
本发明实施例通过记录用户输入数据,并进行用户行为分析,得到用户行为分析结果,在用户输入数据集合中对高频行为进行标引,增加高频行为的数据测试量,也可对用户高频行为重点关注,针对用户高频行为进一步分析,完善被测软件的相关使用功能,本发明实施例可根据不同需求对用户行为进行不同的分析,以获得所需分析结果,更好的完善被测软件。
基于同一发明构思,本实施例提供了一种软件测试装置400,具体可见附图4,包括:
输入单元401,用于通过网络接收用户输入数据;
测试模块402,用于确定包含的各个测试场景对应的处理逻辑中是否存在能执行所述用户输入数据的处理逻辑;其中,所述测试模块402中预存储有根据被测软件的产品需求建立的覆盖不同测试场景的处理逻辑;若不存在,在所述测试模块402中新增与所述用户输入数据对应的测试场景,以及与新增的测试场景对应的处理逻辑,根据所述输入单元401的输入,输出所述用户输入数据被新增的所述处理逻辑执行后的第一预期输出结果;若存在,且所述用户输入数据对应的测试场景没有测试通过,根据所述输入单元401的输入,输出将所述用户数据输入测试模块402后被对应的处理逻辑执行后的第一预期输出结果;
判断单元403,用于将所述用户输入数据输入所述被测软件,获得对应的第一实际输出结果;还用于比较所述第一预期输出结果与所述第一实际输出结果是否一致,判定所述用户输入数据触发的测试场景是否测试通过。
可选的,作为其中一种实施例,装置400还包括:
场景测试单元404,用于确定所述测试模块402中是否存在未测试场景;
在确定存在所述未测试场景时,在预先建立的用户输入数据集合中选取与所述未测试场景对应的测试数据;其中,所述用户输入数据集合中预存储有用于触发所述不同测试场景对应的测试数据;将所述测试数据输入所述测试模块402,获得对应的第二预期输出结果;
所述判断单元403,还用于将所述用户输入数据集合输入所述被测软件,获得对应的第二实际输出结果,还用于比较所述第二预期输出结果与所述第二实际输出结果是否一致,判定所述用户输入数据集合触发的测试场景是否通过;重复上述步骤,直到所述测试模块402中不存在未测试场景。
可选的,作为其中一种实施例,装置400还包括数据更新单元405,用于将新增的测试场景对应的用户输入数据添加到所述用户输入数据集合中。
基于同一发明构思,本实施例还提供了一种电子设备500,如附图5所示,电子设备500包括处理器501及存储器502,处理器501用于执行存储器502中存储的计算机程序时实现上述实施例中任一项方法的步骤。
基于同一发明构思,本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述实施例中任一项方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种软件测试方法,其特征在于,包括:
通过网络接收被测软件的用户输入数据;
确定所述测试模块中当前包含的各个测试场景对应的处理逻辑中是否存在能执行所述用户输入数据的处理逻辑;其中,所述测试模块中预存储有根据所述被测软件的产品需求建立的覆盖不同测试场景的处理逻辑;
若不存在,在所述测试模块中新增与所述用户输入数据对应的测试场景,以及与新增的测试场景对应的处理逻辑;将所述用户输入数据输入测试模块,并输出所述用户输入数据被新增的所述处理逻辑执行后的第一预期输出结果;
若存在,且所述用户输入数据对应的测试场景没有测试通过,则输出将所述用户数据输入测试模块后被对应的处理逻辑执行后的第一预期输出结果;
将所述用户输入数据输入所述被测软件,获得对应的第一实际输出结果;
比较所述第一预期输出结果与所述第一实际输出结果是否一致,判定所述用户输入数据触发的测试场景是否测试通过。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述测试模块中存在与所述用户输入数据对应的测试场景且已测试通过,则将所述测试场景对应的用户输入数据丢弃。
3.根据权利要求1-2任一项所述的方法,其特征在于,还包括:
确定所述测试模块中是否存在未测试场景;
在确定存在所述未测试场景时,在预先建立的用户输入数据集合中选取与所述未测试场景对应的测试数据;其中,所述用户输入数据集合中预存储有用于触发所述不同测试场景对应的测试数据;
将所述测试数据分别输入所述测试模块和所述被测软件,分别获得对应的第二预期输出结果和第二实际输出结果;
比较所述第二预期输出结果和第二实际输出结果是否一致,判定所述测试数据触发的测试场景是否通过;
重复上述步骤,直到所述测试模块中不存在未测试场景。
4.根据权利要求3所述的方法,其特征在于,所述测试模块中包含每个所述测试场景对应的覆盖标记;还包括:
将所述用户输入数据和所述测试数据已经触发过的测试场景对应的覆盖标记进行标识;
确定所述测试模块中是否存在未测试场景,具体包括:
确定是否存在未被标识覆盖标记的测试场景。
5.根据权利要求3所述的方法,其特征在于,在将所述用户输入数据输入测试模块之前,对所述测试模块中的各测试场景对应的预期输出结果进行初始化;
确定所述测试模块中是否存在未测试场景,具体包括:
确定是否存在预期输出结果为初始化值的测试场景。
6.根据权利要求3所述的方法,其特征在于,还包括:将新增的测试场景对应的用户输入数据添加到所述用户输入数据集合中。
7.根据权利要求1-2、4-6任一项所述的方法,其特征在于,还包括:记录用户输入数据,并进行用户行为分析,得到用户行为分析结果。
8.一种软件测试装置,其特征在于,所述装置包括:
输入单元,用于通过网络接收用户输入数据;
测试模块,用于确定包含的各个测试场景对应的处理逻辑中是否存在能执行所述用户输入数据的处理逻辑;其中,所述测试模块中预存储有根据被测软件的产品需求建立的覆盖不同测试场景的处理逻辑;若不存在,在所述测试模块中新增与所述用户输入数据对应的测试场景,以及与新增的测试场景对应的处理逻辑,根据所述输入单元的输入,输出所述用户输入数据被新增的所述处理逻辑执行后的第一预期输出结果;若存在,且所述用户输入数据对应的测试场景没有测试通过,根据所述输入单元的输入,输出将所述用户数据输入测试模块后被对应的处理逻辑执行后的第一预期输出结果;
判断单元,用于将所述用户输入数据输入所述被测软件,获得对应的第一实际输出结果;还用于比较所述第一预期输出结果与所述第一实际输出结果是否一致,判定所述用户输入数据触发的测试场景是否测试通过。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
场景测试单元,用于确定所述测试模块中是否存在未测试场景;
在确定存在所述未测试场景时,在预先建立的用户输入数据集合中选取与所述未测试场景对应的测试数据;其中,所述用户输入数据集合中预存储有用于触发所述不同测试场景对应的测试数据;将所述测试数据输入所述测试模块,获得对应的第二预期输出结果;
所述判断单元,还用于将所述用户输入数据集合输入所述被测软件,获得对应的第二实际输出结果,还用于比较所述第二预期输出结果与所述第二实际输出结果是否一致,判定所述用户输入数据集合触发的测试场景是否通过;
重复上述步骤,直到所述测试模块中不存在未测试场景。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
数据更新单元,用于将新增的测试场景对应的用户输入数据添加到所述用户输入数据集合中。
11.一种电子设备,其特征在于,所述电子设备包括处理器及存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7中任一所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110784251.3A CN115617640A (zh) | 2021-07-12 | 2021-07-12 | 一种软件测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110784251.3A CN115617640A (zh) | 2021-07-12 | 2021-07-12 | 一种软件测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617640A true CN115617640A (zh) | 2023-01-17 |
Family
ID=84856231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110784251.3A Pending CN115617640A (zh) | 2021-07-12 | 2021-07-12 | 一种软件测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617640A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743162A (zh) * | 2023-12-19 | 2024-03-22 | 万物镜像(北京)计算机系统有限公司 | 一种自动驾驶仿真场景的测试方法、装置及设备 |
-
2021
- 2021-07-12 CN CN202110784251.3A patent/CN115617640A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743162A (zh) * | 2023-12-19 | 2024-03-22 | 万物镜像(北京)计算机系统有限公司 | 一种自动驾驶仿真场景的测试方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
KR101459867B1 (ko) | 시스템 테스트 장치 | |
CN105468797B (zh) | 一种信息处理方法及装置 | |
US10936474B2 (en) | Software test program generation | |
CN110196801B (zh) | 一种基于代码覆盖率的测试方法及装置 | |
CN114546738B (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
CN113065300B (zh) | 芯片eda仿真中回溯仿真波形的方法、系统及装置 | |
US9354275B2 (en) | Testing an integrated circuit | |
CN104021072A (zh) | 用于评估失效的软件程序的机器和方法 | |
US20160170868A1 (en) | Method and apparatus for the automated testing of a subsystem of a safety critical system | |
CN111797006B (zh) | 一种线程测试的方法、装置、设备以及存储介质 | |
CN106557419B (zh) | 程序的测试方法及装置 | |
CN107562621B (zh) | 确定手工测试用例与被测试代码关联关系的方法和装置 | |
CN115617640A (zh) | 一种软件测试方法、装置、电子设备及存储介质 | |
CN105912467B (zh) | 一种性能测试方法及装置 | |
CN106294109B (zh) | 获取缺陷代码的方法及装置 | |
CN112463620B (zh) | 安卓软件集成测试中的覆盖率测试方法、装置 | |
CN107102938B (zh) | 测试脚本的更新方法及装置 | |
US7093174B2 (en) | Tester channel count reduction using observe logic and pattern generator | |
CN113282496B (zh) | 接口自动测试方法、装置、设备及存储介质 | |
US6539498B1 (en) | Method of detecting cause of failure in computer | |
CN115373929A (zh) | 测试方法、装置、设备、可读存储介质及程序产品 | |
CN110442370B (zh) | 一种测试用例查询方法及装置 | |
CN113282504A (zh) | 一种增量代码覆盖率检测方法及业务开发方法、装置 | |
CN111143229A (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 |