本发明涉及一种软件测试方法,属于软件测试技术领域。
背景技术:
软件测试的目的就是要在规定的条件下对程序进行操作,以便发现错误,同时对软件质量进行评估,软件测试不仅仅是对程序的测试,整个测试范围应该包括软件形成过程的文档、数据、服务以及程序。为了最大程度地保证软件产品的质量,需要在软件开发的每个阶段都进行相应的测试,完整的软件测试应该贯穿软件产品的整个生命周期。
目前,在对开发软件进行测试时,通常需要快速定位软件存在的缺陷和问题,以提高测试效率。现有的测试系统通常采用的问题定位方法是程序运行日志。通过程序运行日志记录程序运行过程中每个关键步骤的运行结果信息。当系统出现故障后,可以跟进程序运行日志进行分析,进而找到问题的原因所在;上述通过系统运行日志的做法,虽然可以记录系统运行问题信息,并可以帮助程序员根据运行日志找到问题的根本原因。但是,对于复杂的系统,由于涉及到的模块越多,运行时间越长,运行中产生的日志量就越大。当出现问题后,从大量日志中分析查找提取核心数据,并识别问题根本原因的成本和时间都会很高,同时由于分析范围比较大,无法对信息数据进行分类,导致问题分析不够精细化,降低软件测试准确度。
技术实现要素:
为了解决上述技术问题,本发明提供了一种软件测试方法。
为了达到上述目的,本发明所采用的技术方案是:
一种软件测试方法,包括以下步骤,
提取测试软件的特征信息;
对特征信息进行分类;
根据各特征信息,提取可能导致软件故障的因素,使用召回率、精确度和准确率进行量化;
根据量化结果,选取概率最高的进行测试软故障定位。
提取测试软件特征信息的过程为,
在程序编程接口api中选择出用于提取特征信息的api,得到特征api集合;
统计测试软件对特征api集合中每个api的调用次数,得到该软件的api信息;
将api信息分为失效的信息和通过的信息,剔除失效的信息,得到测试软件的形式化描述信息;
对形式化描述信息依次进行归一化和二进制处理,得到测试软件的二进制特征信息。
将形式化描述信息归一化在0~1之间。
特征信息分类的过程为,
计算特征信息与样本特征信息的相似度;
确定最大相似度所对应的样本特征信息所属的类别,该类别即为测试软件特征信息所对应的类别。
提取出若干组可能导致软件故障的因素,每组均使用召回率、精确度和准确率进行量化,概率最高的一组即为该特征信息对应的故障因素。
所有特征信息对应的故障因素之和即为该测试软件故障因素。
本发明所达到的有益效果:本发明采用的测试方法操作简单,能够实现对软件问题的准确分类和定位,测试效率高,便于技术人员技术修复软件问题。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,一种软件测试方法,包括以下步骤:
步骤1,提取测试软件的特征信息。
提取测试软件特征信息的过程为:
11)在程序编程接口api中选择出用于提取特征信息的api,得到特征api集合;
12)统计测试软件对特征api集合中每个api的调用次数,得到该软件的api信息;
13)将api信息分为失效的信息和通过的信息,剔除失效的信息,得到测试软件的形式化描述信息;
14)对形式化描述信息依次进行归一化和二进制处理,得到测试软件的二进制特征信息;其中形式化描述信息归一化在0~1之间。
其中,api需要满足条件:属于操作系统平台提供的官方sdk,并且具有不可拆解性和不可替换性,不可拆解性是指api无法拆解成多个api的组合,不可替换性是指api的功能无法由其他api来替换实现。利用上述条件选择出来的api可以准确表征应用软件的语义特征,从而便于后续的快速分类、检索。
步骤2,对特征信息进行分类。
特征信息分类的过程为:
21)计算特征信息与样本特征信息的相似度;
23)确定最大相似度所对应的样本特征信息所属的类别,该类别即为测试软件特征信息所对应的类别。
步骤3,根据各特征信息,提取可能导致软件故障的因素,使用召回率、精确度和准确率进行量化。
步骤4,根据量化结果,选取概率最高的进行测试软故障定位。
提取出若干组可能导致软件故障的因素,每组均使用召回率、精确度和准确率进行量化,概率最高的一组即为该特征信息对应的故障因素,所有特征信息对应的故障因素之和即为该测试软件故障因素。其中,准确率:预测正确的样本数与总样本数的比值;精确度:预测为故障的因素且正确预测到他们的样本数,与所有预测为故障的样本数的比值;召回率:预测为故障的因素且正确预测到他们的样本数,与所有真实为故障因素的样本数的比值。
上述采用的测试方法操作简单,能够实现对软件问题的准确分类和定位,测试效率高,便于技术人员技术修复软件问题。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。