APP下载

一种基于概念格的新型软件质量综合评价方法

2020-02-02彭致华王霞

电子技术与软件工程 2020年16期
关键词:概念分析单元测试软件测试

彭致华 王霞

(浙江海洋大学信息工程学院 浙江省舟山市 316022)

德国数学家Wille[1]于1982年提出的形式概念分析,在数据分析、知识发现、规则提取及软件工程等领域得到了广泛的应用。该理论是以形式背景的二元关系数据表为基础,从中探索得到各对象和属性之间存在的相互关系,为数据分析提供了一种强有利的工具。形式概念分析,也称作概念格,它的每个节点是一个形式概念,由外延和内涵两部分组成。概念格通过Hasse 图生动简洁地体现概念之间的泛化和例化关系[3]。

软件测试与软件开发类似,也是一项比较高强度和难度的工作。测试人员需要在不同时间段对不同类型的软件系统中不同阶段作出测试,从而能够对照客户需求发现其中存在的不足和问题。有实验研究表明,软件的规模越大,系统功能模块越复杂,会导致测试难度的加大,甚至会影响到最终测试质量[4]。在现阶段,软件测试具备的自动化条件还不够完备,虽然目前已经出现了一些软件自动化测试工具,但由于工具本身的可扩展性差、价格昂贵、操作复杂等原因,并未能得到很好的应用,软件测试仍然需要大量的人工介入。在软件测试相关领域中,国内很多学者也在不断探索各种有效的软件质量评价方法。廖锦舜[6]等人提出了一种基于模糊神经网络的软件质量评价方法,通过建立评价等级模糊集以及训练好的网络对软件质量进行评价。王欣[7]等人采用二元语义加权算子与三角模糊数的方法,通过加权集结最终得到软件质量的综合评价值。岳川[8]等人构造了一种基于群决策和投影测度的软件质量评价模型,该模型侧重于研究软件用户的需求,从需求这一角度分析软件质量概况。禹建丽[9]等人发掘了一种基于犹豫模糊集的软件质量评价模型,通过将犹豫模糊集与直觉模糊集组合的综合犹豫模糊评价矩阵,结合软件各质量属性得分,从而得出一个软件质量排序信息。

形式概念分析方法已经逐渐融入到软件工程这一学科,对象和属性之间所建立的二元关系经常出现在软件相关领域[5],对这种关系的处理方法也间接地推动了形式概念分析在软件测试等其它方面的应用。蒋平团队[10]通过结合形式概念分析方法对需求分析、结构设计以及系统设计阶段做出了深入探讨,发现了一群类所表现的共同或者重复的特征以及相关联性,从而可以更加合理地安排软件开发工作。但是,目前形式概念分析在软件测试阶段的研究较少,本文旨在探究一种基于形式概念分析的新型软件质量综合评价方法,通过构造概念格,将不同软件以及不同测试流程的结果信息综合体现,能够帮助测试人员鉴别质量较高以及质量较低的软件,从而得到一个软件综合评价体系。该方法相比较传统人工结合测试文档的软件质量评估在效率与准确度上都将有很大的改进。

1 相关知识

1.1 形式概念分析相关知识

定义1[1]称T:=(G,M,I)为一个形式背景,其中,G 是一个对象集,M 是一个属性集,I 是G 和M 之间的一个关系。分别称G 和M 的元素为对象和属性。

若对象g 和属性m 具有关系I,则记为 或gIm。

定义2[1]设T=(G,M,I)为形式背景,若二元组(X,B)满足X'=B,B'=X,则称(X,B)为形式概念,其中:

设T=(G,M,I)是形式背景,对任意的形式概念(X1,B1),(X2,B2)定义如下偏序关系:

记L(G,M,I)或L(T)为T=(G,M,I)中所有形式概念构成的集合,则L(T)是格,称其为T 的概念格。在概念格L(T)上定义上、下确界如下:

性质1[2]设T=(G,M,I)是一个二元背景,X,X1,X2为任意对象子集,B,B1,B2为任意属性子集,则下列性质成立:

1.2 软件测试相关知识

软件测试(Software Testing),是指通过人工或自动的方式对软件系统运行或检测,判断验证其中的规则和标准,同时对存在的偏差做出评价并加以改进的过程[11]。目的在于检测软件产品是否满足规定要求同时能够发现预期输出结果和实际结果两者之间的差别所在,主要包括需求资格书审查、概要设计与程序设计审查、单元测试、集成测试、功能测试、有效性测试、系统测试等七个阶段。

1.2.1 需求资格书审查

在最初的需求资格书审查流程中,软件测试人员应该参与到系统或产品的需求分析工作当中,清楚用户的需求所在,仔细核实需求说明是否与用户的需求相符合,表述是否准确无误。

1.2.2 概要设计与程序设计审查

在概要设计与程序设计审查阶段,软件测试人员需要根据已有的需求说明书来分析评估系统结构的合理性,例如审核数据库中的外模式、模式以及内模式。同时需仔细审阅数据流图、用例图以及UML 等,综合判断系统结构的逻辑性。

表1:软件-阶段测试得分数据表

表2:形式背景(G,M,I)

表3:形式背景(G,M,I)的所有形式概念

1.2.3 单元测试

单元测试一般采用白盒测试的方法,针对软件系统中最小的组件或者模块,对其中程序开展逻辑覆盖及路径的测试。通过开发人员设计的程序代码,可以用来检查其中很小很明确的功能是否完全正确。

1.2.4 集成测试

集成测试也称为组装测试,将经过单元测试的模块或者组件组装起来形成一个可运行的系统,测试的目的主要是找出模块间接口的问题,验证当各个子系统模块集成在一起时是否达到了预期的功能。有的系统可能单模块在运行时没有问题,但是集合在一起时就会产生问题。

1.2.5 功能测试

功能测试阶段根据需求说明书,从用户的角度来进行功能验证,从用户界面测试等维度出发,确认每个功能是否已经按照需求说明的要求运行,能够正确地接收输入和输出结果。测试者采用逐项单步测试的方法,检验功能是否满足要求。

1.2.6 有效性测试

有效性测试也称为确认测试,在此过程中,软件测试人员需要验证系统的各个功能性能及特征是否都符合用户的要求。

1.2.7 系统测试

在系统测试阶段中,把环境、软硬件和工作人员等看成一个整体,软件进行一套完整的测试流程,主要包含安全、压力、性能以及回复等测试,直到与开发需求基本一致。

2 软件测试应用分析

2.1 数据实例

在一家互联网公司中,近期有A、B、C、D、E 五款软件,上线投入使用前需要首先通过测试部门经过一系列测试,然后将测试结果评估报告反馈给开发部门,最后不断改进。测试部门需要对每款软件进行需求资格审查、概要设计审查、单元测试、集成测试、功能测试、有效性测试以及系统测试七个流程,按照评判标准对每个流程打分,满分100 分。各软件在各测试流程的实际得分情况如表1所示。

图1:算法流程图

图2:形式背景(G,M,I)的概念格

2.2 形式背景转化

将表1中A、B、C、D、E 这5 款软件作为5 个对象,分别用1、2、3、4、5 表示;将7 个测试流程的得分作为7 个属性分别用a、b、c、d、e、f、g 表示,同时定义各对象以及属性之间的二元关系。

(1)若某款软件的‘需求资格书审查’得分在70 分以上记为1,其它记为0;

(2)若某款软件的‘概要设计审查’b 得分在70 分以上记为1,其它记为0;

(3)若某款软件的‘单元测试’c 得分在70 分以上记为1,其它记为0;

(4)若某款软件的‘集成测试’d 得分在70 分以上记为1,其它记为0;

(5)若某款软件的‘功能测试’e 得分在70 分以上记为1,其它记为0;

(6)若某款软件的‘有效性测试’f 得分在70 分以上记为1,其它记为0;

(7)若某款软件的‘系统测试’g 得分在

70 分以上记为1,其它记为0。

则表1软件-阶段测试得分数据表可转换为一个形式背景(G,M,I),如表2所示。

2.3 概念格构造算法

2.3.1 算法流程图

为了能够进一步提升软件质量评价的效率,本节设计实现了一种自顶向下的概念格构造算法。根据形式背景二元关系,逐一匹配运算满足条件的对象和属性,存储并输出形式概念,从而构造概念格,算法流程图如图1所示。

2.3.2 核心代码

2.4 运行结果

通过程序运算,表2形式背景(G,M,I)对应的概念如表3所示。

构造的概念格如图2所示。

根据实验数据,该算法程序从运行开始到结束累计消耗时间为0。01s。

2.5 结果分析

基于概念格的软件质量综合评价方法,提供了一个更为综合以及准确的评估信息,并间接提升了软件测试工作的效率。

根据表3的形式概念,可以得到软件测试结果相关信息。例如:概念C2: ({1},{a,b,d,e,f,g }),除了单元测试,其他测试阶段得分都合格的只有软件A;概念C6:({2,4},{a,c,e}),需求资格书审查、单元测试、功能测试得分都合格的为软件B 与D;概念C7:({1,4,5),{a,f}),需求资格书审查、有效性测试都合格的只有软件A、D 与E。

根据图2的概念格,可以判断质量较高以及质量较低的软件分类情况,靠近顶部则软件质量较高,靠近底部相对较低。例如C2中软件对象1 质量最高,除了属性c 不满足,其它属性均满足; 而C9 中软件对象3 质量较低,仅b、d 属性满足,其他属性都不满足。

3 总结与展望

本文通过采用形式概念分析方法,设计并实现了一种概念格求解构造算法,同时结合各软件及在各流程测试结果,探索了一种软件质量综合评价方法,可以在分析大量软件测试评估结果以及软件的问题改进上提供有效地参考。但是,能否进一步探究软件测试的自动化运行以及影响软件质量的相关因素等问题,将是接下来需要思考的方向。

猜你喜欢

概念分析单元测试软件测试
科幻与科普的关系:基于历史文献和概念分析的讨论
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究
“有无对比法”在经济评价中的运用及相关概念分析
基于形式概念分析探讨《伤寒论》中葱白止利功效的新发现
中国共产党执政道路相关概念分析