一种软件测试方法和装置与流程

文档序号:18822423发布日期:2019-10-09 01:00阅读:183来源:国知局
一种软件测试方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种软件测试方法和一种软件测试装置。



背景技术:

软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

在软件测试过程中,由于系统(包括硬件层面和底层软件层面)的不稳定性,可能会对被测软件的执行结果产生影响。有些错误是由于底层系统的问题,但是在软件测试的过程中却被发现为错误。这会影响软件测试的结果,甚至产生错误测试结论,以致误导后续的软件开发过程。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种软件测试方法和相应的一种软件测试装置。

为了解决上述问题,本发明实施例公开了一种软件测试方法,包括:

对待测试软件进行至少一次的测试;

获取每次测试的测试结果,并判断所述测试结果是否满足有效性条件;其中,所述有效性条件是指预先设定的用于判定测试结果为有效结果的条件,所述有效结果是指由待测试软件引起的结果;

若存在任一次的测试结果不满足有效性条件,则对所述待测试软件重新进行测试,直至测试结果满足有效性条件;

当满足有效性条件的测试结果的数目达到预设数目阈值时,停止测试并根据满足有效性条件的测试结果,判断所述待测试软件是否通过测试。

优选的,所述测试结果包括:成功、失败和错误;所述判断测试结果是否满足有效性条件的步骤包括:

若所述测试结果为成功或失败,则确定所述测试结果满足有效性条件;

若所述测试结果为错误,则判断所述测试结果是否属于由待测试软件引起的错误;

若所述测试结果属于由待测试软件引起的错误,则确定所述测试结果满足有效性条件;

若所述测试结果不属于由待测试软件引起的错误,则确定所述测试结果不满足有效性条件。

优选的,所述判断测试结果是否属于由待测试软件引起的错误的步骤包括:

判断所述测试结果是否属于第一错误列表中包含的错误或属于第二错误列表中包含的错误;所述第一错误列表中记录有由待测试软件引起的错误,所述第二错误列表中记录有由非待测试软件引起的错误;

若所述测试结果是属于第一错误列表中包含的错误,则确定所述测试结果为由待测试软件引起的错误;

若所述测试结果是属于第二错误列表中包含的错误,则确定所述测试结果为由非待测试软件引起的错误。

优选的,所述判断测试结果是否属于由待测试软件引起的错误的步骤还包括:

若所述测试结果不属于第一错误列表中包含的错误或第二错误列表中包含的错误,则生成判断通知消息;

接收针对所述判断通知消息返回的判断结果;

依据所述判断结果,将所述测试结果所表征的错误添加到所述第一错误列表中或所述第二错误列表中。

优选的,所述根据满足有效性条件的测试结果,判断所述待测试软件是否通过测试的步骤包括:

分别统计测试结果为成功的次数、测试结果为失败的次数,以及测试结果为由待测试软件引起的错误的次数;

根据所述测试结果为成功的次数、所述测试结果为失败的次数,以及所述测试结果为由待测试软件引起的错误的次数计算通过率;

若所述通过率大于预设通过率阈值,则确定所述待测试软件通过测试;

若所述通过率小于或等于所述预设通过率阈值,则确定所述待测试软件不通过测试。

本发明实施例还公开了一种软件测试装置,包括:

测试模块,用于对待测试软件进行至少一次的测试;

有效判断模块,用于获取每次测试的测试结果,并判断所述测试结果是否满足有效性条件;其中,所述有效性条件是指预先设定的用于判定测试结果为有效结果的条件,所述有效结果是指由待测试软件引起的结果;

重测模块,用于若存在任一次的测试结果不满足有效性条件,则对所述待测试软件重新进行测试,直至测试结果满足有效性条件;

通过判断模块,用于当满足有效性条件的测试结果的数目达到预设数目阈值时,停止测试并根据满足有效性条件的测试结果,判断所述待测试软件是否通过测试。

优选的,所述测试结果包括:成功、失败和错误;所述有效判断模块包括:

第一有效确定子模块,用于若所述测试结果为成功或失败,则确定所述测试结果满足有效性条件;

错误判断子模块,用于若所述测试结果为错误,则判断所述测试结果是否属于由软件引起的错误;

第二有效确定子模块,用于若所述测试结果属于由待测试软件引起的错误,则确定测试结果满足有效性条件;

第三有效确定子模块,用于若所述测试结果不属于由待测试软件引起的错误,则确定测试结果不满足有效性条件。

优选的,所述错误判断子模块包括:

错误判断单元,用于判断所述测试结果是否属于第一错误列表中包含的错误或属于第二错误列表中包含的的错误;所述第一错误列表中记录有由待测试软件引起的错误,所述第二错误列表中记录有由非待测试软件引起的错误;

第一错误确定单元,用于若所述测试结果是属于第一错误列表中包含的错误,则确定所述测试结果为由待测试软件引起的错误;

第二错误确定单元,用于若所述测试结果是属于第二错误列表中包含的错误,则确定所述测试结果为由非待测试软件引起的错误。

优选的,所述错误判断子模块还包括:

通知生成单元,用于若所述测试结果不属于第一错误列表中包含的错误或第二错误列表中包含的错误,则生成判断通知消息;

判断结果接收单元,用于接收针对所述判断通知消息返回的判断结果;

错误添加单元,用于依据所述判断结果,将所述测试结果所表征的错误添加到所述第一错误列表中或所述第二错误列表中。

优选的,所述通过判断模块包括:

次数统计子模块,用于分别统计测试结果为成功的次数、测试结果为失败的次数,以及测试结果为由待测试软件引起的错误的次数;

通过率计算子模块,用于根据所述测试结果为成功的次数、所述测试结果为失败的次数,以及所述测试结果为由待测试软件引起的错误的次数计算通过率;

通过确定子模块,用于若所述通过率大于预设通过率阈值,则确定所述待测试软件通过测试;

不通过确定子模块,用于若所述通过率小于或等于所述预设通过率阈值,则确定所述待测试软件不通过测试。

本发明实施例还公开了一种软件测试装置,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。

本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如上所述的一个或多个的方法。

本发明实施例包括以下优点:

在本发明实施例中,在对软件进行测试时,对软件的测试结果进行有效性判断。若测试结果不满足有效性条件,则重新进行测试,直到测试结果满足有效性条件。根据满足有效性条件的测试结果,判断软件是否通过测试。本发明实施例,由于除了待测试软件引起的结果之外产生的结果,包括由不稳定系统导致的错误,因此,将不稳定系统导致的测试结果确定为不满足有效性条件的测试结果,仅根据满足有效性条件的测试结果,判断软件是否通过测试,可以有效消除在不稳定系统中对软件进行测试时,由非软件引起的不稳定因素对测试结果的影响。

附图说明

图1是本发明的一种软件测试方法实施例的步骤流程图;

图2是本发明的一种软件测试装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种软件测试方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,对待测试软件进行至少一次的测试;

在不稳定系统(也称不可靠系统)中对软件进行测试时,由于系统的不稳定性,可能会导致测试产生错误。这些不是由待测试软件本身引起的错误,会对测试的通过率产生影响,以致于影响测试结论。其中,所述不稳定系统是指稳定性不满足要求的系统,系统的稳定性可以用平均失效间隔时间mtbf(meantimebetweenfailures)、平均故障修复时间mttr(meantimetorepairs)、平均故障间隔时间mtbf(meantimebetweenfailure)等指标来评价。

测试过程可以为:在不稳定系统中,安装测试软件或测试工具。通过测试软件或测试工具对待测试软件进行测试。

步骤102,获取每次测试的测试结果,并判断所述测试结果是否满足有效性条件;其中,所述有效性条件是指预先设定的用于判定测试结果为有效结果的条件,所述有效结果是指由待测试软件引起的结果。

测试软件或测试工具会生成每一次测试的测试结果。在本发明实施例中,为了减少不稳定系统对测试的影响,对测试结果进行有效性的判断。若某次测试的测试结果不满足预设的有效性条件,则认为该次测试无效,并重新进行测试,直至测试结果满足有效性条件,视为测试结果有效。

在本发明实施例中,测试结果包括:成功、失败、错误;待测试软件引起的结果包括:成功、失败、以及由待测试软件引起的错误。所述判断测试结果是否满足有效性条件的步骤可以包括如下子步骤:

子步骤s11,若所述测试结果为成功或失败,则确定所述测试结果满足有效性条件。

成功是指测试结果符合预期结果;

失败是指测试结果不符合预期结果,但是在测试软件或测试工具的可判断范围内;可判断范围是指测试结果属于测试人员预先可以知道的结果。测试人员在编写测试软件或测试工具时,设定期望出现的结果和不期望出现的结果,期望出现结果即为符合预期结果,不期望出现的结果则为不符合预期结果。预期结果可以是根据软件需求设定的。无论是符合预期结果的测试结果,还是不符合预期结果的测试结果都属于可判断范围内。上述失败是指可判断范围内的不符合预期结果。

错误是指测试结果不符合预期结果,并且不在测试软件或测试工具的可判断范围内。测试软件或测试工具可以记录出现错误的原因和/或出现错误时的表现,根据出现错误的原因和/或出现错误时的表现,可以分析错误是由待测试软件引起还是由非待测试软件引起。

在本发明实施例中,错误可以分为由待测试软件引起的错误,以及由非待测试软件引起的错误这两种。

例如,在对以下待测试软件测试时:

if(a==b)

returntrue;

else

retuenfalse;

其中,期望结果是a==b;若返回ture,则表示在可判断范围内符合预期结果,测试结果为成功;若返回false,则表示在可判断范围内但不符合预期结果,测试结果为失败。除了true和false之外的其他结果都属于错误。如果在测试过程中,出现了段错误(段错误是指访问的内存超出了系统所给这个程序的内存空间而引起的错误)等程序错误,则测试结果为由待测试软件引起的错误;如果在测试过程中,发生了内核崩溃或者死机等现象,则测试结果为由非待测试软件引起的错误。

子步骤s12,若所述测试结果为错误,则判断所述测试结果是否属于由待测试软件引起的错误。

在本发明实施例中,所述子步骤s12可以进一步包括:

子步骤s121,判断所述测试结果是否属于第一错误列表中包含的错误或属于第二错误列表中包含的错误;所述第一错误列表中记录有至少一项由待测试软件引起的错误的错误类型,所述第二错误列表中记录有至少一项由非待测试软件引起的错误的错误类型。

进一步的,第一错误列表和/或第二错误列表中还可以包含错误类型所对应的各种错误表现,该错误表现为其所属的错误类型的各种呈现形式,例如,错误1:错误类型为网络连接问题,错误表现1为网络连接超时,错误表现2为网络连接断开;错误2:错误类型为内核错误,错误表现为kernelpanic(内核错误)。

第一错误列表和第二错误列表都是由测试人员创建的,测试人员可以为一种错误表现归纳一一对应的一种错误类型,也可以将多种错误表现归纳到同一种错误类型。其中,第二错误列表中的错误均为非待测试软件引起的错误,如不稳定系统所导致的错误。

子步骤s122,若所述测试结果是属于第一错误列表中包含的错误,则确定所述测试结果为由待测试软件引起的错误。

例如,当测试结果为错误类型时,遍历第一错误列表,查询测试结果是否与第一错误列表中的错误类型相同。

又如,当测试结果为错误表现时,遍历第一错误列表,查询测试结果是否与第一列表中的错误表现相同。

子步骤s123,若所述测试结果是属于第二错误列表中包含的错误,则确定所述测试结果为由非待测试软件引起的错误。

例如,当测试结果为错误类型时,遍历第二错误列表,查询测试结果是否与第二错误列表中的错误类型相同。

又如,当测试结果为错误表现时,遍历第二错误列表,查询测试结果是否与第二列表中的错误表现相同。

在本发明实施例中,预先设置有第一错误列表和第二错误列表,第一错误列表中记录了由待测试软件引起的错误,第二错误列表中记录了由非待测试软件引起的错误。例如,网络连接超时、内核错误、硬盘校验失败等,均属于第二错误列表中记录的错误。

如果当前测试结果所表征的错误是属于第一错误列表中的错误,则该测试结果为由待测试软件引起的错误。如果当前测试结果的错误是属于第二错误列表中的错误,则该测试结果为由非待测试软件引起的错误。

进一步的,所述子步骤s12还可以包括:

子步骤s124,若测试结果不属于第一错误列表中包含的错误或第二错误列表中包含的错误,则生成判断通知消息。

子步骤s125,接收针对所述判断通知消息返回的判断结果。

若测试结果既不属于第一错误列表中的错误,也不属于第二错误列表中的错误,则生成判断通知消息并告知测试人员,由测试人员人工判断测试结果是属于由待测试软件引起的错误,还是属于由非待测试软件引起的错误。

子步骤s126,依据所述判断结果,将所述测试结果所表征的错误添加到所述第一错误列表中或所述第二错误列表中。

在测试人员输入测试结果为由待测试软件引起的错误或者由非待测试软件引起的错误的判断结果后,依据所述判断结果,将所述测试结果的错误添加到所述第一错误列表中或所述第二错误列表中。

具体的,在根据测试人员输入的判断结果,确定测试结果是属于由待测试软件引起的错误还是属于由非待测试软件引起的错误后,若测试结果的错误是属于由待测试软件引起的错误,则将该错误添加到第一错误列表中;若测试结果的错误是属于由非待测试软件引起的错误,则将该错误添加到第二错误列表中。这样,可以更加完善第一错误列表或第二错误列表中的错误,在之后再次出现同样的错误时,可以自动化判断错误是属于第一错误列表中的错误或第二错误列表中的错误,无需人工判断。

子步骤s13,若所述测试结果属于由待测试软件引起的错误,则确定所述测试结果满足有效性条件。

子步骤s14,若所述测试结果不属于由待测试软件引起的错误,则确定所述测试结果不满足有效性条件。

在本发明实施例中,若测试结果不属于由待测试软件引起的错误,即测试结果为由非待测试软件引起的错误,则确定测试结果不满足有效性条件。

步骤103,若存在任一次的测试结果不满足有效性条件,则对所述待测试软件重新进行测试,直至测试结果满足有效性条件。

例如,假设在软件测试过程中,测试结果为成功次数为a、失败次数为b、由待测试软件引起的错误次数为c;在软件测试未开始的初始状态下,a=b=c=0,在软件测试开始后,测试结果每出现一次成功,则a加1;测试结果每出现一次失败,则b加1;测试结果每出现一次错误,则c加1。当测试结果为由非待测试软件引起的错误时,a、b、c不变,重新进行测试。

步骤104,当满足有效性条件的测试结果的数目达到预设数目阈值时,停止测试并根据满足有效性条件的测试结果,判断所述待测试软件是否通过测试。

直到a+b+c的结果为预设数目阈值n时(进行了n次有效测试),测试结束。根据测试结果判断软件是否通过测试。

其中,n为大于或者等于1的数值;当对待测试软件进行测试的软件测试类型为稳定型测试(如功能性测试)时,该n值可以为最小值等于1的数值,即当测试结果为正确时,确定待测试软件通过测试,当测试结果为错误时,确定待测试软件不通过测试;当对待测试软件进行测试的软件测试类型为不稳定型测试时,该n值为大于1的数值。预设数目阈值n由人为设定,测试人员可以根据测试成本(如,时间成本,时间越紧张,n值设定越小)、测试精度要求(精度要求越高,n值设定越大)、系统稳定性要求(系统稳定性越高,n值设定越小)设定n值的大小。

具体的,可以根据通过率来判断软件是否通过测试。在本发明实施例中,所述步骤104可以包括如下子步骤:

子步骤s21,分别统计测试结果为成功的次数、测试结果为失败的次数,以及测试结果为由待测试软件引起的错误的次数。

子步骤s22,根据所述测试结果为成功的次数、所述测试结果为失败的次数,以及所述测试结果为由待测试软件引起的错误的次数计算通过率。

子步骤s23,若通过率大于预设通过率阈值,则确定所述待测试软件通过测试。

子步骤s24,若通过率小于或等于所述预设通过率阈值,则确定所述待测试软件不通过测试。

例如,假设测试结果为成功次数为a、失败次数为b、由待测试软件引起的错误次数为c,总的有效测试的次数为n(n=a+b+c),则通过率为a/n*100%。

其中,上述预设通过率阈值为根据具体测试场景预先设置的值。

在本发明实施例中,在对软件进行测试时,对软件的测试结果进行有效性判断。若测试结果不满足有效性条件,则重新进行测试,直到测试结果满足有效性条件。根据满足有效性条件的测试结果,判断软件是否通过测试。本发明实施例,由于除了待测试软件引起的结果之外产生的结果,包括由不稳定系统导致的错误,因此,将不稳定系统导致的测试结果确定为不满足有效性条件的测试结果,仅针对满足有效性条件的测试结果,判断软件是否通过测试,可以有效消除在不稳定系统中对软件进行测试时,由非软件引起的不稳定因素对测试结果的影响。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图2,示出了本发明的一种软件测试装置实施例的结构框图,具体可以包括如下模块:

测试模块201,用于对待测试软件进行至少一次的测试;

有效判断模块202,用于获取每次测试的测试结果,并判断所述测试结果是否满足有效性条件;其中,所述有效性条件是指预先设定的用于判定测试结果为有效结果的条件,所述有效结果是指由待测试软件引起的结果;

重测模块203,用于若存在任一次的测试结果不满足有效性条件,则对所述待测试软件重新进行测试,直至测试结果满足有效性条件;

通过判断模块204,用于当满足有效性条件的测试结果的数目达到预设数目阈值时,停止测试并根据满足有效性条件的测试结果,判断所述待测试软件是否通过测试。

在本发明实施例中,所述测试结果可以包括:成功、失败和错误;所述有效判断模块202可以包括:

第一有效确定子模块,用于若所述测试结果为成功或失败,则确定所述测试结果满足有效性条件;

错误判断子模块,用于若所述测试结果为错误,则判断所述测试结果是否属于由软件引起的错误;

第二有效确定子模块,用于若所述测试结果属于由待测试软件引起的错误,则确定测试结果满足有效性条件;

第三有效确定子模块,用于若所述测试结果不属于由待测试软件引起的错误,则确定测试结果不满足有效性条件。

在本发明实施例中,所述错误判断子模块可以包括:

错误判断单元,用于判断所述测试结果是否属于第一错误列表中包含的错误或属于第二错误列表中包含的的错误;所述第一错误列表中记录有由待测试软件引起的错误,所述第二错误列表中记录有由非待测试软件引起的错误;

第一错误确定单元,用于若所述测试结果是属于第一错误列表中包含的错误,则确定所述测试结果为由待测试软件引起的错误;

第二错误确定单元,用于若所述测试结果是属于第二错误列表中包含的错误,则确定所述测试结果为由非待测试软件引起的错误。

在本发明实施例中,所述错误判断子模块还可以包括:

通知生成单元,用于若所述测试结果不属于第一错误列表中包含的错误或第二错误列表中包含的错误,则生成判断通知消息;

判断结果接收单元,用于接收针对所述判断通知消息返回的判断结果;

错误添加单元,用于依据所述判断结果,将所述测试结果所表征的错误添加到所述第一错误列表中或所述第二错误列表中。

在本发明实施例中,所述通过判断模块204可以包括:

次数统计子模块,用于分别统计测试结果为成功的次数、测试结果为失败的次数,以及测试结果为由待测试软件引起的错误的次数;

通过率计算子模块,用于根据所述测试结果为成功的次数、所述测试结果为失败的次数,以及所述测试结果为由待测试软件引起的错误的次数计算通过率;

通过确定子模块,用于若所述通过率大于预设通过率阈值,则确定所述待测试软件通过测试;

不通过确定子模块,用于若所述通过率小于或等于所述预设通过率阈值,则确定所述待测试软件不通过测试。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种装置,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行本发明实施例所述的方法。

本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行本发明实施例所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种软件测试方法和一种软件测试装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1