本发明涉及软件测试技术领域,具体涉及一种基于系统特征状态的软件测试充分性度量方法。
背景技术:
在开展系统级测试时,现有标准和指南中缺乏具体工程实施规范,缺乏定量的工程可行的测试充分性准则,导致测试人员在实施系统级测试时得不到明确的指导与规约,测试实施完全依赖于系统软件需求文档的质量和粒度,测试充分性无法得到保障。
技术实现要素:
(一)要解决的技术问题
本发明要解决的技术问题是:如何提出一种基于系统特征状态的系统级软件测试充分性度量方法,以评价及促进系统级测试的充分性。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于系统特征状态的软件测试充分性度量方法,包括以下步骤:
第一步:系统应用层协议实时数据采集能力评估
首先确定被测系统的范围及组成,分析各组成部分之间的交互关系,确定之间的通信方式,评估系统组成之间的通迅能否实时进行数据采集或采取其他技术手段获取通信协议数据;
第二步:系统应用层协议的建模与量化分析
使用通用的通讯字描述语言,对系统应用层协议进行描述,计算通信协议字段取值的总数,即系统特征状态的总数,一个通信协议字段为一个特征,一个特征下的一个状态为通信协议字段取值;
第三步:系统特征状态的权重剖面确定
其中,对系统的特征和状态给出权重值的定义,具体方法是在等值分布的基础上,进行针对性地调整;
第四步:生成采集数据的解析程序
依据通讯字描述语言的建模结果,生成用于解析实时采集通信协议数据的解析程序;
用通讯字描述语言把自然语言描述的通讯协议转义成形式化的文本文件,对形式化的通讯协议进行翻译,生成一个可执行程序,用于把采集到的通讯协议数据解析成特征状态覆盖情况;
第五步:进行系统测试验证,收集采集数据
采集数据以时间顺序进行收集并标识;
第六步:对采集数据分析,确认系统测试正常
如果确认系统测试不正常,即测试实际结果与预期结果不一致,有三种处理方式:
(1)剔除不正常的采集数据,继续;
(2)除剔除不正常的采集数据之外,还与不正常采集数据相关的特征状态均清理为未验证;
(3)废弃之前的所有采集数据,重新统计;
第七步:对采集数据进行ksac指标评估
如果ksac指标满足要求,则系统测试结束;
如果ksac指标未满足要求,则生成尚未验证的特征状态清单,继续系统测试;
其中:
系统的nc个特征:ci,i=1,2,…,nc
特征ci的ni个特征:si,j,j=1,2,…,ni
特征ci的权重:αi,αi≥0
特征ci的状态si,j的权重:βi,j,βi,j≥0,
特征ci的状态si,j的是否覆盖的标志:
关键特征状态累计覆盖率:
第八步:针对尚未验证的特征状态,补充新的测试用例
依据尚未验证的特征状态清单,以权重大者为优先,补充进行针对性的测试;
第九步:对补充的采集数据进行ksac指标评估
如果ksac指标满足要求,则系统测试结束;
如果ksac指标未满足要求,则生成尚未验证的特征状态清单,返回第五步,直至已达规定的终止时间或规定的重复次数,系统测试结束。
优选地,还包括第十步:形成系统测试报告,给出ksac指标评价,如果第六步中采取的是第三种处理方式,则给出的ksac指标称为无故障运行达到的ksac指标。
优选地,第二步中,将特征状态分为离散型的特征状态和连续型的特征状态:
(1)离散型的特征状态:属于命令或状态字段,其状态表现为该字段的各种取值;
(2)连续型的特征状态:属于数值量的字段,其状态表现为该数值量的取值区间。
优选地,采集到的通讯协议数据为二进制数据。
优选地,第五步中,以采集数据的采集时间为唯一标识。
(三)有益效果
相比于传统系统测试,本发明具有以下的优势:
(1)客观可定量。可以定量的评估系统测试充分性,并指导如何提高测试充分性。
(2)工程可操作性强。只要获取到系统之间的通讯协议格式,并能够采集到通讯数据,就可以采用此方法指导开展系统级测试,方法的使用对系统的复杂性程度不敏感,可以支持大型复杂系统的测试。
(3)可观测性强。此方法可以直观指示出哪些软件的关键特征状态没有被覆盖。
(4)支持多级别测试覆盖率统计。类比于白盒测试中的语句覆盖、分支覆盖、路径覆盖,该方法可以定义为特征状态覆盖、特征状态组合覆盖等多级别的测试覆盖率统计,适应不同安全可靠要求的系统测试终止条件。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合实施例,对本发明的具体实施方式作进一步详细描述。
本发明提供的一种基于系统特征状态的软件测试充分性度量方法,包括以下步骤:
第一步:系统应用层协议实时数据采集能力评估
当系统具备应用层协议实时数据采集的基本能力时,量化评价的系统测试才具备开展的条件。因此,首先要确定被测系统的范围及组成,分析各组成部分之间的交互关系,明确之间的通信方式,评估系统组成之间的通迅能否实时进行数据采集或采取其他技术手段获取通信协议数据。
第二步:系统应用层协议的建模与量化分析
使用通用的通讯字描述语言,对系统应用层协议进行描述,计算通信协议字段取值的总数,即系统特征状态的总数。一个通信协议字段为一个特征,一个特征下的一个状态为通信协议字段取值;
特征状态一般分为离散型的特征状态和连续型的特征状态:
(1)离散型的特征状态:通常属于命令或状态字段,其状态表现为该字段的各种取值,例如:
表1xxx系统向xxxxxx发送的报文
(2)连续型的特征状态:通常属于数值量的字段,其状态表现为该数值量的取值区间,例如:
表2
第三步:系统特征状态的权重剖面确定
对系统的特征和状态给出权重值的定义。通常在等值分布的基础上,进行针对性地调整。
例如:某特征权重剖面:不重要0.5,一般1.0,重要1.5,很重要2.0。例如:
表3
第四步:生成采集数据的解析程序
依据通讯字描述语言的建模结果,生成用于解析实时采集通信协议数据的解析程序。
用通讯字描述语言把自然语言描述的通讯协议转义成形式化的文本文件,开发一个专有程序,对形式化的通讯协议进行翻译,生成一个可执行程序,用于把采集到的通讯协议数据(二进制数据)解析成特征状态覆盖情况.
第五步:进行系统测试验证,收集采集数据
采集数据以时间顺序进行收集并标识,通常是以采集数据的采集时间为唯一标识。
第六步:对采集数据分析,确认系统测试正常
如果确认系统测试不正常(测试实际结果与预期结果不一致),三种处理方式:
(1)剔除不正常的采集数据,继续;(宽松)
(2)除剔除不正常的采集数据之外,还将与不正常采集数据相关的特征状态均清理为未验证;(较严)
(3)废弃之前的所有采集数据,重新统计。(最严)
第七步:对采集数据进行ksac指标评估
如果ksac指标满足要求,则系统测试结束;
如果ksac指标未满足要求,则生成尚未验证的特征状态清单,继续系统测试。
其中:
系统的nc个特征:ci,i=1,2,…,nc
特征ci的ni个特征:si,j,j=1,2,…,ni
特征ci的权重:αi,αi≥0
特征ci的状态si,j的权重:βi,j,βi,j≥0,
特征ci的状态si,j的是否覆盖的标志:
关键特征状态累计覆盖率:
第八步:针对尚未验证的特征状态,补充新的测试用例
依据尚未验证的特征状态清单,以权重大者为优先,补充进行针对性的测试。
第九步:对补充的采集数据进行ksac指标评估
如果ksac指标满足要求,则系统测试结束;
如果ksac指标未满足要求,则生成尚未验证的特征状态清单,返回第五步,直至已达规定的终止时间或规定的重复次数,系统测试结束。
第十步:形成系统测试报告,给出ksac指标评价
如果第六步中采取的是最严的处理方式,则给出的ksac指标称为:无故障运行达到的ksac指标。类似于硬件可靠性评估中的无故障运行时间。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。