一种软件测试方法、装置、计算设备及计算机存储介质
技术领域
本发明实施例涉及软件测试技术领域,特别是涉及一种软件测试方法、装置、计算设备及计算机存储介质。
背景技术
软件测试是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程,在规定的的条件下对软件程序进行操作,可以发现程序错误,进而衡量软件质量,并对其是否满足设计要求进行评估。目前主要的测试方法是将测试数据输入到软件程序中,得到一个测试结果,通过将测试结果和标签进行对比,总结出一个成功率。
本发明的发明人在实现本发明的过程中,发现:传统的测试方法中,测试数据时随机选取的,如果测试数据不全面,那么测试结果得出的成功率就是一个相对值,不能体现当前软件的优劣。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的软件测试的方法、装置、计算设备及计算机存储介质。
为解决上述技术问题,本发明实施例采用的一个技术方案是:提供一种软件测试的方法,包括确定影响所述软件达成目标功能的影响因素;为每一所述影响因素构建一测试实例集;分别向所述软件输入各所述影响因素对应的测试实例集,并使所述软件运行所述测试实例集;根据所述软件运行所述测试实例集的运行结果,计算所述各所述影响因素对所述软件达成目标功能的准确率;根据所述各所述影响因素的准确率,确定是否满足预设通过条件;若满足,则确定所述软件通过测试;否则,则确定所述软件没有通过测试。
可选的,所述计算所述各所述影响因素对所述软件达到目标功能的准确率,根据所述各所述影响因素的准确率,确定是否满足预设通过条件包括:根据所述各所述影响因素的准确率,计算所述软件的总准确率;判断所述总准确率是否大于预设标准值;若是,则确定满足预设通过条件;否则,则确定不满足预设通过条件。
可选的,所述根据所述各所述影响因素的准确率,计算所述软件的总准确率包括:据所述各所述影响因素的准确率,并且结合为各所述影响因素预设的权重,计算所述软件的总准确率。
可选的,所述计算所述软件的总准确率的计算公式如下:
其中,所述Accuracy为所述软件的的总准确率,所述accuracy(i)为第i个影响因素的准确率,所述weight(i)为第i个影响因素的权重,所述n为影响因素的总数。
本发明实施例采用的另一技术方案是提供一种软件测试装置,包括:第一确定模块:用于确定影响所述软件达成目标功能的影响因素;构建模块:用于为每一所述影响因素构建一测试实例集;输入模块:用于分别向所述软件输入各所述影响因素对应的测试实例集,并使所述软件运行所述测试实例集;计算模块:用于根据所述软件运行所述测试实例集的运行结果,计算所述各影响因素对所述软件达成目标功能的准确率;第二确定模块:用于根据所述各影响因素的准确率,确定是否满足预设通过条件;第三确定模块:用于当满足预设通过条件时,确定所述软件通过测试;第四确定模块:用于当不满足预设通过条件时,确定所述软件没有通过测试。
可选的,所述计算模块包括计算单元:用于根据所述各所述影响因素的准确率,计算所述软件的总准确率。
可选的,所述第二确定模块包括:判断单元:用于判断所述总准确率是否大于预设标准值;第一确定单元:用于当所述总准确率大于预设标准值时,确定满足预设通过条件;第二确定单元:用于当所述总准确率不大于预设标准值时,确定不满足预设通过条件。
可选的,所述计算单元用于根据所述各所述影响因素的准确率,计算所述软件的总准确率,计算公式如下:
其中,所述Accuracy为所述软件的的总准确率,所述accuracy(i)为第i个影响因素的准确率,所述weight(i)为第i个影响因素的权重,所述n为影响因素的总数。
本发明实施例采用的再一技术方案是提供一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如所述的一种软件测试的方法对应的操作。
本发明实施例采用的又一技术方案是提供一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行所述的一种软件测试的方法对应的操作。
本发明实施例的有益效果是:区别于现有技术的情况,本发明实施例通过分析待测试软件达成目标功能的影响因素,对每一个因素构建一个测试实例集,使测试实例集更加全面的包括所述软件设计功能的各个影响因素,从而使软件测试结果更加可靠。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施例。
附图说明
通过阅读下文优选实施例的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例的一种软件测试的方法流程图;
图2是本发明实施例的一种软件测试的方法中植物颜色决策树的结构示意图;
图3是本发明实施例的一种软件测试的方法中计算准确率的流程图;
图4是本发明实施例的一种软件测试装置的功能框图;
图5是本发明实施例的一种计算设备的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1为本发明一种软件测试的方法实施例的流程图。如图1所示,该方法包括以下步骤:
步骤S101:确定影响所述软件达成目标功能的影响因素。
在本步骤中,所述软件达成的目标功能即所述软件设计的目的,例如:如果该软件为物体识别软件,则该物体识别软件所要达成的目标功能为正确物体识别,所述影响因素是指对软件达成目标功能有影响的因素,在一些实施例中,可以基于软件的目标功能出发,查找影响因素,以物体识别软件为例,所述目标功能即正确识别测试物体,影响正确识别物体的影响因素包括:物体的形状、高度、颜色等物体的特征。
步骤S102:为每一所述影响因素构建一测试实施例。
在识别出影响因素之后,对于每一个影响因素构建一个决策树,所有影响因素对应的决策树构成决策树群,在对软件进行测试时,需要遍历决策树群中所有决策树,以全面地软件进行测试。此外,在为每一个影响因素构建一个决策树之后,还可以通过所述决策树分析与所述影响因素关联的因素,然后基于所述决策树构建测试实例,从而可以为该影响因素的准备更为全面测试实例,以更准确地检测该软件的通过率。以物体识别软件为例,假设待识别物体为某一特定植物,所述植物的特征包括植物颜色、叶片形状、叶片纹理、植株大小及花朵形状,对所述每一个特征构建一个决策树,如,植物颜色这一特征的表现形式为绿色和黄色,需要说明,植物在不同季节颜色表现形式不同,针对所述植物颜色构建决策树时,以植物颜色作为决策点,以植物颜色的不同表现形式作为状态节点,与植物标签对比结果作为结果节点,图2示出了植物颜色决策树的结构示意图,如图2所示,状态节点包含了绿色、黄色、红色、绿色等颜色,根据所述状态节点判断结果,如,状态节点的状态为绿色、黄色时,判断结果为是待识别的植物。根据状态节点的状态,分别选取若干个测试实例集,如,绿色、黄色、红色植物分别选取10个测试样例,同样的,针对其他特征,同样构建决策树,如,待测试植物的叶片形状表现为圆形或椭圆形时,应该识别为待识别植物,在别的植物中,叶片形状可能为三角形,针对圆形叶片、椭圆形叶片、三角形叶片分别选取测试样例。
在一个实施例中,针对每一个特征中的测试样例,在进行选取时,只有当前特征表现形式不同,其他特征表现形式均相同。如,当前选取的10个绿色植物和10个黄色植物,除了颜色不同外,其余的特征,如叶片形状、叶片纹理等均相同。在这种实施方式下,可以针对性的找到待测试软件中待改进的功能点。
在一个实施例中,将不同特征的表现形式进行组合,如,颜色特征中的绿色,分别与叶片形状的圆形、椭圆形及三角形进行组合,构建新的测试实例。在这种实施方式下,针对不同的特征,可以找到待测试软件中待改进的功能点。
步骤S103:分别向所述软件输入各所述影响因素对应的测试实例集,并使所述软件运行所述测试实例集。
测试实例集包括若干个测试实例,同一测试实例集中的若干个测试实例均可选为不同的测试实例,以对该该影响因素进行各个方面的测试。
步骤S104:根据所述软件运行所述测试实例集的运行结果,计算所述各所述影响因素对所述软件达成目标功能的准确率。
在一些实施例中,测试实例集中各个测试实例可以预先标注结果,在软件运行完测试实施例之后,可以直接根据标注结果判断软件的运行结果是否准确。
在一些实施例中,如图3所示,计算所述准确率包括以下步骤:
步骤S1041:根据所述各所述影响因素的准确率,计算所述软件的总准确率。
在本步骤中,根据所述各所述根据所述各所述影响因素的准确率,并且结合为各所述影响因素预设的权重,计算所述软件的总准确率,具体计算公式如下:
其中,所述Accuracy为所述软件的的总准确率,所述accuracy(i)为第i个影响因素的准确率,所述weight(i)为第i个影响因素的权重,所述n为影响因素的总数。
例如,在识别植物的软件中,选取的特征为植物颜色、叶片形状和叶片纹理三个特征,则n=3,各个特征选取的测试样例为各100个,其中,以颜色这一特征作为区别特征,识别正确的有95个,叶片形状作为区别特征时,识别正确的为80个,叶片纹理作为区别特征时,识别正确的为10个,那么,三个特征的测试准确率分别为:植物颜色accuracy(1)=95%,叶片形状accuracy(2)=80%,叶片纹理accuracy(3)=10%,三个特征预设权重分别为weight(1)=40%、weight(2)=30%、weight(3)=30%,那么,总识别率为:
Accuracy=accuracy(1)·weight(1)+accuracy(2)·weight(2)+accuracy(3)·weight(3)=95%·40%+80%·30%+10%·30%=65%,即认为识别结果有65%的概率为所述待识别植物。
值得说明的是,所述预设权重是由测试方案制定人员设定,再经过研发人员和测试人员讨论之后商定的,根据不同的测试目标,所述权重也有所不同。
步骤S1042:判断所述总准确率是否大于预设标准值,若是,执行步骤S1043,若否,执行步骤S1044。
在本步骤中,所述预设标准是由方案制定人员、研发人员和测试人员等软件开发参与部门结合软件测试标准共同商议决定的。
步骤S1043:确定满足预设通过条件。
步骤S1044:确定不满足预设通过条件。
步骤S105:根据所述各所述影响因素的准确率,确定是否满足预设通过条件,若满足,执行步骤S106,若不满足,执行步骤S107。
在本步骤中,将所述总准确率与所述预设标准进行对比,若所述总准确率大于或等于所述预设标准,则认为满足预设通过条件,若所述总准确率小于所述预设标准,则认为不满足预设通过条件。如,预设标准设定为90%,在上一步骤中,计算得到的总准确率为65%,则认为不满足预设通过条件。
步骤S106:确定所述软件通过测试。
在本步骤中,若所述测试软件通过测试,则向研发部门返回测试结果。
步骤S107:确定所述软件没有通过测试。
在本步骤中,若所述软件没有通过测试,则向所述研发部门返回测试结果,并结合测试实例集中每一个影响因素的测试结果,指明软件针对特定影响因素的待改进点。
本发明实施方式的有益效果为:通过分析待测试软件达成目标功能的影响因素,对每一个因素构建一个测试实例集,从而使得测试实例集可以更加全面的包括所述软件设计功能的各个影响因素,使得软件测试结果更加可靠。
图4为本发明一种软件测试装置功能框图,如图4所示,所述软件测试装置包括:第一确定模块401、构建模块402、输入模块403、计算模块404、第二确定模块405、第三确定模块406及第四确定模块407。其中,第一确定模块401,用于确定影响所述软件达成目标功能的影响因素;构建模块401,用于为每一所述影响因素构建一测试实例集;输入模块403,用于分别向所述软件输入各所述影响因素对应的测试实例集,并使所述软件运行所述测试实例集;计算模块404,用于根据所述软件运行所述测试实例集的运行结果,计算所述各影响因素对所述软件达成目标功能的准确率;第二确定模块405,用于根据所述各影响因素的准确率,确定是否满足预设通过条件;第三确定模块406,用于当满足预设通过条件时,确定所述软件通过测试;第四确定模块407,用于当不满足预设通过条件时,确定所述软件没有通过测试。
其中,所述计算模块404包括计算单元4041,用于根据所述各所述影响因素的准确率,计算所述软件的总准确率;所述第二确定模块405包括:判断单元4051、第一确定单元4052及第二确定单元4053,其中,所述判断单元4051,用于判断所述总准确率是否大于预设标准值;第一确定单元4042用于当所述总准确率大于预设标准值时,确定满足预设通过条件;第二确定单元4043,用于当所述总准确率不大于预设标准值时,确定不满足预设通过条件。
其中,所述计算单元4041用于根据所述各所述影响因素的准确率,计算所述软件的总准确率,计算公式如下:
其中,所述Accuracy为所述软件的的总准确率,所述accuracy(i)为第i个影响因素的准确率,所述weight(i)为第i个影响因素的权重,所述n为影响因素的总数。
本发明实施方式与上一实施方式相对应,每一个模块、单元的具体功能及执行方式可以参照上一实施方式,在此不再赘述。
本发明实施方式的有益效果为:通过确定模块确定待测试软件达成目标功能的影响因素,构建模块对每一个因素构建一个测试实例集,从而使得测试实例集可以更加全面的包括所述软件设计功能的各个影响因素,使得软件测试结果更加可靠。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的软件测试的方法。
图5为本发明计算设备实施例的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述软件测试的方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
确定影响所述软件达成目标功能的影响因素;
为每一所述影响因素构建一测试实例集;
分别向所述软件输入各所述影响因素对应的测试实例集,并使所述软件运行所述测试实例集;
根据所述软件运行所述测试实例集的运行结果,计算所述各所述影响因素对所述软件达成目标功能的准确率;
根据所述各所述影响因素的准确率,确定是否满足预设通过条件;
若满足,则确定所述软件通过测试;
否则,则确定所述软件没有通过测试。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
根据所述各所述影响因素的准确率,计算所述软件的总准确率;
判断所述总准确率是否大于预设标准值;
若是,则确定满足预设通过条件;
否则,则确定不满足预设通过条件。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行以下操作:根据所述各所述影响因素的准确率,并且结合为各所述影响因素预设的权重,计算所述软件的总准确率。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行计算所述软件的总准确率的计算公式如下:
其中,所述Accuracy为所述软件的的总准确率,所述accuracy(i)为第i个影响因素的准确率,所述weight(i)为第i个影响因素的权重,所述n为影响因素的总数。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施例的权利要求书由此明确地并入该具体实施例,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的软件测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。