一种软件测试方法及其装置
技术领域
本发明涉及软件测试技术领域,具体的涉及一种软件测试方法及其装置。
背景技术
现有的获得软件可靠性评估的方法要求运用专门的技术——基于操作剖面的可靠性测试技术(或称基于统计测试、基于净室工程测试等)获得软件的失效数据,利用软件失效数据在已有可靠性模型的基础上获得可靠性评估结果。但这种可靠性评估方法存在理论上的缺陷,限制了其在工程实际中的广泛应用。
一方面,随着软件规模和复杂性的提高,构造操作剖面是非常困难的;对于安全关键软件来说,需要的测试用例数量远远超过了现实可行的范围,实施可靠性测试是很困难的;由于软件测试过程中会出现扰动,导致可靠性评估和预测结果会偏于乐观。因此软件可靠性测试具有时间长、费用高、资源消耗大的特点,从而难以满足工程型号的进度和成本要求,软件可靠性测试没有在工程实践中真正的开展开来。另一方面,企业对可靠性要求很高的软件大多数都必须进行软件的系统测试或者是为了增加缺陷揭错率而进行的软件测试。而可靠性测试与这种以揭错为目的的软件测试是截然不同的两个过程,二者之间没有必然联系,导致软件测试资源的极大浪费。但开发者和用户在没有进行可靠性测试的情况下往往也想知道软件当前的可靠性水平。
因此,在这样的背景下,如何确定满足以揭错为目的的软件测试和可靠性评估之间的关系,达到合并揭错与可靠性评估的目的,成为亟待解决的问题。
发明内容
本发明提供一种软件测试方法及其装置,用以确定满足以揭错为目的的软件测试和可靠性评估之间的关系。
为了实现上述目的,本发明实施例提供了一种软件测试方法,包括:
设定一测试程序;
对所述一测试程序分别进行揭错测试和可靠性测试,得到缺陷失效后对应的L组测试失效数据,所述测试失效数据包括揭错测试过程信息及对应的程序失效率,L为大于等于1的正整数;
根据L组测试失效数据,确定用于指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程。
进一步地,所述揭错测试过程信息为M维数据,M为正整数,包括以下参数的一种或任意组合:
累计用例数;发现缺陷数;缺陷发现率;语句覆盖率;函数覆盖率;分支覆盖率。
进一步地,所述根据L组测试数据,确定用于指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程,包括:
将M维的揭错测试过程信息降维为一维的主成份变量,获得主成份变量与所述揭错测试过程信息之间的降维关系式;所述测试失效数据中的揭错测试过程信息为所述揭错测试过程信息降维后的主成份变量;
对L组主成份变量和对应的程序失效率进行曲线拟合,获得主成份变量与程序失效率之间的映射关系;
对所述降维关系式以及所述主成份变量与程序失效率之间的映射关系进行验证,并在验证通过后将所述主成份变量与程序失效率之间的映射关系作为所述约束方程。
进一步地,所述对所述降维关系式进行验证,包括:
获取N个相邻的揭错测试过程信息,并将所述N个相邻的揭错测试过程信息代入所述降维关系式获得N组降维系数,其中N为大于1的正整数;
根据N组降维系数确定N-1组降维系数差值,每组降维系数差值为相邻的两组降维系数之间的差值;
对所述N-1组降维系数差值进行曲线拟合,获得降维系数差值拟合曲线;
判断所述降维系数差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述程序失效率之间的映射关系验证通过。
进一步地,所述主成份变量与所述程序失效率之间的映射关系进行验证,包括:
根据所述主成份变量与所程序失效率之间的映射关系确定K个预测失效数据,其中K为大于1的正整数;
确定所述K个预测失效数据对应的K个程序失效率,所述程序失效率通过可靠性测试得到的;
根据所述K个预测失效数据以及所述K个预测失效数据对应的K个程序失效率,确定K个程序失效率误差值,每个程序失效率误差值为一个预测失效数据与该预测失效数据对应的程序失效率之间的差值;
将所述K个程序失效率误差值进行曲线拟合,获得程序失效率误差值拟合曲线;
判断所述程序失效率误差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述程序失效率之间的映射关系验证通过。
相应地,本发明实施例提供了一种软件测试装置,包括:
获取模块,用于设定一测试程序;
对所述一测试程序分别进行揭错测试和可靠性测试,得到缺陷失效后对应的L组测试失效数据,所述测试失效数据包括揭错测试过程信息及对应的程序失效率,L为大于等于1的正整数;
确定模块,用于根据L组测试失效数据,确定用于指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程。
进一步地,所述获取模块具体用于:
所述揭错测试过程信息为M维数据,M为正整数,包括以下参数的一种或任意组合:
累计用例数;发现缺陷数;缺陷发现率;语句覆盖率;函数覆盖率;分支覆盖率。
进一步地,所述确定模块具体用于:
将M维的揭错测试过程信息降维为一维的主成份变量,获得主成份变量与所述揭错测试过程信息之间的降维关系式;所述测试失效数据中的揭错测试过程信息为所述揭错测试过程信息降维后的主成份变量;
对L组主成份变量和对应的程序失效率进行曲线拟合,获得主成份变量与程序失效率之间的映射关系;
对所述降维关系式以及所述主成份变量与程序失效率之间的映射关系进行验证,并在验证通过后将所述主成份变量与程序失效率之间的映射关系作为所述约束方程。
进一步地,所述确定模块具体用于:
获取N个相邻的揭错测试过程信息,并将所述N个相邻的揭错测试过程信息代入所述降维关系式获得N组降维系数,其中N为大于1的正整数;
根据N组降维系数确定N-1组降维系数差值,每组降维系数差值为相邻的两组降维系数之间的差值;
对所述N-1组降维系数差值进行曲线拟合,获得降维系数差值拟合曲线;
判断所述降维系数差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述揭错测试过程信息之间的降维关系式验证通过。
进一步地,所述确定模块具体用于:
根据所述主成份变量与所述程序失效率之间的映射关系确定K个预测失效数据,其中K为大于1的正整数;
确定所述K个预测失效数据对应的K个程序失效率,所述程序失效率通过可靠性测试得到的;
根据所述K个预测失效数据以及所述K个预测失效数据对应的K个程序失效率,确定K个程序失效率误差值,每个程序失效率误差值为一个预测失效数据与该预测失效数据对应的程序失效率之间的差值;
将所述K个程序失效率误差值进行曲线拟合,获得程序失效率误差值拟合曲线;
判断所述程序失效率误差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述程序失效率之间的映射关系验证通过。
本发明实施例中,设定一测试程序;对所述一测试程序分别进行揭错测试和可靠性测试,得到缺陷失效后对应的L组测试失效数据,所述测试失效数据包括揭错测试过程信息及对应的程序失效率,L为大于等于1的正整数;根据L组测试失效数据,确定用于指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程,从而在以揭错为目的的软件测试中,确定揭错测试过程信息,根据指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程预测程序失效率,从而达到合并揭错和可靠性评估的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件测试方法的整体流程图;
图2为本发明实施例提供的一种软件测试方法流程图;
图3为现有技术中一种软件可靠性测试方法;
图4为现有技术中一种揭错软件测试方法;
图5为本发明实施提供的一种主成分变量与自变量揭错测试过程信息之间的降维关系式的验证方法流程图;
图6为本发明实施提供的一种因变量程序失效率与主成份变量之间的映射关系式的验证方法流程图;
图7为本发明实施例提供的一种软件测试装置的方框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了更好地解释本发明,下面使用具体的实施例对本发明进行说明,下述本发明实施例中用于进行以揭错为目的的软件测试和软件可靠性测试的程序如表1中所示,仅仅出于示例的目的,本发明的实施例不限于此,在其它的软件程序中同样可以实现下述实施例。
以表1中的7个变异版本程序中的totinfo变异版本程序作为实验程序,在totinfo标准程序的基础上通过修改程序中的一行代码播种缺陷,生成了如表1中对应的totinfo变异版本程序,每个变异版本程序都包含一个单一的缺陷。本发明实施例中,将totinfo变异版本程序分别进行揭错测试和可靠性测试。
表1实验程序基本特征
从图1所示的一种软件测试方法的整体流程图中可以看出,本发明实施例中,可靠性测试方法和揭错测试方法在进行测试之前必须满足两个约束条件,一方面是能够得到可靠性测试过程信息和揭错测试过程信息。例如,在针对性揭错测试过程中,根据黑盒软件测试方法,能够得到软件测试用例数,根据白盒软件测试方法,能够得到语句覆盖率、分支覆盖率、函数覆盖率等参数信息;在可靠性测试过程中,可靠性测试过程中得到的参数变量应该是与可靠性相关的变量,如程序失效率、平均故障间隔等,本发明实施例把缺陷作为揭错测试和可靠性测试的纽带,即可靠性测试过程要得到的信息必须与缺陷有关,因此本发明实施例选用程序失效率作为可靠性测试过程需要收集的与缺陷相关的信息,根据可靠性摸底测试能够得到可靠性测试过程中的程序失效率,即首先计算出每个缺陷在可靠性摸底测试过程中的缺陷失效率,然后用残余缺陷失效率之和计算程序失效率。
另一方面是可靠性测试方法和揭错测试方法在测试之前必须收集适量的失效数据,以供两个测试过程进行测试使用。例如,回归分析方法以及神经网络方法都需要较多的数据量,才能保证结果的可靠性;回归分析方法需要的数据量是根据自变量和因变量的变量数量来定的。一般来说,数据规模要超过变量数量的3至5倍,比如在测试过程中一共使用了3个变量,那么至少需要10个个案的数据进行软件测试分析。
实施例中,当满足以上两个约束条件之后,根据如图2所示的一种软件测试方法流程图进行揭错测试和可靠性测试。
例如,如图2所示的本发明实施例提供的一种软件测试方法流程图,该方法包括:
S201,设定一测试程序;对所述一测试程序分别进行揭错测试和可靠性测试,得到缺陷失效后对应的L组测试失效数据,所述测试失效数据包括揭错测试过程信息及对应的程序失效率;
S202,根据L组测试失效数据,确定用于指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程。
在S201中,针对测试失效数据进行图3所示的一种可靠性测试方法和图4所示的一种揭错测试方法,所述失效数据在可靠性测试过程中确定缺陷发生时对应的程序失效率,同时所述测试失效数据在揭错测试过程中确定揭错测试过程信息,所述揭错测试过程信息包括以下参数的一种或任意组合:累计用例数;发现缺陷数;缺陷发现率;语句覆盖率;函数覆盖率;分支覆盖率。
本发明实施例中,通过如图3所示的现有技术中的一种可靠性测试方法流程图,对表1中的7个变异版本程序进行可靠性测试,确定每个变异版本程序发现缺陷后的程序失效率。
例如,如图3所示的现有技术中的一种可靠性测试方法流程图,该方法包括:
S301,确定用于可靠性测试的变异版本程序及其对应的源程序,构造缺陷池N和用例池n,N和n分别为正整数;
S302,将用例池中的所有用例分别对变异版本程序及其对应的源程序进行可靠性测试,并记录测试结果;
S303,将变异版本程序的测试结果与其对应的源程序的测试结果进行比较,确定使变异版本程序与其对应的源程序测试结果不同的用例为失效数据;所述失效数据为使变异版本程序发生失效的用例;
S304,根据用例池n和失效数据,确定变异版本程序的缺陷失效率;
S305,根据变异版本程序的缺陷失效率,确定变异版本程序的程序失效率,所述程序失效率为变异版本程序剩余所有缺陷的缺陷失效率之和。
在S303中,失效数据为ni;
在S304中,缺陷失效率的计算公式为
在S305中,程序失效率的计算公式为
实施例中,如表1所示,将用例池的所有用例分别对totinfo变异版本程及其对应的源程序进行可靠性测试,其中,用例池为1052,缺陷池为23,假设用例1的测试结果为t1,若t1为1,则表示变异版本程序的测试结果与其对应的源程序的测试结果相同,若t1为0,则表示变异版本程序的测试结果与其对应的源程序的测试结果不同,同时确定使变异版本程序与其对应的源程序测试结果不同的用例为失效数据,假设用例1的测试结果t1为0时对应的失效数据为2,根据用例池1052和失效数据2,确定出totinfo变异版本程序的缺陷失效率为根据totinfo变异版本程序的缺陷失效率,确定totinfo变异版本程序的程序失效率,所述程序失效率为变异版本程序剩余所有缺陷的缺陷失效率之和,则有totinfo变异版本程序的程序失效率为
需要说明的是,本发明实施例的上述一种可靠性测试方法只是举例说明,并不局限于上述测试方法,其他能够进行软件可靠性测试的方法都适用本发明实施例。
本发明实施例中,通过如图4所示的现有技术中的一种揭错测试方法,对表1中的totinfo程序进行揭错测试,确定揭错测试过程信息。
例如,如图4所示的现有技术中的一种揭错测试方法流程图,该方法包括:
S401,根据揭错测试中的测试用例设计方法,确定揭错测试用例池;
S402,根据可靠性测试方法中确定的失效数据,确定揭错测试用例池的每个用例能发现的缺陷;
S403,根据每个用例能发现的缺陷,确定发现不重复缺陷所对应的失效数据;
S404,根据测试覆盖信息工具,编写脚本,执行所述发现不重复缺陷所对应的失效数据,确定揭错测试过程信息。
需要说明的是,本发明实施例的上述一种揭错测试方法只是举例说明,并不局限于上述测试方法,其他能够进行揭错测试的方法都适用本发明实施例。
需要说明的是,本发明实施例先进行上述的一种可靠性测试,而后进行上述的一种揭错测试,并不局限于上述先后顺序的测试过程,同时,本发明实施例亦可先进行上述的一种揭错测试,而后进行上述的一种可靠性测试。
实施例中,当确定可靠性测试方法过程的程序失效率和揭错测试方法的揭错测试过程信息后,对上述适量的失效数据进行数据预处理。数据预处理方法包括数据标准化、主成份分析、特异样本点的判定、数据归一化。例如,本发明实施例在数据处理中以程序失效率为因变量,以揭错测试过程确定的变量为自变量,其中所述的揭错测试过程信息为M维数据,M为正整数,包括以下参数的一种或任意组合:累计用例数;发现缺陷数;缺陷发现率;语句覆盖率;函数覆盖率;分支覆盖率,由于揭错测试过程确定的变量较多,拟采用主成份分析的方法对揭错测试过程确定的变量进行降维,得到主成份变量与揭错测试过程信息之间的降维关系式,然后进行非线性回归分析。在实际应用中,往往存在指标的量纲不同,所以在计算之前须先消除量纲的影响,而将原始数据标准化。
实施例中,对可靠性测试方法过程的程序失效率和揭错测试方法的揭错测试过程信息进行数据预处理之后,通过数据分析方法,分析两个测试过程的规律。其中,数据分析方法既包括传统经典的统计分析方法,如回归分析、因子分析等,又包括近年来迅速发展的基于机器学习的各种数据挖掘方法,如人工神经网络、支持向量机等。例如,以非线性回归分析中生成的主成份变量作为新自变量,程序失效率为因变量。采用曲线拟合方法得到主成份变量与因变量程序失效率之间的映射关系式。拟合模型为:线性、对数、倒数、二次、三次、复合、幂函数、S函数、指数分布、逆模型。
实施例中,对可靠性测试方法过程的程序失效率和揭错测试方法的揭错测试过程信息进行规律研究后,若不存在映射关系式,本领域技术人员不能直接作出以上两个测试过程不存在规律的结论。例如,对一个软件而言,如果采用支持向量机的数据分析方法所需的数据量为8,但是对8组数据进行规律研究没有发现规律,此时不能判定软件的两个测试过程不存在规律,因为可能需要对10组数据进行分析就能得到规律。因此,需要对收集测试数据进行规律研究的停止准则进行研究,因此可以把覆盖率作为一种停止准则,即覆盖率达到一定程度后,收集的两个测试过程数据仍然不存在规律,则停止测试,退出本发明实施例的测试方案。
在S202中,将M维的揭错测试过程信息降维为一维的主成份变量,获得主成份变量与揭错测试过程信息之间的降维关系式;所述测试失效数据中的揭错测试过程信息为所述揭错测试过程信息降维后的主成份变量;
对L组主成份变量和对应的程序失效率进行曲线拟合,获得主成份变量与程序失效率之间的映射关系;
对所述降维关系式以及所述主成份变量与程序失效率之间的映射关系进行验证,并在验证通过后将所述主成份变量与程序失效率之间的映射关系作为所述约束方程。
实施例中,可靠性测试方法过程的程序失效率和揭错测试方法的揭错测试过程信息确实存在统计规律时,由于,随着数据的增多或减少,无论是主成分变量与自变量揭错测试过程信息之间的降维关系式还是因变量程序失效率与主成份变量之间的映射关系式都是变化的,因此,需要对上述确定的降维关系式和映射关系式进行结果验证和关系式的确定。
图5为本发明实施例中主成分变量与自变量揭错测试过程信息之间的降维关系式的验证方法流程图,该方法包括:
S501,获取N个相邻的揭错测试过程信息,并将所述N个相邻的揭错测试过程信息代入所述降维关系式获得N组降维系数,其中N为大于1的正整数;
S502,根据N组降维系数确定N-1组降维系数差值,每组降维系数差值为相邻的两组降维系数之间的差值;
S503,对所述N-1组降维系数差值进行曲线拟合,获得降维系数差值拟合曲线;
S504,判断所述降维系数差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述程序失效率之间的映射关系验证通过。
需要说明的是,本发明实施例的上述主成分变量与自变量揭错测试过程信息之间的降维关系式的验证方法只是举例说明,并不局限于上述验证方法,其他能够进行降维关系式验证方法都适用本发明实施例。
图6为本发明实施例中因变量程序失效率与主成份变量之间的映射关系式的验证方法流程图,该方法包括:
S601,根据所述主成份变量与所述程序失效率之间的映射关系确定K个预测失效数据,其中K为大于1的正整数;
S602,确定所述K个预测失效数据对应的K个程序失效率,所述程序失效率通过可靠性测试得到的;
S603,根据所述K个预测失效数据以及所述K个预测失效数据对应的K个程序失效率,确定K个程序失效率误差值,每个程序失效率误差值为一个预测失效数据与该预测失效数据对应的程序失效率之间的差值;
S604,将所述K个程序失效率误差值进行曲线拟合,获得程序失效率误差值拟合曲线;
S605,判断所述程序失效率误差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述程序失效率之间的映射关系验证通过。
需要说明的是,本发明实施例的上述因变量程序失效率与主成份变量之间的映射关系式的验证方法只是举例说明,并不局限于上述验证方法,其他能够进行映射关系式的验证方法都适用本发明实施例。
实施例中,通过对上述验证方法的规律研究,得到表1中的totinfo变异版本程序中的可靠性测试过程的程序失效率与揭错测试过程确定的揭错测试过程信息存在统计规律。例如,假设用户在设定误差0.1的情况下,存在24组失效数据满足可靠性测试和揭错测试。首先,采用SPSS软件对这24组失效数据进行主成份分析得到标准化后的数据,具体的揭错测试的揭错测试过程信息为:用例数记为X1,语句覆盖记为X2,函数覆盖记为X3,分支覆盖记为X4,发现缺陷记为X5,缺陷发现率记为X6。则得到主成份变量Z与揭错测试过程信息之间的降维关系式为公式(1):
Z=0.3915976*X1+0.4027479*X2+
0.3826774*X3+0.4286166*X4+
0.4205884*X5+0.4205884*X6 (1)
然后对上述降维关系式进行非线性回归分析,三次函数拟合效果最好。其中,用可决系数表示回归函数与观察所得数据的拟合程度,一般认为可决系数大于0.85才能说明自变量能很好地预测因变量,本发明实施例中所得的可决参数R2=0.956,拟合度远远高于0.85;其中,sig值用于检验整体回归模型显著性的标准当sig<0.05时,则表示整体回归模型达到显著性水平,本发明实施例中分析数据所得的sig=0.00<0.05,说明得到的模型达到显著性水平,能够用于预测。
例如,对表1中的totinfo变异版本程序的失效数据进行预测,确定失效数据1的程序失效率的预测值为Y1=0.461-0.145Z1-0.007Z1 2+0.001Z1 3,其中失效数据1的程序失效率的真实值Y1'为可靠性测试中一句公式得到的结果,确定totinfo变异版本程序的程序失效率误差值为△Y1;通过上述采用失效数据1确定totinfo变异版本程序的程序失效率误差值△Y1的方法,分别确定所述24组失效数据所确定的totinfo变异版本程序的程序失效率误差值△Y1、△Y2、△Y3、、、△Y24,并将所述24个程序失效率误差值△Y1、△Y2、△Y3、、、△Y24进行曲线拟合,得到程序失效率误差值拟合曲线,判断所述程序失效率误差值是否收敛,若是,则确定所述主成份变量与所述程序失效率之间的映射关系验证通过,则将通过验证的因变量程序失效率Y与主成份变量Z之间的映射关系式确定为约束方程,公式为(2):
Y=0.461-0.145Z-0.007Z2+0.001Z3 (2)
需要说明的是,本发明实施例通过上述表1中的totinfo变异版本程序确定的因变量程序失效率Y与主成份变量Z之间的约束方程只是举例说明,并不局限于上述表1中的totinfo变异版本程序,其他能够获得程序失效率误差值的变异版本程序都适用本发明实施例。
在确定可靠性测试过程中的程序失效率Y与揭错测试过程中的主成份变量Z之间的约束方程之后,按照上述确定变量信息的方法、步骤,确定揭错测试过程缺陷失效时的用例数、语句覆盖、分支覆盖、函数覆盖、发现缺陷数、缺陷发现率6个变量信息,运用上述约束方程模型预测程序失效率,由于程序失效率是可靠性的一个度量,因此运用上述模型可以进行可靠性评估与预计,从而达到了合并揭错和可靠性评估的目的。
本发明实施例,针对表1中的totinfo变异版本程序提出的合并揭错和可靠性测试技术进行应用,结果表明,揭错测试过程信息与可靠性测试过程信息程序失效率之间存在规律,因此,可以结合揭错测试进行可靠性评估,从而达到合并揭错和可靠性评估的目的。
基于相同的技术构思,本发明实施例还提供一种软件测试装置,该装置可执行上述方法实施例。本发明实施例提供的一种软件测试装置的方框图如图7所示。
本发明实施例提供的一种软件测试装置,包括:
获取模块701,用于设定一测试程序;
对所述一测试程序分别进行揭错测试和可靠性测试,得到一组测试失效数据,所述测试失效数据包括揭错测试过程信息及对应的程序失效率,L为大于等于1的正整数;
确定模块702,用于根据L组测试失效数据,确定用于指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程。
进一步地,确定获取具体用于:
所述揭错测试过程信息为M维数据,M为正整数,包括以下参数的一种或任意组合:
累计用例数;发现缺陷数;缺陷发现率;语句覆盖率;函数覆盖率;分支覆盖率。
进一步地,确定模块具体用于:
将M维的揭错测试过程信息降维为一维的主成份变量,获得主成份变量与所述揭错测试过程信息之间的降维关系式;所述测试数据中的揭错测试过程信息为所述揭错测试过程信息降维后的主成份变量;
对L组主成份变量和对应的程序失效率进行曲线拟合,获得主成份变量与程序失效率之间的映射关系;
对所述降维关系式以及所述主成份变量与程序失效率之间的映射关系进行验证,并在验证通过后将所述主成份变量与程序失效率之间的映射关系作为所述约束方程。
进一步地,确定模块具体用于:
获取N个相邻的揭错测试过程信息,并将所述N个相邻的揭错测试过程信息代入所述降维关系式获得N组降维系数,其中N为大于1的正整数;
根据N组降维系数确定N-1组降维系数差值,每组降维系数差值为相邻的两组降维系数之间的差值;
对所述N-1组降维系数差值进行曲线拟合,获得降维系数差值拟合曲线;
判断所述降维系数差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述揭错测试过程信息之间的降维关系式验证通过。
进一步地,验证模块具体用于:
根据所述主成份变量与所述程序失效率之间的映射关系确定K个预测失效数据,其中K为大于1的正整数;
确定所述K个预测失效数据对应的K个程序失效率,所述程序失效率通过可靠性测试得到的;
根据所述K个预测失效数据以及所述K个预测失效数据对应的K个程序失效率,确定K个程序失效率误差值,每个程序失效率误差值为一个预测失效数据与该预测失效数据对应的程序失效率之间的差值;
将所述K个程序失效率误差值进行曲线拟合,获得程序失效率误差值拟合曲线;
判断所述程序失效率误差值拟合曲线是否收敛,若是,则确定所述主成份变量与所述程序失效率之间的映射关系验证通过。
本发明实施例中,设定一测试程序;对所述一测试程序分别进行揭错测试和可靠性测试,得到缺陷失效后对应的L组测试失效数据,所述测试失效数据包括揭错测试过程信息及对应的程序失效率,L为大于等于1的正整数;根据L组测试失效数据,确定用于指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程,从而在以揭错为目的的软件测试中,确定揭错测试过程信息,根据指示所述揭错测试过程信息与所述程序失效率之间关系的约束方程预测程序失效率,从而达到合并揭错和可靠性评估的目的。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。