杨玉 王博 徐震阳 钱佳琛
摘 要:近年来,随着互联网的高速发展和软件市场规模的快速提升,在各类软件项目研发过程中,出现了软件测试周期长、需求变动后难以快速迭代等诸多问题。鉴于此,文章在探究敏捷开发和敏捷测试优势和特点的基础上,构建了软件质量智能分析平台。该平台以图书馆智能管理系统作为测试案例,展示了覆盖全过程的测试管理功能,使得团队协作更高效、数据分析更智能。
关键词:软件研发;敏捷测试;团队协作;软件质量分析
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)06-0120-04
Research on the Construction of Software Quality Intelligent Analysis Platform
YANG Yu, WANG Bo, XU Zhenyang, QIAN Jiachen
(School of Computer Engineering, Jiangsu Ocean University, Lianyungang 222005, China)
Abstract: In recent years, with the rapid development of the Internet and the rapid improvement of the software market scale, many problems have emerged in the process of various software project research and development, such as long software testing cycle, difficult to quickly iterate after demand changes, and so on. In view of this, based on exploring the advantages and characteristics of agile development and agile testing, this paper constructs an intelligent software quality analysis platform. The platform takes the library intelligent management system as a test case, showing the test management function covering the whole process, which makes team collaboration more efficient and data analysis more intelligent.
Keywords: software development; agile testing; teamwork; software quality analysis
0 引 言
軟件是数字经济发展的基础,是数字中国、科技强国建设的关键支撑。2021年11月30日,工信部在《“十四五”软件和信息技术服务业发展规划》中明确提出到2025年,基础软件和关键软件供给能力显著提升,新兴软件长板优势持续巩固[1]。2022年10月26日,工信部公布前三季度我国软件业务收入74 763亿元,同比增长9.8%,我国软件业运行态势平稳,软件业务收入稳步增长[2]。软件质量是软件的生命,它直接影响着软件的使用和维护,如今软件开发已经向轻量级的敏捷开发方式进行转变。敏捷开发在满足快速响应的需求同时也要保证软件产品的质量。在敏捷开发和敏捷测试模型中,开发与测试的工作相辅相成,强调测试驱动开发,这就对测试人员与开发人员的专业素养与协同能力提出了更高的要求。解决项目管理人员、开发人员和测试人员在整个软件研发过程中所面临的问题,并给出较好地解决方案,在快速响应与迭代的敏捷测试基础上,进行软件质量智能分析,从而更好地保证软件产品的质量。
1 平台需求分析
敏捷开发能够及时、持续地响应客户的频繁反馈,而敏捷测试是遵循敏捷开发规则的测试实践,确认客户的有效需求能得以圆满实现和确保整个研发过程安全和可靠。本平台基于敏捷测试的思想来实现软件质量智能分析,主要包括用户管理、项目管理、质量分析三大模块。超级管理员拥有最高权限,可以管理部门、用户、权限、项目、模块、需求、用例、缺陷等。普通用户由管理员分配不同角色,在自己的角色权限框架内完成从需求到测试用例以及缺陷管理等各类工作。
1.1 权限管理模块分析
软件是智力密集型创新团队中个体认知过程的直接产品[3]。本平台的系统用户主要分为管理人员、开发人员、测试人员三类角色,共同构成一个项目团队,一个角色可以拥有多个权限,不同角色的权限有所不同。本平台的用户管理通过与其他管理模块的信息交互,使得企业的研发过程更为顺畅。用户管理以项目为单位,随着企业规模的扩大,员工人数的增加,需要平台支持对人员的个性化管理。管理人员可以为每个项目动态分配工作人员,并为员工分配不同的角色和权限。
1.2 项目管理模块分析
软件研发的每个环节都严格按照要求进行,才能保证软件质量。项目管理主要包含测试需求、测试用例和缺陷报告三方面。基于敏捷测试的思想,测试人员在项目初期就要开展需求评审,根据测试需求设计并执行测试用例,将异常用例转移到缺陷管理中。这个过程中测试人员会根据需求随时变更,及时调整测试策略和优化测试用例。开发人员负责修复可重现的软件缺陷,完成后再由测试人员进行验证,若通过则关闭此缺陷,否则继续循环该流程。管理人员也会对项目所存在的问题和风险进行跟踪和管理,确保项目得到保质保量地推进。
1.3 质量分析模块分析
随着软件不断迭代发展,软件维护成本也相应增加[4]。软件产品质量的好坏可以通过是否满足用户需求、测试用例的通过率以及缺陷的修复率来进行客观分析。因此,本平台可以汇总当前团队的所有项目数据,如团队人数、测试项目个数、已完成需求数、待办数等。根据项目的不同分类通过饼图、柱状图等图表直观的展示新增和已完成的测试需求、测试用例和缺陷的数据汇总,从而为软件质量智能分析提供更为全面的数据支撑。
1.4 非功能需求分析
本平台的非功能需求主要集中在易用性、兼容性和可靠性等几个方面。平台应具备易理解、易学习、易操作等特性,用户经过简单培训或自主学习即可掌握平台的主要操作流程,支持主流浏览器的访问和操作。一个平台的使用舒适度会很大程度上影响用户的体验度,需要做到界面布局合理、设计风格统一、UI交互适合主流习惯。对于可靠性的考量需要从时间维度和空间维度来分析,新增测试用例和缺陷管理是两个高频操作,要尽可能地保障关键业务能够正常进行。
2 平台设计
2.1 总体设计
敏捷开发强调个人和交互的中心性、工作软件的增量交付、与客户的协作以及对变化的响应[5]。本平台基于敏捷测试以及对软件质量保障的需求进行分析和设计,可以生成基于单个项目或多个项目的工作汇总和软件质量分析。平台的逻辑分层架构大致分为应用层、数据层和接入层,如图1所示。
应用层主要包括用户管理、测试管理和软件质量管理,通过Web服务实现用户与系统的交互,为管理人员、测试人员和研发人员提供相应的服务。数据层为应用层提供各种已经封装好的数据,有用户数据的整合、测试数据的整合和软件质量报告数据的生成。接入层通过提供统一的数据上传和下载功能来减少开发语言和终端工具的差异,使平台拥有更强的扩展性。
根据平台的需求分析和总体架构设计中的描述,对平台的功能模块进一步划分为用户、需求、测试用例、缺陷和质量分析五个模块,如图2所示。
2.2 用户管理
现代软件开发一般都会以团队形式展开,以期缩短从需求到上线之间的时间[6]。平台的用户可以进行注册和登录,用户信息有用户名、密码、性别、电话、邮箱、部门、角色、权限等。基本信息由所属部门统一维护管理,角色和权限分配则由管理人员根据项目工作需求组建团队,并对团队成员的角色和权限灵活分配。
2.3 测试管理
测试管理模块包含需求、测试用例和缺陷三个子模块。需求管理模块主要是新建并管理各类项目的测试需求,为后面的测试用例提供需求依据。测试人员依据测试需求去设计测试用例,一条测试需求可以关联多个测试用例。测试用例执行过程中若存在实际结果与预期结果不一致的情况,则将该条测试用例设为缺陷,转到缺陷管理中进一步处理和跟踪。
2.4 质量分析
在生成项目统计时,会根据当前团队工作的基本信息、操作数据、研发数据、项目数据、需求状态、用例状态、缺陷状态等信息统计出团队效率指标数据,对软件质量进行数据分析。此外,还会根据所有项目的状态来动态地生成团队成员能力雷达图,展示团队在创新、测试、管理、效率、项目等方面的表现,为管理人员优化团队结构提供数据支持。
3 平台实现
敏捷开发的核心思想在于快速、增量式地交付可工作的软件[7]。本平台的主要作用是协调管理人员、研发人员和测试人员之间的关系,使得研发工作更为顺畅,软件产品质量分析更为便捷。平台部署环境为Linux系统的CentOS系统,服务器为Spring Boot内嵌的Apache服务器。平台前端使用Vue 3.0、ElementUI的样式框架、Echarts的图表框架、Vite的前端构建工具等前端组件完成页面渲染工作,后端使用Spring Boot框架、MySQL数据库和Navicat数据库管理工具等技术完成系统协作开发。
3.1 用户管理
在用户管理页面,若新成员加入项目团队,则由管理人员在平台中录入该员工的基本信息并授予角色和权限。管理人员也可以在某个软件项目成立时或者团队成员的工作发生变动时,使用此模块为该员工调整其角色以及相应的权限分配。
3.2 需求管理
在需求管理页面,管理人员可以在指定项目下添加测试需求的相关信息,如需求标题、需求描述、指定测试人员、截止日期、优先级等。被指派的测试人员查看到该需求信息时,此需求的狀态由“未处理”自动被设置为“处理中”,并且可以在测试用例管理页面中将多个用例关联到此需求。敏捷研发接受需求变更,旨在为客户赢得更多的竞争优势。所以若客户对产品需求提出修改意见,都会对关联的测试用例和缺陷产生影响,因此,平台会对该类需求及其相关联的部分都进行高亮显示,提醒测试人员进行再次确认。
3.3 测试用例管理
在测试用例管理界面,主要实现测试用例信息的新增、修改、与需求和缺陷的关联以及用例的执行统计。测试用例的属性主要有所属项目、所属模块、用例类型、关联需求、优先级、用例标题、前置条件、执行步骤和预期结果等,如图3所示。测试用例管理页面的每一条用例都有一个显示用例结果的功能按钮,用表格展示所有用例的执行情况,如执行时间、执行人和执行结果。表格中的下拉列表用于显示测试用例每一个执行步骤的通过情况和运行结果,若实际结果与预期结果不一致,则将该测试用例转为缺陷并指派对接的研发人员负责缺陷修复。
3.4 缺陷管理模块
在缺陷管理页面可以新增和修改缺陷,缺陷信息主要包含所属项目、所属模块、当前指派人员、截止时间、缺陷类型、优先级、缺陷标题、重现步骤等内容,如图4所示。研发人员在缺陷管理界面查看到指派给自己的缺陷,进一步确认缺陷是否存在或者产生的原因,待缺陷修复后,提交缺陷的解决方案、指定的测试人员、缺陷解决时间、缺陷状态等信息。再由测试人员对已修复的缺陷逐一验证,若确认无误则将该缺陷标记为关闭状态。至此,一个缺陷的生命周期结束。缺陷的状态除了打开—修复—关闭三个基本状态以外,还有延迟、无法解决、功能增强等其他状态,所以测试人员需要对所有缺陷进行实时跟踪与监控,确保缺陷都能得到及时解决和处理。
3.5 软件质量分析模块
在项目质量分析界面中可以查看以公司为单位的基本数据、操作数据和能力雷达图,以项目为单位的研发数据、项目数据,当前项目测试团队的工作概况,以饼图来呈现项目、需求、用例、缺陷等信息。该界面主要实现团队工作汇总和项目数据汇总,以列表、条形图和饼图等多种形式展现项目的相关数据,如图5所示,为公司管理人员进行项目管理与工作总结提供了数据支撑,对软件质量的分析评判更为直观明了。
4 结 论
习近平总书记在中共中央政治局第三十四次集体学习时强调“要全面推进产业化、规模化应用,重点突破关键软件,推动软件产业做大做强,提升关键软件技术创新和供给能力”。在软件快速迭代开发的浪潮下,传统软件研发流程中测试需求难以快速反映到测试用例和缺陷上,从而影响了软件产品的质量和客户的竞争优势。本文针对软件质量如果实现智能分析进行探究,合理运用相关技术,解决管理人员、测试人员和研发人员之间工作沟通的障碍,从测试需求到测试用例,再到缺陷管理以及软件质量的智能分析展示,可以更好地提高软件研发全过程的工作效率,并更好地保障软件产品的质量。今后在管理界面中的富文本编辑器功能改进、测试数据的自动生成,以及采用AI模型对缺陷数量与位置进行预测分析等方面还需进一步深入研究。
参考文献:
[1] 工信部信息技术发展司.《“十四五”软件和信息技术服务业发展规划》解读 [N].中国电子报,2021-12-03(7).
[2] 工业和信息化部运行监测协调局.2022年前三季度软件业经济运行情况 [EB/OL].[2022-10-18].https://www.miit.gov.cn/jgsj/yxj/xxfb/art/2022/art_42a03e3ea3a647c1a62c53cd7b895905.html.
[3] 梁惠惠.對软件开发模式变迁的研究 [J].现代信息科技,2019,3(22):1-4+8.
[4] 郭亚琳,李晓晨,任志磊,等.自动化软件重构质量目标与非质量目标有效性研究 [J].计算机科学,2022,49(11):55-64.
[5] 钱雨,孙新波,孙浩博,等.数字化时代敏捷组织的构成要素、研究框架及未来展望 [J].研究与发展管理,2021,33(6):58-74.
[6] 荣国平,张贺,邵栋,等.软件过程与管理方法综述 [J].软件学报,2019,30(1):62-79.
[7] 龚兰兰,凌兴宏.基于敏捷开发的SSM Web应用开发实践 [J].实验技术与管理,2020,37(2):160-163+167.
作者简介:杨玉(1979—),女,汉族,江苏扬州人,讲师,博士,研究方向:软件质量保障、智慧教育。
收稿日期:2022-11-09
基金项目:2022-2023年度连云港市社会科学基金项目(22LKT0019);2021年江苏省大学生创新创业项目(202111641099Y);2022年江苏省计算机学会教学类项目(JSCS2022028);2021年江苏海洋大学教育教学改革项目(JGX2021019)