赞
踩
大家好,今天给大家介绍基于Vue+SpringBoot+MySQL的测试事务管理平台设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦
文章目录:
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:19322个字45页
包含内容:全套源码+配整论文
开题报告、论文答辩、课题报告等ppt模板推荐下载方式:
提示:以下为毕业论文的简略介绍,项目完整源码及完整毕业论文下载地址见文末。
1 绪论
1.1 课题研究背景及意义
随着计算机软件复杂度不断提升,人们更加看重软件的使用体验及安全等方面。随之而来的问题就是软件从业者如何保证软件质量,保证用户信息和资产安全,提高用户产品使用体验。因此,软件测试行业逐渐趋向成熟[2]。
软件测试是软件生命周期中保证软件质量的重要过程,这个过程的核心任务在于严格执行有效的软件测试用例,及时反馈测试问题。因此,通过开发可视化测试用例管理平台完成测试事务的跟进和合作十分重要。
1.2 国内外研究现状
省略
1.3 课题研究目标与内容
基于以上,本课题预期目标设计并实现测试用例管理及生成系统,针对需求实现测试用例管理和缺陷问题跟进,兼容自动化测试框架管理,实现测试流程闭环。
该系统宏观分为用户管理、测试用例管理、自动化框架管理三个模块,其中用户管理基于企业应用实际,主要进行用户信息记录和根据职位不同进行权限分配;测试用例管理主要包括测试用例的生成、维护、跟踪和统计功能,其中生成功能可以进行测试用例的自动生成并保存至平台;除此之外,可根据实际执行情况修改执行状态和实际结果,并关联缺陷报告;自动化框架管理基于GitHub实现自动化测试代码的管理并统计代码覆盖率情况、生成自动化测试报告,自动化测试报告使用 JaCoCo 插件,在代码中进行插桩统计覆盖率,生成覆盖率报告index.html文件,并统计自动化测试用例执行情况,形成自动化测试报告。
1.4 论文组织结构介绍
本文论文结构基于软件工程开发模型中的瀑布模型,共分为7章。
第1章:绪论,介绍本平台的研究背景、国内外测试行业的现状和针对当前现状进行测试工具改进的目标。
第2章:相关理论基础与关键技术综述,介绍在本项目开发过程中使用的核心算法相关理论基础与关键开发技术。
第3章:需求分析,主要基于作者实习期间的工作经历,介绍本平台的需求及其可行性。
第4章:概要设计,介绍该平台的总体架构设计方案、功能模块设计方案、数据库设计方案等。
第5章:详细设计与实现,介绍文中涉及到的界面层、业务逻辑层、核心算法层的详细实现方式设计和实现结果展示。
第6章:测试,介绍平台相关运行环境,在此基础上对平台进行功能测试,确保平台符合需求要求。
第7章:结论,对平台设计与实现进行全面总结,包括开发工作、开发结果以及后续优化等内容。
1.5 本章小结
本章主要描述了课题背景,并详细讨论课题的意义以及相关课题的研究现状,还明确了主要的研究目标和内容,并介绍了论文的组织结构,对整个课题的工作进行全面概述。
2 相关理论基础与关键技术
2.1 基础测试理论
2.1.1 软件测试流程
根据作者实习经历,软件测试工作的主要流程为:需求评审、技术评审、制定测试用例、评审测试用例、冒烟测试、正式测试、回归测试、编写并提交测试报告。
在本课题中,测试用例通过关联需求文档和缺陷报告,形成测试流程闭环,提高测试效率。
2.1.2 主要测试方法
从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。白盒测试方法主要有代码检査法、语句覆盖等,黑盒测试方法主要包括等价类划分法、边界值分析法、判定表驱动法等[5]。除此之外,测试方法按软件特性还可分为功能测试、性能测试、兼容性测试、安全测试等[6]。
在本课题中,根据以上测试方法实现测试用例自动生成功能,对于取值范围使用边界值分析法;除此之外,还可实现功能测试对于字符串输入采用等价类划分法,对于参数组合采用判定树/判定表法,对操作流程判断采用分支覆盖法等;性能测试提取并发数、并发持续时间、业务类型及业务占比、生产环境基础数据量、预期响应时间、系统其他特殊性能值需求(如net I/O不能占用带宽1/2)等;兼容性测试可根据自动爬取网络上主流的浏览器类型、操作系统、手机端机型的统计数据和导入项目组在APP启动时埋点生成的数据分析报表资源,生成推荐测试列表;安全测试关注输入内容的敏感信息加密、批量操作可行性、密码的SQL注入等情况。
2.1.3 测试用例设计
一条完整的测试用例,一般包括用例编号、用例标题、前提条件、操作步骤、预期结果等[7],需要满足以下原则:
(1)全面性:输入数据要包括合法的、边界内的、常规的数据,也要包括非法的、边界上的、超过边界的、不合理的数据。
(2)代表性:选取其中具有代表性的数据作为输入数据,减少测试用例的冗余性。
(3)可判定性:每个用例必须要有明确的输出结果,用来判断实际结果是否符合预期,进而判定软件质量。
(4)可操作性:需要描述清楚操作步骤,不同步骤对应不同的输出结果,在测试前做好足够的准备工作,以提高测试的效率。
(5)可再现性:在执行测试用例的过程中,相同的测试用例系统所执行的测试结果是相同,以便复现和定位问题[8]。
在本课题中,基于测试用例内容和设计原则的需求,进行了相关数据库设计,确保系统的实用性。
2.2 分词算法
分词方法有标准分词、NLP分词、索引分词、N-最短路径分词、CRF分词以及极速词典分词等[9]。
在本课题中,通过使用Python中文分词软件中的“结巴”分词,在需求文档分词后,根据关键字匹配测试用例,实现测试用例推荐功能[10]。
2.3 关联规则挖掘
2.3.1 关联规则挖掘基本概念
2.3.2 关联规则挖掘算法
关联规则一般将满足一定阈值的事物通过最小支持度和最小置信度筛选出来,进行关联规则挖掘的首要步骤是进行频繁项挖掘,经典的频繁项挖掘算法有Apriori算法[12],该算法自底向上逐层搜索迭代,利用 项集去搜索 项集,直到所有项数的频繁项都被挖掘出来。本文将使用这种算法对测试用例进行推荐生成。
2.4 SpringBoot 框架
Spring Boot减少了配置web.xml、数据库连接、 Spring 事务、加载配置文件的读取、日志文件等工作,使用特定的方式来进行配置,从而较少开发人员工作量[13]。
在本课题中,平台通过使用Spring Boot框架初步搭建,使用逆向工程自动生成SQL文件,提高了开发效率。
2.5 Vue.js 框架
Vue.js专注View层,提供了MVVM风格的双向数据绑定的Javascript库,它被设计为可以自底向上逐层应用,便于与第三方库或既有项目整合[14]。
本课题因采用MVVM架构,所以开发只需关注业务逻辑,View层和Model层的同步则通过双向数据绑定进行连接,大大减少了项目开发量,提高了开发效率。
2.6 MySQL
MySQL是目前最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的关系数据库管理系统)应用软件之一[15]。
在本课题中,主要用于储存用户信息和测试流程中的相关信息,为用户提供所操作的数据源,以保证平台功能的实现,使用MySQL搭建关系型数据库,关系型数据库将数据保存在不同的表中,可以增加速度并提高灵活性。
2.7 本章小结
本章重点介绍了在本课题中依赖的相关理论基础、使用工具和相关技术,并阐述了相关算法的基本原理,后文则会基于本章的内容进行引申与应用。
3 需求分析
本课题所需要构造的测试事务管理平台,主要用户是开发人员和测试人员。因此,平台的功能由测试流程的整体需求决定。本文基于对作者实习期间的工作经历,完成了该平台的可行性研究与需求分析。
3.1 平台分析概述
对本课题测试事务管理平台进行分析,平台功能主要划分为三大部分:用户管理、测试用例管理、自动化框架管理。上述三个部分之间相互独立、相互联系。
从总体框架设计上看,系统采用面向对象的编程范式,本着低耦合、高内聚的设计原则[16],采用可视化的界面设计,以达到预期效果,预留足够的系统接口,保证了代码的可复用性和系统的可拓展性,为后期业务迭代提供可能。
3.2 平台可行性分析
可行性分析是软件生命周期中的最初阶段[17]。在软件开发过程中,可行性分析会在需求确定之前进行,在此阶段,将对目标软件开发的可行性进行全方位考虑,可行性分析结果将直接影响项目的成立以及后续开发与维护工作的顺利进行。本文重点围绕技术可行性、经济情况可行性与社会环境可行性等方面进行可行性分析。
3.2.1 技术可行性
在本课题中,技术可行性是指功能的实现和质量的保证[18]。
对于本课题来说,使用者主要是软件测试人员和开发人员,用户使用过程中不存在高性能需求,数据存储方面不需要采用大型数据库。对于初步 B/S框架而言,使用SpringBoot和Vue.js进行实现,核心功能通过“结巴”分词软件和推荐算法实现即可,不存在功能实现方面的困难。除此之外,作者实习过程中已积累近一年的测试经验,对于质量保障方面具有一定的理解,可在测试过程中对软件质量进行把关。
综上,可在原定开发时间中完成课题功能需求的实现,并保证软件的质量,本平台在技术实现层面具备较强的可行性。
省略
3.3 平台需求分析
本平台主要用户为开发人员和测试人员,因此,下面将根据平台的用户使用需求对平台主要功能进行需求分析。
3.3.1 功能需求
基于作者实习经历中的使用需要,得出平台的需求如下:
(1)用户管理模块:本平台主要包括三类用户,管理员、开发人员与测试人员。管理员登录后,可以进行用户账号和权限分配;测试人员登录后,可以修改个人信息,进行测试用例和自动化框架维护;开发人员登录后,可以修改个人信息,进行缺陷报告维护和测试用例查看。
(2)测试用例管理模块:该模块包括测试用例的新建(包括手动创建和自动创建),导入、导出测试用例,测试用例查询、修改和删除,测试用例执行状态标记并关联缺陷报告等子功能。
(3)缺陷报告管理模块:该模块主要实现缺陷报告的新增、修改、删除、查询功能,方便开发人员和测试人员对缺陷问题进行跟进。
(4)自动化测试框架管理模块:该模块主要实现自动化测试框架的代码管理,并通过JaCoCo插件进行覆盖率统计和测试报告的生成,包括测试用例的统计功能。
3.3.2 非功能需求
对于非功能需求,一般包括性能需求、硬件需求等除功能需求之外的内容,在本课题中,主要包括以下需求[21]:
(1)界面需求
符合实际测试工作场景,采用统一的配色风格、符合用户操作习惯的功能布局,降低用户操作难度。
(2)性能需求
主要针对于查询等功能,保证平台可至少同时承受请求20次/秒,在进行数据库操作时,较少时间损耗,平均在2秒内返回执行结果。
(3)硬件需求
平台可兼容Windows等主流操作系统、Google Chrome等主流浏览器,具备在主流计算机部署运行的能力,具备较强的容错性,保证系统本身的稳定运行。
3.4 平台建模
根据上述分析,为具体识别平台需求,并对其进行相应设计与实现,本课题建模主要采用交互模型中的用例建模和行为模型中的数据流建模[22]。
3.4.1 用例建模
用例建模主要包括正在开发的系统与其他系统之间的交互,有助于识别用户需求,解决系统间可能产生的交流问题[23]。
在本课题中,平台主要涉及到的用户身份包括管理员、测试人员和开发人员。预计不同职位设计的功能共分为三大类:用户管理功能、测试用例管理功能、缺陷报告管理功能。用户管理模块主要是管理员使用的基础服务,用于管理团队人员信息和统计数据等;测试用例管理模块包括文本用例和自动化测试用例框架管理,主要包括测试用例的生成、维护等基础功能和代码的迭代;缺陷报告管理是基于测试用例管理中的关联缺陷报告功能,提供给开发人员进行缺陷处理的入口,确保测试流程闭环。平台用户用例图详细描述如下图3-1所示。
图3-1 平台用户用例图
3.4.2 数据驱动建模
数据流建模一般基于数据流图从数据加工者的角度反映了系统必须完成的逻辑功能,以图形方式描绘数据的流动及处理过程[24]。
在实际测试工作流程中,需求评审和技术评审后,由测试人员制定测试用例,再进行测试用例评审,同开发人员一起进行冒烟测试通过后,测试人员进行正式测试。对于缺陷问题编写并提交缺陷报告,待开发人员进行处理后,测试人员进行回归测试。因此,整个平台中主要的数据流走向大致可以分为以下三个数据流图。
图3-2 管理员业务数据流图
图3-2 测试人员业务数据流图
图3-3 开发人员业务数据流图
3.5 本章小结
本章对平台搭建的可行性进行了分析,同时进行了基于作者实习经历进行了需求分析,并完成了用例建模和数据流建模。下文将基于上述分析进一步阐述平台的构建。
4 概要设计
概要设计,主要是对需求分析之后进行的下一步概要性的工作[25]。其结果决定了平台的易用性和可维护性,概要设计的准确代表着软件风险的大大降低。
在本章中,我们主要对平台的开发架构、功能需求和数据库进行设计,以便保证该平台功能交互顺利。
4.1 平台开发结构设计
系统开发结构设计的具体流程如图4-1所示。
图4-1 系统开发结构设计图
4.2 平台总体框架设计
本系统采用三层架构模式,将系统划分为表现层、业务逻辑层以及数据访问层,如图 4-2 所示。在表现层中使用 Vue.js 框架,对交互式可视化界面进行描述,实现永华界面和后台代码的分离,最终返回给用户需要的信息。Web Service 层在本系统中作为业务逻辑层出现,在 Web Service 中定义需要的逻辑方法,用户通过表现层将命令发送给逻辑层,调用相关的逻辑方法来更新数据层定义的数据,将操作结果通过表现层返回给用户。数据访问层的作用即是与数据库进行交互,生成对应的数据实体类,完成对数据库的操作[26]。
图4-2 系统三层架构图
4.3 平台功能模块设计
功能结构设计主要用于对软件的功能点和从属关系进行全面的设计[27]。在本课题设计中,采用最简单的树形表现方式来对软件的功能进行全面梳理,主要的功能结构图如图4-3所示。
图4-3 系统核心功能结构图
该课题所搭建的核心平台——测试事务管理平台包括三个主要功能模块:用户管理模块、测试用例管理模块和自动化测试框架管理模块,除此之外,根据实际需求单独进行缺陷报告管理。
4.3.1 用户管理模块
本平台用户管理模块主要包括登录、用户信息设置,管理员还可进行用户账号分配和职位设置,方便开发人员和测试人员可以根据不同的权限跟进不同项目。
4.3.2 测试用例管理模块
用户打开测试用例模块,目录中显示为所有项目文件夹列表,点击项目文件夹,右侧展示相关测试用例,根目录可以显示所有的测试用例。 测试用例管理模块的主要功能点如下:
(1)用例生成:
(a)手工录入测试用例:当新建测试用例时,自动生成用例编号和创建时间等信息,用户需要依次填入用例标题、用例描述、测试步骤、预期结果、相关依赖(脚本、数据等)、测试分类等信息,并确认新建,信息完整性校验之后,则新建成功。其中用例信息自动填写创建人和执行人字段,创建人为录入基础信息的用户,执行人为修改执行状态的用户。
(b)自动生成测试用例:根据需求文档分词,匹配已经有的测试用例集推荐生成;或根据测试理论实现自动生成,例如:功能测试对于取值范围使用边界值分析法。
(2)用例维护:
(a)修改基本信息:可以进行上述测试用例基本信息的修改;
(b)修改执行状态:测试完成后对应编辑执行状态,方便查看是否测试通过;
(c)关联缺陷报告:如测试不通过,测试人员可提交相应缺陷报告,记录对应链接在测试用例中,方便后入回归;
(d)批量删除用例:测试用例列表采用复选框,如录入有误,可以进行可以进行单选或批量删除;
(e)导入/导出用例:导入测试用例可以下载模板、填写用例信息,再上传至平台;导出可以通过复选框进行测试用例批量导出。
(3)用例跟踪:采用字符串匹配算法,根据查询条件进行查询,查询条件包括:根据用例标题查询、根据用户名查询、根据用例状态查询、根据重要程度查询、根据用例类型查询。
(4)用例统计:
(a)测试用例统计:采用SQL语句,根据数据库中测试用例表下的用例类型、用例状态、用例等级和用例创建人等字段统计测试用例数量;
(b)缺陷报告统计:根据缺陷报告相关字段,统计项目目录下的缺陷报告数量。
4.3.3 缺陷报告管理模块
缺陷报告管理模块主要实现对测试过程中产生的问题以缺陷报告的形式进行更新和管理,包括缺陷报告的生成、维护和跟踪等,与测试用例管理模块类似,在此不做赘述。
4.3.4 自动化测试框架管理模块
自动化测试框架管理模块的主要功能点如下:
(1)代码管理:实现GitHub功能,可进行代码托管以便实现存储和共享。测试人员通过Git将本地代码提交至同一个项目仓库,进行合入、更新等代码维护工作,实现自动化测试工作合作。
(2)覆盖率统计:通过JaCoCo插件,使用插桩的方式记录覆盖率数据。方便收集测试过程中代码覆盖情况,能够很直观展现哪些代码已经测试过,哪些没有被测试,帮助测试人员有针对性地增加用例,提升测试质量。
(3)测试报告生成:实现自动化测试用例(如单元测试)的执行,并统计执行结果形成测试报告。
4.3.5 缺陷报告管理模块
缺陷报告主要字段包括关联测试用例、问题描述、相关信息(如日志、抓包文件等)、缺陷状态、提交人和跟进人等。缺陷报告管理模块的主要功能点如下:
(1)缺陷报告生成:测试人员根据测试用例执行结果新建缺陷报告,并将缺陷报告链接关联至测试用例,方便测试人员后续回归测试,并减少了描述复现场景的工作量,开发人员则可以通过查看缺陷报告关联的测试用例进行问题复现、排查。
(2)缺陷报告维护: 除了修改缺陷报告的基本信息外,主要针对缺陷问题的状态进行修改。
(3)缺陷报告跟踪: 可以根据查询条件进行缺陷报告查询,查询条件包括:根据缺陷标题查询、根据用户名查询、根据缺陷状态查询、根据优先级查询。
4.4 核心功能设计
本平台核心功能在于测试用例的自动生成,界面入口为推荐生成和一键生成,需要上传需求文档或测试点文档,推荐生成会根据关键字匹配相关测试用例进行推荐,一键生成可以根据边界值分析生成边界值信息,具体流程如图4-4所示。
图4-4 核心功能业务流程图
4.5 平台数据库设计
针对于平台的数据储存需求,本设计引入了关系型数据库来对数据进行储存,根据作者本科期间了解,免费的MySQL性能优越,安装便捷,使用简单。因此在本课题中,使用MySQL数据库来实现对测试流程信息存储和管理,并对数据库进行建模。
4.5.1 E-R图设计
实体联系图,简称E-R图,主要用来描述实体及其之间的关系,其是数据库概念设计中较为常用的图形设计方法之一[28]。在本课题中,使用E-R图表示各个实体之间的关系
4.5.2 数据库表设计
数据库表设计即为平台的存储结构设计[29]。本平台的所有数据表均来源于上述实体及其联系所产生的数据表,具体表格的设计如表4-1至4-4所示。
表4-1 用户信息表
代码 名称 数据类型 是否主键 注释
id 用户编号 INT true 主键,自动增长
name 姓名 VARCHAR(255) false 非空
user 用户名 VARCHAR(255) false 非空,唯一索引
email 邮箱 VARCHAR(255) false 非空,唯一索引
telephone 手机号 VARCHAR(255) false 非空,唯一索引
department 部门 VARCHAR(255) false 非空
position 职位 INT false 0代表管理员,默认值
1代表测试人员
2代表开发人员
create_time 创建时间 DATETIME false
update_time 修改时间 TIMESTAMP false
表4-2 测试项目表
代码 名称 数据类型 是否主键 注释
id 项目编号 INT true 主键,自动增长
name 项目名称 VARCHAR(255) false 非空
description 项目描述 TEXT false 允许为空
owner 负责人 VARCHAR(255) false 允许为空
create_time 创建时间 DATETIME false
update_time 修改时间 TIMESTAMP false
表4-3 缺陷报告表
代码 名称 数据类型 是否主键 注释
id 缺陷编号 INT true 主键,自动增长
case 用例链接 TEXT false 相关测试用例链接
project 所属项目 INT false 非空,取测试项目id
description 缺陷描述 TEXT false 非空
message 相关信息 TEXT false 允许为空
level 优先级 INT false 0代表 P0,默认值
1代表 P1
2代表 P2
3代表 P3
status 缺陷状态 INT false 0代表新提交,默认值
1代表已修复
2代表已发布
3代表重新打开
founder 创建人 VARCHAR(255) false 非空
operator 负责人 VARCHAR(255) false 允许为空
create_time 创建时间 DATETIME false
update_time 修改时间 TIMESTAMP false
表4-4 测试用例表
代码 名称 数据类型 是否主键 注释
id 用例编号 INT true 主键,自动增长
project 所属项目 INT false 非空,取测试项目id
title 用例标题 TEXT false 非空
condition 前置条件 TEXT false 允许为空
step 测试步骤 TEXT false 允许为空
expect 预期结果 TEXT false 允许为空
dependence 相关依赖 TEXT false 允许为空
type 用例类型 INT false 0代表功能用例,默认值
1代表性能用例
2代表兼容性用例
3代表UI用例
level 重要程度 INT false 0代表P0,默认值
1代表P1
2代表P2
3代表P3
4代表P4
bug 缺陷链接 TEXT false 相关缺陷报告链接
续表4-4 测试用例表
代码 名称 数据类型 是否主键 注释
result 执行结果 INT false 0代表未执行,默认值
1代表通过
2代表不通过
3代表受阻
4代表跳过
status 用例状态 INT false 0代表草稿,默认值
1代表通过
2代表未通过
3代表废弃
founder 创建人 VARCHAR(255) false 非空
operator 执行人 VARCHAR(255) false 允许为空
create_time 创建时间 DATETIME false
update_time 修改时间 TIMESTAMP false
4.6 本章小结
本章基于此前的需求相关分析,对系统相关开发架构、功能需求与数据库设计进行了相关介绍,后续将根据概要设计结果来驱动平台的详细设计与实现,具体介绍见后文。
5 详细设计与实现
概要设计完成之后,需要对上述提出的各项内容进行详细设计并实现。在该模块中,主要对软件的界面层、业务逻辑层和核心算法层进行详细设计与实现[30]。
5.1 平台界面设计与实现
平台的界面设计美观、易用,直接影响到用户工作效率,下面将对平台主要模块界面进行设计与实现,平台实现示例图片将根据展示需要,进行字段展示顺序的修改。
5.1.1 用户登录功能界面设计与实现
用户登录界面需要用户输入自己的用户名、密码和职位进行登录,具体实现界面如图5-1所示。
图5-1 用户登录界面
5.1.2 用户管理界面设计与实现
用户管理界面主要实现用户信息的显示,包括姓名、用户名、手机号、邮箱、部门、职位等,如图5-2所示。具体功能如下:
(1)添加、查找按钮显示在用户列表上方;
(2)其他功能显示在操作栏中,可以修改用户信息、设置用户密码;
(3)根据实际情况,删除用户采用禁用用户代替。
图5-2 用户管理界面
5.1.3 测试项目菜单设计与实现
测试项目在菜单栏中作为文件夹显示,每个文件夹下用子文件夹代表该测试项目的不同模块,如图5-3所示,具体业务规则如下:
(1)鼠标点击根文件,显示所有测试用例;
(2)鼠标点击子文件夹,显示子文件夹中测试用例;
(3)测试项目菜单可以收起至左侧;
(4)鼠标悬浮至文件夹上显示操作按钮,包括新建、编辑和删除。
图5-3 测试项目菜单界面
5.1.4 测试用例管理界面设计与实现
测试用例管理界面主要展示测试用例编号、状态、执行结果、标题、用例类型、重要程度、状态、执行人、更新时间、创建时间等信息,其他信息展示在详情处,如图5-4所示,具体业务规则如下:
(1)添加、查找、导入、导出按钮显示在用例列表上方;
(2)可在页面直接修改状态、执行结果、标题、用例类型;
(3)鼠标点击标题,可查看用例详情;
(4)悬停至标题,显示编辑、复制链接、关联缺陷报告按钮,如图5-5所示;
图5-4 测试用例管理界面
图5-5 测试用例操作界面
5.1.5 缺陷报告管理界面设计与实现
缺陷报告管理界面主要展示缺陷报告编号、标题、优先级、状态、创建人、负责人、创建时间、更新时间等信息,其他信息展示在详情处,大体如图5-6所示,业务规则与测试用例管理界面相同,在这里不多赘述。
图5-6 缺陷报告管理界面
5.1.6 统计报表界面设计与实现
统计报表界面如图5-7和5-8所示,主要实现了简洁直观的用例统计功能,目前可以根据测试用例维护人、测试用例维护人、测试用例状态和测试用例类型进行分布统计,点击报表可以查看具体数据详情。
图5-7 统计报表概览图
图5-8 统计报表详细图出图
5.2 平台业务逻辑层设计与实现
本系统中除用户登录外存在较多的业务逻辑,包括添加、修改、查询、删除、导入、导出等。受限于篇幅限制,本文主要通过用户登录、测试用例管理模块、自动化测试框架管理模块以及缺陷问题处理的业务逻辑展开叙述,缺陷问题管理不再详细描述。
5.2.1 用户登录
用户登录时序图如图5-9所示:以下简单介绍该系统登录的判断原则:
(1)账号及对应职位不存在,则不允许登录,提示“账号不存在!”
(2)账号及对应职位存在,但密码错误,则不允许登录,提示“账号与密码不匹配!”
(3)账号及对应职位存且密码正确,则跳转到用户职位对应界面。
图5-9 用户登录时序图
5.2.2 测试用例管理
测试用例管理首先包括添加、修改、删除、查询基本功能,用户发送请求传递参数,后端在controller层接收后调用service访问数据库处理。具体时序图如5-10所示:
5.2.3 自动化测试框架管理
自动化测试框架管理主要实现代码管理、分支覆盖率统计和自动化测试用例执行报表生成,具体内容如下:
(1)代码管理目前复用GitHub界面,点击代码管理,跳转至GitHub网址,如图5-18所示;
(2)覆盖率统计当前报表为作者代码三个分支插入JaCoCo插件后得出的结果,如图5-19所示;
(3)自动化测试用例执行报告目前主要通过手工执行单元测试用例,数据来源暂时为作者构造,如图5-20所示。
5.2.4 测试问题处理
平台实现测试用例与缺陷报告的关联,在此介绍一下缺陷问题处理流程,流程图如图5-21:
(1)测试人员执行测试用例时发现问题,新建缺陷报告,并将测试用例链接复制到缺陷报告中,缺陷报告建立后将链接复制到测试用例中,此时缺陷报告状态为新提交;
(2)开发人员查收缺陷报告,并根据测试用例链接查看复现步骤,以便排查、修复问题,确认问题已解决后将缺陷报告状态置为已修复;
(3)测试人员会对已修复缺陷问题进行回归验证,验证通过则将缺陷问题置为已发布,意为已解决,至此缺陷问题处理流程结束;验证不通过需将缺陷状态置为重新打开,待开发人员重复流程(2)。
5.3 平台核心算法层设计与实现
本平台核心问题在于测试用例的自动生成,当前可根据对需求文档进行分词后,根据已有测试用例进行推荐生成,后续将实现根据基础测试理论进行自动生成。
5.3.1 分词算法
分词算法采用Python中文分词软件中的“结巴”分词,直接导入即可,具体实现如图5-22所示:
import os import jieba class Segmentation: files = [] def __init__(self): self.files = os.listdir("contents") def segment(self): count = 0 for file in self.files: count+=1 if count == 2: break f = open("contents" + "/" + file, encoding='utf-8') content = f.readline() seg_list = jieba.cut(content) # 默认是精确模式 print(", ".join(seg_list)) if __name__ == '__main__': segmentation = Segmentation() segmentation.segment()
图5-22 分词结果图
5.3.2 推荐算法
在进行生成测试用例推荐文本之前,需要使用Apriori算法对需求文本进行数据挖掘,得到关联规则,并存入数据库[31]。实现结果如图5-23所示:
public CommonReturnType apriori(){ List<Case> cases = caseMapper.list(); List<ProductDoc> prds = productDocMapper.list(); Map<Case,Integer> support = getSupport(cases,prds,2); //现在这个Map里存放的即为L1 List<Rule>L1 = new ArrayList<>(); for (Case case:support.keySet()){ Rule rule = new Rule(); rule.setAtts(case.getName()); int occ=support.get(case); if (occ==0)continue; rule.setOccurence(occ); rule.setSize(1); L1.add(rule); ruleMapper.insert(rule); } dfs(L1,cases,prds,2); return CommonReturnType.create("sucess"); } private void dfs(List<Rule>lk,List<Case>cases,List<ProductDoc>prds,int miniSupport){ ArrayList<Rule> lk1 = getLkPlus1(lk,cases,prds,miniSupport); if (lk1==null)return; for (Rule rule:lk1){ ruleMapper.insert(rule); } dfs(lk1,cases,prds,miniSupport); }
图5-23 测试用例推荐结果图
5.4 本章小结
本章主要从一些界面展示、功能逻辑、核心算法的详细设计入手,介绍了系统中一些关键功能与核心算法技术的实现过程。到本章为止,平台的全部业务基本实现,接下来,本课题将会对平台开展功能相关测试。
6 测试
省略
结论
本平台根据软件工程开发思想完成了全部的开发任务,开发搭建了测试事务管理平台,为测试人员和开发人员的工作流程和项目闭环提供了很好的便利。
开发流程上,平台主要基于软件工程中常用的增量模型进行逐步构建完成整个平台,增量1—用户管理模块开发,增量2—测试用例管理模块基础框架开发,增量3—测试用例关联测试报告功能开发即缺陷报告管理模块开发,增量4—自动化测试框架管理模块基础框架开发,增量5—测试用例自动生成功能开发。
功能上,平台创新性地实现自动生成测试用例,提高测试效率;并设计了基于测试点集的推荐算法,以内容过滤为核心思想,提供可用测试用例供测试人员选择。同时,平台实现了项目管理、测试用例管理、缺陷报告管理全流程跟进,便于测试人员和开发人员敏捷、高效合作。
架构上,平台以 B/S 三层架构作为基础,界面表现层为用户提供了可视化的操作界面;业务逻辑层除了实现各个业务模块的基本功能需求外,根据设计模式六大原则,尽量降低了各业务代码的耦合性;数据层主要为用户操作数据提供服务,包括的读写等更新操作。三者各司其职,完成了平台的底层架构,提高整个平台的灵活性和易用性。
综上,本平台采用了规范的开发方法和标准的设计原则,保证平台开发过程的完整性、正确性和可度量性;经过功能测试验证可得:所开发的平台在业务内容和响应性能上能够满足实际应用需求;所采用的三层架构有利于后续代码维护与软件升级。
参考文献
[1] 赫彦文.基于智能优化算法的MC/DC测试用例生成研究[D].北华航天工业学院,2021.
[2] 周子闻.自动化测试中GUI目标的模式识别方法研究[D].北华航天工业学院,2021.
[3] 陈颖超.基于Web的测试用例管理及生成系统[D].西安电子科技大学,2017.
[4] 傅兵.软件测试技术现状与发展趋势研究[J].电脑编程技巧与维护,2016(02).
[5] 张涛.软件技术基础实验教程[M].西北工业大学出版社,2015.01:111.
[6] 陈姗姗. 基于SOA的广播综合业务协同管理平台的设计与实现[D].南京邮电大学,2020.
[7] 李香菊,孙丽,谢修娟,等.软件工程课程设计教程[M].北京邮电大学出版社,2016:72.
[8] 冯灵霞,邵开丽,张亚娟,等.软件测试技术[M].西安电子科技大学出版,2017:14.
[9] 王宇成.基于Simhash和层次聚类算法的网页去重技术研究[D].南京邮电大学,2019.
[10] 唐聃.自然语言处理[M].电子工业出版社,2018.
[11] 余方兴.加权关联规则优化算法研究[D].华中师范大学,2014.
[12] Agrawal R,Srikant R.Fast Algorithms for Mining Association Rules in Large Databases[C].Proceedings of the 20th International Conference on Very Large Data Bases.IEEE,1994.
[13] 陈涛,叶荣华.基于Spring Boot和MongoDB的数据持久化框架研究[J].cnki,2016.
[14] Smith,Josh.WPF Apps with the Model-View-ViewModel Design Pattern[J].MSDN Magazine,2009.
[15] Oracle.MySQL参考手册[EB/OL].https://www.mysql.com/,2021-5-5.
[16] 刘广峰,黄霞.计算机基础教程[M].华中科技大学出版社,2016:116.
[17] 祁薇,杨健,王辉.基于软件生命周期的计算机教学设计创新案例[J].软件工程,2016,19(03):58-60.
[18] 邓飞.基于精益创业的新产品开发迭代路径研究[D].重庆邮电大学,2018.
[19] 王铮. HBYD公司库存管理改善研究[D].河北工业大学,2016.
[20] 梁智欣.广东国税征管辅助信息系统分析与设计[D].华中科技大学,2012.
[21] 张峻巍.基于微服务的天文数据检索与学习平台开发[D].东北林业大学,2020.
[22] 张玉洁.拖拽式数据可视化工具的设计与实现[D].西安电子科技大学,2020.
[23] 张辉,贲可荣,马喆.面向服务的遗留系统再工程过程[J].海军工程大学学报,2009,21(05):57-62.
[24] 袁晓平.基于物联网技术的实验室设备管理系统[D].西北师范大学,2013.
[25] 谢树仁,邓凯成,喻琨,陈政.基于Python框架的农业信息共享平台研究——以湖南省衡阳市为例[J].经济师,2021(05):37-39.
[26] 王洪岩.基于SilverLight和WebService技术的软件测试用例库管理系统的设计与实现[D].东北师范大学,2014.
[27] 许崇华.智慧养老信息服务平台的研究与实现[D].广东工业大学,2016.
[28] 杨棠勋. BD健身俱乐部会员信息系统设计与实现[D].电子科技大学,2014.
[29] Hallin Peter F, Ussery David W.CBS Genome Atlas Database: a dynamic storage for bioinformatic results and sequence data[J].Bioinformatics,2004(18):18.
[30] 霍士伟,刘许刚,张博刚.通用综合评价系统的设计与实现[J].电信快报,2017(09):16-18+23.
[31] 王乙超.基于网络游记的旅游景点推荐系统[D].湖南师范大学,2020.
致谢
省略
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于Vue.js+SpringBoot+MySQL的测试事务管理平台设计与实现(源码+文档)_Vue.js_BS架构_测试事务管理平台 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。