基于集成学习的接口测试用例生成方法探讨与实现

论文价格:150元/篇 论文用途:硕士毕业论文 Master Thesis 编辑:硕博论文网 点击次数:
论文字数:43666 论文编号:sb2022070922495848979 日期:2022-07-23 来源:硕博论文网

本文是一篇工程硕士论文,经过接口测试实例验证,基于集成学习的接口测试用例生成方法能够均衡测试成本和测试覆盖率要求,借助PICT组合测试工具与集成学习模型自动生成接口测试用例的输入数据和大多数的预期结果。
第一章 绪论
1.1 研究背景及意义
20世纪70年代软件测试的概念被提出,伴随着软件产业的发展,软件的复杂度以及规模持续增加,由此带来的软件可靠性问题也越来越受到重视。只有在保证软件可靠且稳定运行的前提之下,软件才有实用价值,同时软件产品的生命周期也会得到一定的延长。通常在软件产品研发的过程中,软件测试成本会占据产品研发总成本的很大一部分[1],对于测试人员来说,进行全面、细致的测试过程在产品研发中尤为重要[2]。
时至今日,测试理论以及测试用例的生成一直是软件测试行业研究的热点与难点,众多国内外专家对测试用例的自动生成方法进行了大量的研究。软件测试按测试对象可划分为黑盒测试和白盒测试[3],其中在实际的黑盒测试工作中,很多被测功能点的输入域是无穷尽的,受限于测试人员和测试成本,不可能进行无穷尽的测试,所以针对软件产品设计出全面、精简和高效的测试用例以发现软件产品缺陷是一项关键性工作。同时在软件的集成测试阶段,因为接口是模块与模块、系统与系统之间的纽带,所以进行接口测试是一项非常重要的内容。接口测试方法分为白盒测试和黑盒测试,在实际的软件开发项目中,黑盒测试方法在接口测试中应用较多[4],所以本文着重研究面向接口的软件黑盒测试用例生成的方法。
伴随着机器学习的发展,机器学习技术逐渐应用在软件测试的诸多领域[5],其中就包含将机器学习算法应用到软件测试用例生成问题当中[6],如将机器学习中的遗传算法应用在软件结构测试用例生成上,将抽象问题转化成数值优化问题,即测试用例数据就是被搜索的解空间,而测试用例的预期数据就是最优解;将人工神经网络算法应用到软件测试用例生成中,就是将测试用例集视为常规的包含输入输出对应关系的模型训练集对人工神经网络模型进行训练,然后将新的测试用例输入部分输入到训练好的模型中得到测试用例输出部分,因此将机器学习算法与软件测试用例设计相结合值得深入研究。
.......................
1.2 研究现状
目前,已经有很多国内外的软件工程学者、专家对软件测试用例的设计方法进行了大量研究,在接口测试用例生成中参数组合过多的问题是其核心和难点,专家们针对这个难点设计出多种方法,同时伴随着机器学习领域的发展,将机器学习理论和技术应用于自动生成软件测试用例也获得了一批成果。
1.2.1 基于参数组合的测试用例生成方法
使用黑盒测试方法时,接口测试用例设计关注输入参数的取值组合覆盖方案。测试过程要同时兼顾测试效率以及测试覆盖率(测试质量)[8],参数组合覆盖测试是被业界广泛应用的一种测试方法。目前,对于组合测试用例生成方法已有大量研究。
1985年,国外的Mandl[9]首次提出组合测试的概念,在测试用例设计时,利用正交拉丁平方法以一小部分的成本产生了详尽测试的等价信息。Stevens等人[10]将覆盖强度较小的数组递归生成覆盖强度较大的数组,该算法能够生成最优的覆盖数组。Cohen等人[11]针对组合测试中存在的因素约束的问题,着重分析了利用布尔表达式描述因素之间的约束关系。Dalal[12]提出AETG方法,AETG系统使用新的组合算法生成覆盖所有有效n维参数组合的测试集,AETG测试集的大小随测试参数的数目呈对数增长,这允许测试人员用几十个参数来定义测试模型。Lei等人[13]提出测试生成策略IPO,同时研发了一款基于IPO策略的测试生成工具PairTest。IPO策略首先对前两个参数生成一个成对测试集,然后扩展这个测试集为前三个参数生成一个成对测试集,并继续为每个额外的参数进行水平和垂直扩展。Tung等人[14]基于AETG系统提出了另外一种参数化测试用例生成算法的工具TCG,该工具采用组合设计的方法来选择候选测试用例。TCG算法采用确定性方法,而AETG系统采用随机选择。Willams等人[15]采用递归构造的数学方法来测试分布式系统,该分布式系统由许多相互作用的元素组成,着重讨论了交互测试覆盖问题,该方法与其他方法相比生成的测试配置较少。Nurmela[16]提出了基于禁忌搜索生成覆盖数组的算法,通过使用禁忌搜索表来避免重复搜索进行全局的有效寻优操作,Nurmela采用的禁忌表大小T满足1≤T≤10。Cohen等人把测试数据的约束一致性转换为满足性问题[17],接着又提出另一种与模拟退火算法相结合的约束覆盖数组生成算法并取得良好的效果[18]。Galinier[19]提出一种组合测试生成工具ACTS,该工具支持t-way组合测试生成以及混合强度测试生成和约束处理等操作。
..........................
第二章 相关理论研究
2.1 软件测试概述
2.1.1 软件测试定义及分类
软件测试从狭义上来讲是针对软件开发过程中的多个阶段的规范以及软件程序的结构而特定设计一组测试用例,以检测软件缺陷[44]。软件测试是保证软件质量的有力措施,对于软件测试的分类可以按照不同的划分方式而分为不同类型的测试方法,各种测试方法贯穿于整个软件的测试生命周期,各自扮演不同角色,发挥着重要作用,软件测试的分类如图2.1所示。

工程硕士论文怎么写
工程硕士论文怎么写

............................
2.2 接口测试技术
2.2.1 接口测试定义及分类
软件接口作为软件系统与外部其他系统以及系统内部子部件之间的纽带,在软件中起着重要作用,所以进行接口测试是十分有必要的。接口测试是针对被测系统组件之间的接口而展开的测试活动,测试的关注点是检查系统组件之间的调用和数据交互是否按照规定正常运行,以保证接口的正确和稳定[51]。软件接口可以按照不同的划分方式分为不同类型的接口。
在接口测试中接口测试用例设计是一个关键点,接口测试用例是由测试人员根据开发者提供的软件接口文档进行综合设计而成。接口测试用例设计的目的是验证接口实现的功能与接口文档标定的是否一致,并在有异常输入参数输入接口时返回具有参考意义的错误响应状态码。测试用例设计的好坏直接对接口测试的测试效果起到重要影响,越能检测出接口缺陷的接口测试用例才是更好的测试用例。接口测试总体可分为功能和非功能两个方面的测试,接口的非功能测试需要测试接口的性能和接口的安全等方面,接口功能测试则需要根据软件测试的理论方法进行测试用例的设计,本文主要关注于软件接口的功能测试。
在接口的功能测试中,接口测试用例主要面向三大方面来进行设计:接口输入参数、接口业务逻辑和接口响应数据。从接口的输入参数方面分析,把参数的必填项校验、参数类型校验、参数长度校验、参数边界值校验、参数值有效性校验、参数组合校验和参数默认值校验等作为测试用例设计的关注点;从接口业务逻辑方面分析,把接口业务逻辑、接口条件判断等作为设计的关注点,其中接口条件判断一般分析登陆状态、绑定关系、条件限制、权限等;从接口响应数据方面分析,把参数返回内容和接口响应状态码等作为关注点。
..............................
第三章 基于集成学习的接口测试用例生成方法研究 ......................... 19
3.1 实验算法流程 ...................................... 19
3.2 接口测试用例数据集的构建 .................................. 21
第四章 接口自动化测试框架设计 ..................................... 47
4.1 接口自动化测试框架相关理论 ..................................... 47
4.1.1 自动化测试的基本理论 .................................... 47
4.1.2 接口自动化测试框架分析 ......................................... 48
第五章 总结与展望 ..................................... 63
5.1 工作总结 .......................................... 63
5.2 工作展望 ........................................ 64
第四章 接口自动化测试框架设计
4.1 接口自动化测试框架相关理论
4.1.1 自动化测试的基本理论
通常针对一个软件产品是需要不断进行版本迭代更新的,在对不同版本进行测试时,由于其测试主要内容基本相同,会存在大量重复的测试工作,所以将软件测试过程实现自动化既高效又可靠。
软件自动化测试是指通过测试工具或者测试框架按照测试计划自动进行软件测试的过程[68],软件自动化测试包含测试用例的自动生成、测试过程的自动执行、测试结果的自动评估三大方面。自动化测试一方面避免了人工执行测试中出现的偶然错误,提高了测试结果的可信程度,另一方面自动化框架的可复用性高,能大幅度减少测试的成本,自动化测试相比于手动执行测试的优势在于测试效率和测试覆盖率的提升[69]。
根据实际的测试情况,并不是所有的实际测试场景都需要进行自动化测试,需要对软件的开发情况进行具体的安排,适合进行自动化测试的情况有以下几个方面:
(1)软件项目安排的时间足够充裕,可以有足够多的时间成本开发自动化测试框架,对于软件交付时间很短的项目则不适合进行自动化测试。
(2)经常迭代新的版本,但测试的对象大体内容不会被变动。因为自动化测试是一种有针对性地测试,即自动化测试框架根据测试对象内容而编写对应的代码,较大范围内的测试内容改动会导致代码改动巨大,会增加自动化测试的成本与难度。
(3)进行测试的内容工作量较大,且存在很多重复的测试动作。所以测试人员在进行测试活动时,首先要对待测软件进行自动化测试可行性分析,毕竟进行自动化测试需要消耗大量的测试成本和测试资源。

工程硕士论文参考
工程硕士论文参考

...........................
总结与展望
5.1 工作总结
时至今日,测试用例自动生成技术是软件测试领域中的一个重要的研究方向,也是整个测试流程中重要的动力输入,极大地提高了测试的工作效率和准确性。因此,本文提出一种基于集成学习的接口测试用例自动生成方法,并以此方法为基础设计并实现了一款接口自动化测试框架,最终结合实际公司项目对该方法和框架进行有效性验证,本文工作包括以下几个主要方面:
(1)由PICT工具生成两参数组合覆盖标准的输入参数组合数据,首先确定好接口输入参数和取值范围,借助等价类划分法和边界值分析法确定接口输入参数的多个离散值,然后根据此来设计PICT组合测试工具的输入模型文件,并且生成符合两个参数完全组合覆盖标准的接口输入参数组合数据集。最后根据输入参数组合数据匹配相应的响应状态码和输出参数内容,并且保证输出域中属于不同类别的数据完整,否则添加与之前相同组合覆盖准则的输入参数组合,直至完成覆盖,组成典型样本集。
(2)对典型样本集进行数据预处理并得到n+1个训练样本集,利用网格搜索法和交叉验证对n+1个支持向量机三种核函数进行参数寻优,得到n+1个最优的支持向量机模型,然后利用Bagging和Adaboost集成方法对n+1个最优支持向量机模型进行下一步集成并对比集成效果,选择出n+1个最优集成分类模型,用于生成三参数组合覆盖准则的接口预期响应内容。
(3)设计一款接口自动化测试框架,将基于集成学习的接口测试用例生成方法作为一个单独的接口自动化测试框架模块,且该框架剩余的功能模块有测试配置模块、测试脚本模块、测试用例执行模块以及测试报告生成模块,实现整个测试流程的自动化,以验证基于集成学习生成接口测试用例设计效果。框架设计涵盖的主要技术工具为PICT组合测试工具,Pytest测试框架,Requests测试请求库,Allure测试报告框架,YAML数据驱动文件等,实现了自动生成接口测试用例,自动执行测试,自动生成测试结果以及数据驱动测试和测试配置灵活等重要功能。
参考文献(略)


如果您有论文相关需求,可以通过下面的方式联系我们
点击联系客服
QQ 1429724474 电话 18964107217