姜文 刘立康
[摘 要] 随着计算机技术的快速发展,软件广泛应用到各个领域。软件应用规模越来越大,应用形式越来越复杂,软件质量要求越来越高,软件测试越来越重要。软件测试工作可以分为两类:测试设计和测试执行。为了规范管理测试组日常工作,软件测试组采用跨部门的矩阵流程图管理日常的测试工作。结合工作实践分别给出软件测试设计工作流程图和软件测试执行工作流程图,通过工作任务表详细叙述了流程节点的工作任务,叙述了软件测试的风险分析与控制。工作实践表明,采用规范的流程管理,可以提高测试组的工作效率,有助于改进测试工作的风险控制,提高软件产品质量。
[关键词] 软件测试;工作流程;流程节点;工作任务表;风险分析与控制
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2019. 19. 062
[中图分类号] F273;TP311.5 [文献标识码] A [文章编号] 1673 - 0194(2019)19- 0142- 05
0 引 言
随着计算机技术的快速发展,软件越来越普遍应用到各个领域和各个方面。如今软件已经渗透到人们的日常生活中,从办公设备到家用电器,从通信工具到航空航天事业,软件无处不在。软件是信息化的核心,现代国民经济、国防建设、社会发展及人民生活都离不开软件。软件产业是增长最快的朝阳产业,是高投入、高产出、无污染、低能耗的绿产业。软件产业关系到国家经济和文化安全,体现了国家综合实力,是决定未来国际竞争地位的战略性产业。目前软件应用规模越来越大,应用形式越来越复杂,软件质量要求越来越高,软件测试越来越重要。
当前及今后,“软件定义一切”充分说明了软件的重要性。软件作为产品及产品中的核心,其质量可以认为是产品的生命。在国家大力推行信息化与工业化融合之际,信息软件与工业软件的质量决定了“两化融合”的成败。软件质量保证的最重要手段之一就是软件测试。
在大型软件项目的开发过程中,开发工作可以分为两类:软件开发和软件测试,二者之间的关系如同一枚硬币的正反两面。本项目组从事通信网云化软件的开发,该软件以后要用于5G通信的核心网。软件开发需要掌握通信网技术,熟悉许多通信协议,具有一定的难度和复杂度。为了规范在研项目测试组日常工作流程管理,软件测试组采用跨部门的矩阵流程图管理日常的测试工作流程。这样有助于提高测试组的工作效率,提高测试组测试工程师(TE)的业务水平,提高软件产品质量。
1 软件项目组组织形式
项目组通常分为软件开发组和软件测试组。软件开发组主要负责软件产品的设计与编码,软件测试组主要负责软件检错和软件版本的验证与确认。软件产品实际上是软件产品的某个版本,没有经过验证与确认是不能交付应用。
1.1 软件开发组
从技术上来讲,软件开发组由系统工程师(SE)和软件开发工程师(SWE)组成,SE主要负责软件设计,SWE主要负责编程。
1.1.1 软件系统工程师(SE)
SE根据客户提出的需求文档给出可行的设计方案;完成软件需求设计、架构设计和详细设计;将设计场景文档转换为开发场景文档,提供给SWE进行软件编码。在软件开发过程中,SE和SWE共同处理遇到的各种问题。
1.1.2 软件开发工程师(SWE)
SWE根据SE给出的软件产品设计场景文档编写代码;源代码调试、自验之后,将源代码合入版本库;处理持续集成工程师(CIE)和测试工程师提交的问题单,定位问题产生的原因,修改代码,重新将代码合入版本库。
1.2 软件测试组
软件测试组的工作可以分为两类:测试设计和测试执行。从技术上来讲,软件测试组主要由软件测试架构师(TSE)和软件测试工程师(TE)组成,TSE主要负责软件测试设计,TE主要負责软件测试执行。有的单位可能没有测试架构师,测试设计工作通常由测试组长或测试经理负责。
1.2.1 软件测试架构师(TSE)
TSE根据需求规格文档和SE给出设计场景文档,编写软件产品测试策略;细化与分析软件测试点,编写软件测试用例。将测试用例分配给TE进行自动化测试脚本编写。与TE共同处理软件测试过程中遇到的各种问题。
1.2.2 软件测试工程师(TE)
TE根据设计场景文档、测试策略和测试用例编写自动化测试脚本。搭建测试环境,安装软件版本包,执行软件测试。对已发现到的软件缺陷,提交问题单,进行问题单跟踪,SWE修改源码解决软件缺陷之后,TE需要执行问题单回归测试,直到问题单处理完毕。
2 测试组工作流程管理
软件测试组的工作与软件开发组的工作相互交织、密切相关,往往显得杂乱无章。制度管人,流程管事。建立合理和实用的测试工作流程,才能提高工作效率和减少测试风险。软件测试工作可以分为两类:测试设计和测试执行。本文分别给出软件测试设计工作流程和软件测试执行工作流程。
2.1 测试组工作流程管理的特点
许多图书和文献都介绍软件测试工作流程,基本上都是流水式的工作流程,有助于了解软件测试的工作原理,通常不适合直接用于测试组工作管理。本文通过跨部门的矩阵流程图和流程节点的工作任务表来实现测试工作流程管理。测试组工作流程管理有以下特点:
(1)测试组的工作与开发组的工作密切相关,需要采用跨部门的矩阵流程图才能完整描述测试工作流程。
(2)矩阵流程图的节点表示工作进程,通过矩阵流程图的节点可以确定谁(Who)来完成该节点的工作,完成什么(What)工作任务。
(3)流程节点的工作任务表确定了每个阶段的工作内容,输入/输出文档。
(4)有助于对测试工作进行风险分析和控制。
2.2 软件测试设计工作流程
2.2.1 软件测试设计工作流程图
软件测试设计工作流程图如图1所示。
2.2.3 测试设计风险分析与控制
软件测试设计的主要风险是漏测和对软件产品业务的错误理解。
(1)软件产品需求风险。产品需求的不明确,对产品需求理解不准确,需求变更没有及时沟通处理;导致测试范围存在误差,遗漏部分需求或者执行了错误的测试点。
风险控制:通过图1中第1、2、4、5行的节点控制该风险。
(2)软件设计和代码风险。软件概要设计、详细设计存在问题,开发工程师对软件设计和要求理解不准确,代码质量差;导致漏测和测试失败。
风险控制:通过图1中第1、2行的节点控制该风险。
(3)测试策略和测试用例风险。测试策略设计没有做好细化与分析软件测试点工作,测试用例设计不完整,忽视了边界条件、异常输入等情况,用例覆盖率没有做到足够覆盖产品需求;导致漏测和各种测试问题。
风险控制:通过图1中第3、4、5行的节点控制该风险。
2.3 软件测试执行工作流程
2.3.1 软件测试执行工作流程图
软件测试执行工作流程图如图2所示。
2.3.2 软件测试执行流程节点的工作任务
软件测试执行流程节点的工作任务如表2所示。
2.3.3 软件测试执行风险分析与控制
软件测试执行过程中的风险主要是测试结果是否正确,主要关注测试技术和方法。
(1)测试工程师对测试用例理解不准确。测试工程师对测试用例理解不准确,导致不能正确编写自动化测试脚本,不能正确完成测试用例测试。
风险控制:通过图2中第2行的节点控制该风险。
(2)测试环境风险。不能正确搭建测试环境,往往无法正确开展软件测试工作,尤其对于一些复杂的大型软件产品。
风险控制:通过图2中TE3节点控制该风险。
(3)版本控制风险。开发工程师没有提供正确的转测试版本,测试工程师没有安装最新的转测试版本,没有检查转测试版本的版本号;导致测试失败。
风险控制:通过图2中第5行的节点控制该风险。
(4)缺陷问题单风险。在测试中发现问题后,没有及时沟通定位提交问题单,导致该缺陷问题遗漏;提交问题单后,缺陷跟踪不够积极主动,没做好缺陷记录和及时更新,导致问题迟迟没有解决;从而影响软件产品的测试工作,导致软件产品在以后的应用过程中发生问题。
风险控制:通过图2中节点TE6、SWE6、SWE5、TE5闭环控制该风险。
(5)自动化测试脚本风险。自动化测试脚本不仅用于本次测试,以后还要用在冒烟测试后回归测试中,脚本的编写需要符合编码规范,脚本的代码质量需要严格把关。
风险控制:通过图2中节点TSE7、TE7、TE4控制该风险。
3 结 语
“时间就是金钱、效率就是生命”,在测试工作遇到的各種问题,往往造成测试流程的阻塞,需要SE、TSE、SWE、TE之间及时沟通和反馈。有时需要进行多方沟通协调,需要与其他单位和部门之间的沟通、协作,及时处理流程阻塞问题,保证测试工作顺利进行。
工作实践表明,软件测试组采用流程管理可以改变测试工作的混乱状况,规范在研项目测试组日常工作流程管理,提高测试组的工作效率,提高测试组TE(测试工程师)的业务水平;有助于改进测试工作的风险控制,从而提高软件产品质量。在以后的工作实践中需要不断优化和完善该流程管理方法。
主要参考文献
[1]蔡建平,叶东升,康妍,等.软件测试技术与实践[M].北京:清华大学出版社,2018:1.
[2]肖利琼.软件测试之魂:核心测试设计精解[M].第2版.北京:电子工业出版社,2013:5.
[3]刘展.制度管人 流程管事:做最简单高效的管理者[M].北京:中国财富出版社,2015:7.
[4]孙宗虎,付伟.生产管理流程设计与工作标准[M].北京:人民邮电出版社,2006:4.
[5]王光伟.产品研发与质量管理工作执行流程[M].北京:人民邮电出版社,2010:4.
[6]弗布克HR实务中心.管理制度设计实训实战实务[M].北京:人民邮电出版社,2015:7.
[7]易生俊.向流程管理要效益:流程管理的28个关键点[M].北京:电子工业出版社,2016:6.