登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

机器学习生成软件测试用例的设计与开发毕业论文

 2021-04-25 23:19:05  

摘 要

在软件开发过程中,软件测试占有了相当大的一部分工作量,通过不同的测试来发现软件在设计过程中产生的不足之处。在软件测试实现的过程中,最基本的就是使用测试用例(test case),用他来对软件进行测试。能否使用一个优质的、有作用的测试用例,对测试过程有着很大的影响。使用一个优质的用例,对软件的测试过程能够起到很大的帮助,节省了软件测试耗费的时间和精力。

随着我国软件开发行业的突飞猛进,软件测试也有了一定的进步,最开始由开发人员自行对软件测试,到现在由公司专门的测试人员对软件进行测试,软件测试也得到了大多数软件开发公司的重视,而自动生成测试用例的方法和途径,却与一般的由测试人员做出的测试有着许多的差异之处。

这篇论文对着重对软件测试进行分析,分析其过程、近几年的一些发展,也对软件测试用例的作用进行了分析,其中对机器学习自动生成测试用例的方法进行了深入探讨,在探究过程中主要了解了最优测试用例的生成,以及自动生成测试用例的方法,也对自动生成软件测试用例进行了编码。

关键词:软件测试 测试用例 自动生成

ABSTRACT

In the software development process, software testing is a more important part, through different tests to find the software design process defects and vulnerabilities. The basis of software testing is the test case, can generate a high-quality test cases, the test process is essential, a good test case can effectively improve the efficiency of software testing, saving software testing time.

With the rapid development of China's software development industry, software testing has also been some progress, the beginning by the developers of their own software testing, and now by the company's special test staff to test the software, software testing has also been the majority of software development company , While the machine generated test cases but with the ordinary manual software testing has many differences.

This paper analyzes the software testing process, the development of software testing, and the role of software test cases. The methods of machine learning to generate test cases are discussed in depth, including the generation of optimal test cases and automatic generation test Use cases of the method, but also the machine automatically generate software test cases for coding test.

Key words: Software Test Test Case Machine Generate

一、绪论

1.1 研究目的及意义

在这个信息高速发展的时代,软件行业的发展也是突飞猛进,软件测试的地位也随之变得举足轻重,有了软件测试这一关,软件开发的质量得到了保障。在软件研发设计过程中,软件测试一个不能忽视的过程。大多数的互联网企业,他们选择招聘专门的软件测试人员,在软件测试上投入大量的时间和精力,他们所做的这一切也是为了确保软件的质量,为了在行业竞争中不落后与其他对手。在一些发达国家,他们在软件测试上比我国投入的资源更多,技术当然也更为先进。国内在软件测试技术研究的投入相对较少,只有一些团队和研究机构在探索这方面的技术知识,软件测试人才不足。

目前来说,软件测试的方法主要有两种,(1)黑盒测试:也称为功能测试或数据驱动测试,在知道产品应具有的功能,通过测试来检测每个功能是否正确实现,[[1]]以用户的视角根据相关联的输入输出数据来对软件进行测试,在测试过程中不考虑软件内部结构逻辑。(2)白盒测试:也称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,是一种测试用例的设计方法,[[2]]白盒测试可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,对程序真的每条道路进行检测,是否都能按预定要求正确工作。在面对不同复杂度的代码时,有许多种不同的执行路径,只有选择合适的测试方法,才能找到进行测试的正确方向,完成程序结构的相关测试。在我国大部分软件开发行业中,软件测试人员常常会利用单元测试、集成测试、系统测试和验收测试等测试方法对软件做出测试。[[3]]单元测试检查模块界面的输入输出数据,判断模块是否符合设计要求,模块锁涉及的局部数据结构的状况和改变,模块内部重要执行路径的正确性。集成测试的重点是检测模块接口之间的连接,发现在访问公共数据时,可能引起的模块间干扰,以及全局数据结构的不一致。验收测试是以用户需求来判定是否满足测试。

1.2 国内外研究综述

软件测试有着各种各样的方法,其中黑盒测试和单元测试使用得最为广泛。[[4]]在黑盒测试中,测试者主要根据规格说明书来生成测试用例,对软件进行测试,然而黑盒测试无法覆盖到所有测试路径,多为人工生成测试用例。利用机器学习方法对测试用例进行优化,Cohen等提出了一种数据启发的方法,根据某种启发性原则来选取测试用例集,其中启发性原则的好坏直接影响测试的结果,同时开发了相应的测试数据自动生成系统AETG(Automatic Efficient Test Generate)。[[5]]也有利用贪心算法,根据参数组合生成用例,从数据集中选出能最多覆盖测试的数据,Pairtest就运用了这种算法生成测试数据。[[6]]在单元测试中,自动生成测试用例主要有两种方法:根据输入自动生成测试用例、根据路径自动生成测试用例。根据输入自动生成测试用例一般是根据参数生成,任何数据类型都可以分解为基本数据类型,我们先为各个基本数据类型设计他们对应的值,组合起来就能够生成测试用例;根据路径自动生成测试用例通过分析代码执行的路径,生成能够覆盖这些路径的用例。[[7]]然而自动生成用例技术有很大的局限性,即使自动生成的测试用例能覆盖所有的路径,但他所产生的大量用例都是低质的,对其进行修改需要大量的重复工作,实际意义并不大。

利用遗传算法的测试用例生成,能有效的解决最优化问题,该算法利用了遗传变异原理对初始代码使用选择、交叉和变异等操作,生成新的程序,找到最优测试用例。荚伟分析了遗传算法在测试用例产生这一问题上的可行性,提出了从参数编码方法、适应度函数构造、遗传算子设计和算法参数选择等方向进行研究。[[8]]

机器自动生成软件测试用例在我国还处在学习阶段,不过我国也对软件测试的态度变得比以前更加重视,对于软件测试相关的高新技术也重视起来,国内学者专家也软件测试的研究中发挥自己的力量,在这方面研究的也有了一定的进步。

1.3 研究内容

论文主要研究了机器学习生成软件测试用例方面的知识,分析了基于遗传算法的最优测试用例生成的方法、符号分析执行测试用例生成的方法,完成相关系统设计。该系统主要实现了测试用例最优化和自动测试用例生成,主要包括用户模块、数据库模块、测试系统模块。

可行性分析

2.1 技术可行性

能熟练的运用算法解决各类问题,对于前端开发、数据库设计、系统设计拥有较为丰富的经验,随着计算机相关技术的成长,硬件设备的质量得到提高,数据处理速度变得比以前更快快,网络下载上传速度也加快很多,对系统的运行打下了良好基础。

数据库技术也比以前更加成熟,面对大量的数据,存储和处理也不再是难事。

在技术人员和开发工具方面,也具有良好的条件完成该系统

2.2 经济可行性

自动测试用例生成系统节省了大量的人力资源消耗,提高了软件测试效率。系统除了需要租用服务器,硬件消耗之外,其他支出可忽略。改系统对于软件公司的软件测试有着很大的帮助,大大的减少了软件测试消耗的时间和资源。

2.3 社会效益可行性

本系统有利于软件开发公司软件项目开发,对一个项目的开发速度起到促进作用,加速软件开发行业的发展,对社会进步起到一定的推动作用。

2.4 操作可行性

该系统对于用户而言,操作简单,容易理解,处理及时准确,结果获取方式简单,结果易于保存,用户也能对历史操作结果进行重新获取。

2.5 法律可行性

本系统的运行平台、开发工具、关键技术等不存在侵权、违规或违法行为,证明本系统的开发是可行的。

2.6 总结

本系统切合社会需求,没有技术层面的风险,具有优良的开发环境。这个系统开发完成之后,能为社会带来极大的利益。

需求分析

3.1 系统功能需求

这个机器学习生成软件测试用例系统应具有以下功能:

用户登录注册模块

用户在当前系统可以进行登录注册操作,用户输入用户名及对应的密码,通过系统验证之后,进入系操作页面。

用户操作模块

用户在系统操作页面可以上传需要进行自动测试用例生成的软件相关文件,经过系统自动生成测试用例文件之后,用户可以选择下载该软件的测试用例文件。

用户管理模块

用户可以对当前用户的密码进行修改,以及对使用自动测试用例生成系统的历史记录进行访问,获取之前的测试用例文件。

3.2 系统业务流程

图2.1可以表现出用户在登录系统前的具体操作,图2.2展示了用户在成功登录系统之后的操作,图2.3展示了用户对自己用户信息的修改查阅等操作。

概要设计

4.1总体设计

本系统以用户提交的待测试的软件相关文件为基础,将文件上传至服务器,使用测试系统生成相关的测试文件,该测试文件可被用户下载。系统主要包括三方面的设计用户界面设计、数据库设计、测试系统设计。总体设计:用户在用户界面实现注册、登录和提交待测试软件相关文件等操作,在执行操作过程中与数据库模块进行交互,例如登录检测、文件保存等。当用户提交软件相关文件之后,系统调用测试系统对这些文件进行分析处理,生成测试用例文件,用户在测试系统完成工作之后就可下载对应的测试用例文件。

4.2 模块设计

用户模块:这个模块需要完成用户的注册登录功能,用户输入用户名及密码点击登录之后,在数据库中检查用户名与密码是否匹配。如用户民和密码匹配成功则登录成功,显示系统基础界面,用户在这个界面可以上传需要进行测试用例自动生成的软件的相关文件并提交,在测试用例生成之后,用户可以自行下载测试用例相关文件。

数据库模块:在数据库中保存用户的用户名及密码,提供修改功能;存储用户每一个上传的文件和系统生成的测试用例文件以便用户随时下载。

测试系统模块:处理用户提交的相关文件,利用遗传算法生成测试用例。

4.3 接口设计

外部接口:

1.用户界面:根据该系统的需求分析,用户需要一个良好,便于操作的界面,注意界面布局,多采用Windows风格设计,运用Java进行对界面进行设计编程。用户界面是系统与用户交互的平台,制作一个对用户友善、操作便捷简单的系统,对于系统的使用有很大帮助。

2.软件接口:

使用powerbuilder提供的SQLSERVER的接口,与数据进行连接。

3.硬件接口:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图