APP下载

软件开发技术平台的研究与实现

2020-12-26边皓日陈晓宇刘琳李祺内蒙古电力集团蒙电信息通信产业有限责任公司

环球市场 2020年26期
关键词:测试人员用例代码

边皓日 陈晓宇 刘琳 李祺 内蒙古电力集团蒙电信息通信产业有限责任公司

项目管理就是将知识、技能、工具与技术应用于项目活动,以满足项目的要求。项目管理通过合理运用与整合特定项目所需的项目管理过程得以实现。项目管理使组织能够有效且高效地开展项目。随着软件应用水平不断提高,软件开发的规模越来越大,开发过程日益复杂,传统的开发模式和管理模式已经不能满足现状,很多项目的整合管理问题越来越明显,公司必须建立软件开发技术平台,来保障项目生命周期的健康运行。软件开发项目通常规划成多个迭代完成,进行阶段性产品或服务的交付。传统瀑布模型无法满足软件开发的快速交付需求,周期长,应对变化能力差,而且开发过程管控困难,细节遗漏和再确认耗时耗力,例如测试人员不知道某些需求的开发人员是谁,导致发现问题需要先确认人员再修复问题,延长了处理时间。另外项目的进行涉及不同职能人员较多,无法建立快速有效的沟通方式,造成各级领导,项目经理,业务人员等无法及时的了解项目状态,不能针对工作进行量化。因此,建设软件开发技术平台进行软件开发项目的全生命周期的管理是非常必要的。

一、系统设计

(一)系统部署

软件开发技术平台服务采用Docker容器化部署,直接将服务环境进行打包,包含数据库和应用等,系统维护更加快捷,实际部署耗时较短,部署在 Linux 操作系统中。服务部署成功后,用户直接通过PC浏览器网址访问,浏览器包括Chrome,Firefox等主流浏览器,同时支持移动端的任务快速处理(见图1)。

图1

(二)系统实现

本系统采用MySQL 数据库,使用 go语言和 React前端开发工具,为数据的存储和系统的开发提供了基础条件。基于 B/S 架构,即通过浏览器(Browser)和 服务器(Server)架构,为系统的稳定运行提供了支持。软件开发技术平台为单独运行的系统,团队成员可直接根据的自己的职能权限开展工作,同时本系统支持对接第三方工具,包括企业微信、钉钉等,实现统一组织架构的登录和通知功能。本系统可与研发相关平台、工具对接,包括与代码仓代码关联,绑定Jenkins平台,将整个DevOps流程在平台完成一站式可视化管理,将软件研发的全流程实现完整的闭环管理(见图2)。

图2

二、功能及流程

(一)项目管理

1.需求管理

根据具体的软件开发项目,对项目需求进行规划和管理,包括创建需求、设置需求优先级、将需求关联到迭代、拆分到工作项、关联测试和测试结果、关联其他工作项、需求工作流转、需求视图管理等。需求管理主要是用来将整理的需求与用户的反馈相关联,便于回溯来源,了解更为完整真实的用户场景。

2.项目迭代

项目迭代针对敏捷开发模式,在该种模式下常以迭代开发的方式进行开发,这种方式可以帮助团队及时的改进项目和把控项目进度,一次迭代可能发布某个或者某几个功能,一次迭代过程包含这些新功能所包含的所有开发工作项,可以阶段性的交付产品或服务。

3.任务管理

通常在确定了项目方向即需求范围后,规划迭代,在迭代中进行各种工作的拆分。通过拆分需求和自定义任务类型来建立任务,并将任务指派给项目成员,项目成员在完成对应的工作后,通过改变任务状态等来表示项目的进度和下一阶段负责人。

4.缺陷管理

在项目进行或运营阶段,所交付的产品或服务可能会产生多种缺陷,包括内部测试缺陷,用户缺陷反馈等。对项目中所有缺陷进行记录、追踪、修复和管理。

5.反馈管理

项目完成交付后,运营人员通过收集用户反馈整理成相应的优点和问题,为项目的迭代和规划做准备,同样为以后的项目规划和开展提供经验及规划参考。

6.组件管理

项目组件化管理,将需求、缺陷、文档、报表等项目中涉及的工作项添加到项目流程中,自定义设计不同的流程,满足项目的需求。

7.团队管理

团队成员的信息维护,组织架构管理,根据团队职能差异分配不同权限,根据权限处理项目事务。

(二)项目集管理

组织级项目管理,主要是全面汇总项目信息,创建项目集,在项目集中添加或删除项目,对项目集进行编辑。还可以新建甘特图,更方便的展示项目的进展情况。

(三)项目开发

代码仓库是一个代码管理工具,用来存放代码,使开发人员可以协同工作。建立项目,关联项目和代码仓库中的代码,配置不同的权限,设置代码提交合并的权限,代码查看的权限等。

(四)测试管理

研发编码完成后,需要根据需求进行功能的手工测试,从迭代规划开始,测试人员即可以根据迭代内的需求范围进行用例库创建,用例编写和测试计划创建。执行测试计划时,可以选择开始、进行中、已完成三种状态进行状态的更改。执行用例时,在具体的测试计划中,点击用例可进行详细的用例步骤执行、一键提交BUG至项目或迭代中、查看信息及编辑用例。

(五)知识库管理

在整个项目生命周期中,会产生不同种类的文档,通过知识库管理,将项目中需要记录的信息和知识分享进行记录。创建页面并填写内容,可以将不同的页面组合,将文档关联到项目,支持文档协作,将自己的经验分享给大家,形成团队的知识库。

(六)持续交付管理

在研发编码阶段,软件开发技术平台与代码仓库和部署工具集成,能够查看代码提交的记录、构建结果、代码质量分析、自动化测试结果和部署结果。

(七)系统流程

如图3所示。

图3

三、应用效果

(一)团队组织的结构化管理

项目的开展需要明确项目的所在组织系统,在系统内部有效且高效地开展项目,项目经理或项目负责人需要了解组织内的职责、最终责任和职权的分配情况。通过平台可以将团队成员进行统一管理,职能权限细化分配。更好地管理活动的框架、功能和过程,从而创造独特的产品、服务或结果以满足组织、战略和运营目标。

(二)全面的管控项目进度

软件开发通常需要快速迭代阶段交付成果,平台将项目全生命周期进行统一管理,迭代规划更加清晰,传统瀑布式模型的局限性和不足得到解决,更能整合DevOps工具链,优化开发测试运维流程,开发运维一体化,使得软件构建、测试、发布更加快捷、频繁和可靠。

(三)项目过程精细掌握

传统项目功能开发工作,通常根据项目功能清单进行开发,开发完成后缺少完成的信息,导致测试人员不知道功能是否完成。在交给测试人员后,测试人员有时无法分辨功能开发者,需要线下询问后才能确定开发人员进行缺陷修复。在平台中,所有与项目相关的工作,都可以做到详细的过程管理,从开始建立到最终完成,整个过程的记录均可追溯,避免了细节遗漏。

(四)工作的协同与沟通

项目的顺利开展和进行需要多个职能部门间的协作,项目开发过程中各部门之间,各部门与集成商之间可以完成有效的沟通,流程的自动化操作。记录完整的管理信息,各级领导、业务人员和项目管理者可以及时、自动地了解项目管理状态,量化内部项目人员及供应商项目组成员工作量及工作进度。

四、结语

软件开发技术平台,提供了覆盖瀑布开发、敏捷开发以及DevOps全流程、全场景的软件项目管理服务,通过制定长期项目计划和短期迭代规划,跟踪研发进度和质量,帮助团队高效高质量地交付软件产品。平台将建立起一个集成需求管理、项目管理、缺陷管理、组织管理、代码管理和流水线管理的自动化平台,完全覆盖研发类项目的核心流程。从软件项目的立项、需求确认、成立团队、开发、测试、到上线及版本控制进行全方位的管理与监测,让软件开发的流程不仅可以进行量化、也可以为项目的管理者与参与者提供多个维度的分析,让项目开发流程清晰可控,有效避免重复开发,有效掌握开发人员的能力和代码质量。减少系统开发风险,提高业务精细化管理水平、提高管理和运行效率。

随着软件开发项目的更快更多的变化,针对项目的管理需要更专业的平台支持。软件开发技术平台的建立,项目管理者和执行者,可以随时了解项目的进度。对项目管理模式改进提供了有力支持,过程持续优化,项目运行状态更健康,更好更快完成项目目标,提高了项目的管理水平。

猜你喜欢

测试人员用例代码
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
论职务犯罪侦查中测谎技术的应用与完善*
联锁软件详细设计的测试需求分析和用例编写
创世代码
创世代码
创世代码
创世代码
浅析软件测试中的心理学应用
绿植防辐射只是个传说,是真的吗?