APP下载

某矿业资源管理平台测试用例的设计研究

2016-01-13余久久杜习英

关键词:测试用例缺陷

余久久, 杜习英

(安徽三联学院 计算机工程学院, 安徽 合肥 230601)



某矿业资源管理平台测试用例的设计研究

余久久, 杜习英

(安徽三联学院 计算机工程学院, 安徽 合肥 230601)

摘要:测试用例的设计过程对于软件测试的成败起着至关重要的作用。首先,介绍了测试用例及其复用技术等相关概念。其次,结合实际测试环境,针对某一矿业集团的资源管理平台(简称MT平台)完成了由制定测试计划、测试用例的选取、设计、执行、评审、缺陷分析与管理各个环节所构成的测试用例设计过程,并对实测模块进行测试用例设计复用。最后,从熟悉测试对象的行业背景、用户参与测试评审会议、准确定位缺陷信息三个方面对未来的测试工作提出了展望。 3) 缺陷信息的定位要准确。当测试人员通过执行测试用例发现缺陷后,需要对缺陷的名称、所在位置、、重现步骤、结果、危害级别等信息描述清晰。

关键词:测试用例 ; 测试设计 ; 评审; 缺陷 ; 复用

软件测试的目的是尽早发现软件产品中的缺陷,验证产品的特性是否满足用户的需求。软件测试用例的设计是软件测试的核心,也是软件测试中的关键技术[1],它是在测试执行之前设计的一套详细的测试方案,主要包括测试需求、测试执行所依赖的前提条件、测试数据与动作的输入、操作步骤、预期结果及评估标准[2]。高效的测试用例设计过程与复用程度已成为保证软件测试质量的重要手段,对于提高测试人员的测试经验、技能,缩短测试周期,避免重复性劳动,及时跟踪测试执行结果等具有重要意义。

测试用例复用技术即把已执行的测试用例不同程度的应用于被测对象新的测试或其它软件的测试活动中,达到在前一测试阶段设计与执行过的一些测试用例可在后续测试阶段中使用、以及在同一领域或相同系统架构的不同软件,存在可以使用某些共同测试用例的目的[3]。近些年,国内外许多专家学者对测试用例复用设计及其所带来的测试高效性(避免重复性劳动,缩短测试周期等)进行过深入研究,均取得显著进展。同时,也提出了一系列测试用例复用过程模型完成对测试用例进行设计与复用,从而解决了测试用例复用过程的系统描述、规范化设计与有效使用等问题,也为基于复用的软件测试的工程化管理提供管理框架[3-5]。有关测试用例复用技术研究的文献资料目前极为丰富,本文主要借鉴相关应用成果用于MT平台测试用例的设计。

1MT平台简介

MT平台是华东地区某矿业集团运维诊断综合系统的一个针对煤炭项目资源管理与分配的子平台,能够全面完整的管理相关煤炭设备资料的运行与使用情况,提供综合查询分析功能,提供对突发事件应急处理的知识库。对所从事煤炭作业项目进行合理的人员分配,管理项目组人员的个人信息、工作信息,以及设置人员行政隶属关系。此外,MT平台还具有完成对各工种人员的工作量进行合理分配,追踪与审核员工的工作绩效等功能。MT平台所包含的5个主要模块及相应子模块的名称与功能如表1所示。

表1 MT平台所包含模块的名称与功能

2MT平台测试用例的设计

2.1制定测试计划

测试执行之前,需要对即将开展的测试过程及测试内容进行规划,即制定测试计划。测试计划中最重要的就是定义测试对象的测试范围,制定出决定选择哪些测试用例,以什么样的顺序来执行,通过的标准是什么,以及预测执行这些测试用例所需要的时间[6]。因时间所限,实际测试中是无法就测试对象(或者测试对象的每一个版本)开展完全测试与回归测试的。因此,在有限的时间内如何设定有限测试范围,选取与执行相应的测试用例(集合),对于减少因为缩减测试用例而带来的风险问题显得尤为重要。

测试计划中定义了需要测试和不需要测试的内容。可以通过一个通用的列表使用“需要/不需要”表示测试的范围。实际中,不同模块的功能特征、用户需求特点、使用重要性等因素会有所差异,所以测试通过标准会有所侧重。因此,需围绕被测模块的测试范围开展对所设计的测试用例类型进行分类并制定出相应的测试通过标准。未分类的测试用例是不便于阅读与维护的。

结合作者实际参与测试情况,在表2中给出了一个针对MT平台“级别管理”模块中“行政级别设置”二级子模块的关于测试范围与通过标准的简单实例。

表2 MT平台“行政级别设置”子模块测试范围与通过标准

2.2测试用例的选取

在设计测试用例框架或具体单个测试用例之前,测试者需要结合测试对象的特征与实际测试环境充分了解一些会影响到测试用例执行的因素,因为穷举测试所有的测试(组合)场景是做不到的。所以,如何围绕测试对象的需求选取相应的测试用例达到覆盖尽可能多的测试点、如何抓住测试重点与关键点等,这些对于测试用例的选取至关重要。试图找到系统的薄弱环节、边界点、临界值等,使这些区域有必要得到更多的测试,尽力降低测试风险是选取测试用例时所要考虑的[9]。主要选取原则如下,

1) 从实际用户的角度(包括用户思维习惯、软件操作习惯等)对测试对象的每一个特性设计测试用例,确保为测试用例建立正确的判断依据。

2) 充分分析测试对象(程序)的规格说明,找出尽可能多的数据输入边界条件。

3) 选择输入条件规定范围内的数据值、范围上的边界值与稍微超出范围外的数据值作为测试输入数据(操作),来设计相应的测试用例。

2.3测试用例的设计

测试用例设计的目的就是将系统需求具体化,提取测试需求,通过可测试的方法对每个功能点进行描述。用最少的测试用例覆盖最全的功能点是测试用例设计的目标。具体设计中需考虑:

1) 能把多个用例置于一个用例中,应使用一个规范的测试用例集合文档对多个用例统一管理。

2)测试对象的每个功能都应该对应到用例中,每个用例都要依据需求进行设计[7]。

3) 对测试用例中的操作步骤的可复现性与可操作性需要弱化处理,即以参数化或公式来代替具体的输入数据以抽象出共同或关键的操作等[3,8]。这样可以降低测试用例和被测软件的相关度,便于未来的测试用例复用。

基于此,表3给出了MT平台“行政级别设置”子模块在确认测试阶段所设计的一个功能性测试用例。

表3 MT平台“行政级别设置”子模块测试用例

注:关于异常工作流进行测试内容。1)一个工种小组只能有一位组长人选,一个工程队只能有一位主管人选,一个勘探项目只能有一位经理。若为某员工设置相应级别,前提是该级别的人选暂缺,否则页面需要有错误提示信息。2)当把一个员工的原有级别设置成低一层次的级别后,必须同时设置原有级别的人选,否则不能提交页面。

2.4测试用例的执行

高质量的测试用例执行过程包括了多个并发工作同时进行,涵盖了功能测试、系统测试、探索性测试、每日的构建验证、每日缺陷验证、回归测试等,构成了多个层次并行的测试空间[9]。从测试用例执行时间上主要划分为两个测试阶段,前半段主要是通过测试发现缺陷,后半段主要是验证缺陷是否被修复。

测试用例执行时,测试人员按照测试用例中的测试步骤逐一实施测试,并对测试结果记录在测试用例管理软件中,以便自动生成测试结果文档。对于验证被测对象的某个功能,需要先关注该功能逻辑或行为方面的测试结果,再考虑用户界面测试。对于新增功能,应该先执行新功能的测试用例,再进行完整功能测试。同时,测试人员也要依据自己的经验和上下文,不依照事先指定的测试用例,一边设计和学习,一边测试,依据上一个测试结果来决定下一个要进行的测试,从而发现易于被忽视及隐藏更深的缺陷[9],即探索性测试,作为对基于测试用例执行测试的一个补充。

2.5测试用例的评审

尽管测试用例是软件测试的准则,但并不是用例设计完毕后就一成不变,对测试用例的评审或检查是一种提高测试用例设计质量的高效手段。内部检查、同级互查、邀请专家评审等都是评审的形式,可以根据实际测试状况加以选择。评审测试用例的主要标准有:

1)用例设计的结构安排是否清晰,是否具有可执行性,是否覆盖到测试需求上的所有功能点(包括边界值、缺省值、无效值或某些特殊情况),用例的优先级安排是否合理等。

2)每一个正常的用例是否都对应有异常的用例。

3) 是否有从用户使用(场景)层面来设计测试用例。

4) 是否存在冗余的用例,用例是否具有可复用性等。

表4给出了MT平台部分测试用例的评审表。实际测试执行中,我们还需要从设计出的测试用例能否命中缺陷的角度对测试用例进行评审,如表5所示。该表主要由以下几部分组成:被测模块号、模块名、模块测试状态、缺陷号、未覆盖标识、覆盖标识(已执行的用例号,未被执行的用例号)、覆盖缺陷率。

每一轮测试结束后,测试人员要花一定时间对已发现的缺陷情况并结合已有的测试用例做好测试用例的更新工作(若用户对系统的某些功能方面提出了新的需求,也是要进行相应测试用例更新操作)[6]。这样,不仅为后续测试做好准备,另一方面也可以有效地对测试用例进行科学化管理,为测试模块变更所进行的维护工作带来方便。

表4 MT平台部分模块测试用例评审表

表5 MT平台部分模块某轮测试结束后的测试用例覆盖缺陷表

注:模块测试状态:指该模块内是否发现缺陷,一般用“通过/失败”标识。缺陷ID:指在某一模块中所发现的一个或多个缺陷序列号,这个序列号一般有专门的缺陷管理系统自动生成,序列号唯一。未覆盖标识:指该缺陷未被事先设计的测试用例所命中到(预测到),标明相应的缺陷序列号。覆盖标识(执行的用例号):指该缺陷被事先设计的测试用例所覆盖到(命中到),且该缺陷发生的结果与测试用例表中反映的一致。标明相应的测试用例序列号。覆盖缺陷率:统计此轮测试后,事先设计的测试用例表中成功的覆盖到(命中到)实际所发现缺陷的比率。一般来说,若这个比率高于50%,则说明事先所设计的测试用例是有针对性的。

2.6缺陷分析与管理

分析与利用以前的测试数据,有助于测试人员了解缺陷产生的主要原因,预测缺陷发展趋势,掌握缺陷集中的区域,以便有针对性的采取遏制缺陷发生的措施,降低测试成本。

缺陷分析是分析并确定缺陷产生的根本原因的过程,其来源可以是相关缺陷管理系统(如JIRA,Mantis等)所生成的缺陷分析报告。从发现缺陷开始,记录了缺陷发现、修复、验证、关闭整个生命周期的相关资料[6,10]。由缺陷分析得出根本原因,采取相应的措施防止将来缺陷的发生。

表6是在某一轮测试结束之后,从缺陷危害级别(轻微/中等/严重/致命)与缺陷特征分布状况(功能性/用户界面/错误处理与恢复/安全性)两个方面对MT平台的3个主要模块的缺陷分析和统计表。若模块中某类缺陷数目过多,或者严重级别的缺陷数目剧增,测试人员与开发人员有必要一起对这些缺陷进行根本原因的分析,制定未来的开发及测试方向。

表6 MT平台3个模块的缺陷分析与统计表

3测试用例的设计复用

测试复用出发点是保证对被测对象不再采用一切“从零开始”的测试模式,包括测试流程的复用、测试方法的复用和测试用例的设计复用[4]。作为软件测试的核心内容,测试用例的设计复用是整个软件测试复用工作的关键环节。

作者所参与的MT平台测试项目是一个软件再工程项目,由于之前所保留下来的相关测试资料(文档)并不是很完善,所以实际测试中需要遵循“查询(已有用例)-提取(已有用例)-完善/修改(已有用例)-执行-评审-入库”或者“查询-(新用例)设计-执行-评审-入库”的设计与复用流程,来指导MT平台新增模块的测试用例设计及复用过程,可以极大减轻测试工作量。例如,由于用户需求变更,“工作汇报级别管理”子模块是MT平台后续开发中在“级别管理”模块中所新增的功能子模块,功能上与同属于一个模块内的“行政级别设置”子模块具有共同点。表7是针对该新增模块所设计的测试用例,其中在输入数据、测试步骤以及异常工作流程测试方面均可部分复用已有用例(表3)中的设计内容。

表7 MT平台“工作汇报级别管理”子模块测试用例

注:关于异常工作流进行测试内容。1.复用表4中的异常工作流测试内容的1与2。 2.不能设置与某员工处在同一级别的人员作为其工作汇报对象,也不能设置越级汇报对象。例如,员工不能向员工汇报工作,员工也不能直接向经理汇报工作。3.若某员工未设置其行政隶属级别,则不能为其设置工作汇报对象。

4展望与总结

在未来的工作中,还需要通过改进测试环境来提高MT平台中各模块测试用例设计过程的质量,尤其是以下几点不能忽视。

1)测试人员要熟悉测试对象的行业背景。测试人员需要通过适当的行业培训,除了需要掌握软件测试自身的技术与方法之外,还需要熟悉测试对象的相关业务背景。这些行业领域知识对于测试人员有针对性的设计测试用例异常场景的帮助非常大,也是测试成功的关键。

2)用户经常参与测试评审会议。MT平台的开发过程中采用的是原型法的迭代开发方式,功能需求变更较为频繁。用户代表需要经常参与测试评审会议,认真评审每一个测试模块的测试用例,要从实际使用的角度,把在现场使用过程中所发现的问题(尤其是系统容错性、适用性、用户界面方面的问题)及时反馈给开发与测试人员。这样,很多非功能性的缺陷能够在测试早期被识别,在设计有针对性的测试用例时能得到及时关注。

鉴于现代化软件迭代开发规律,MT平台会在今后不断推出新的版本,或添加一些新的功能以及在已有功能上进行某些变化以更好地适应用户的新需求。当软件需求和设计发生变更时,测试用例的设计也要不断更新。所以,测试用例的设计过程并非一劳永逸,未来要做好对测试用例的维护工作。当原有的测试用例失去针对性和有效性时,需及时完善或补充新的测试用例来测试新的功能或特征。同时也要对每个测试用例或其每个版本做好记录标识,真正保证测试用例的完整性、及时性与有效性。

参考文献:

[1] 赵琳.软件测试用例设计方法[J].煤炭技术,2012,31(10):167-168.

[2] 马均飞,郑文强.软件测试设计[M].北京:电子工业出版社,2011.

[3] 尹平. 可复用测试用例研究[J].计算机应用,2010, 30(5):1309-1311.

[4] 卜国峰,孙志刚,丁小良. 软件测试用例的复用研究[J].四川兵工学报,2009, 30(5):124-126.

[5] 万琳,廖飞雄. 测试用例复用研究与实践[J].计算机系统应用,2011,20(7):176-177.

[6] 余久久. 软件功能测试用例的设计过程及实践[J].电脑知识与技术,2008,4(5):1131-1134.

[7] 黎连业,王华,李龙 等.软件测试技术与实训教程[M].北京:机械工业出版社,2012.

[8] 张智轶,陈振宇,徐宝文 等. 测试用例演化研究进展[J].软件学报,2013,24(4):663-674.

[9] 朱少民. 全程软件测试[M]. 北京:电子工业出版社,2014.

[10] 蒋方纯. 软件测试设计与实施[M].北京:北京大学出版社,2010.

杜习英,女,安徽三联学院计算机工程学院副教授, 主要研究方向为计算机信息管理。

Application and Practice on Design Process of the Test Cases

in a Mining Resources Management Platform

YU Jiu-jiu, DU Xi-ying

(Computer Engineering College, Anhui SanLian University, Hefei 230601, China)

Abstract:The design process of the test cases for software testing plays an important role in success or failure. First, some related concepts on test cases and reuse are introduced. Second, based on a practical mining group resource management platform (MT platform) and by making the Test Plan, we realize the test case for selecting, design, execution and test case review, defect analysis and management which composed of the test case design process, and the reuse of test case design for the measured module. Finally, we put forward the prospect from three aspects of testing work of familiar with the test object industry background, users to participate in the test review meeting, and accurate location of defect information.

Key words:test case, testing design, review, bugs, reuse

文章编号:1007-4260(2015)02-0058-06

中图分类号:TP311

文献标识码:A

作者简介:余久久,男,硕士,安徽三联学院计算机工程学院副教授, 主要研究方向为软件工程、软件测试、计算机教学。

基金项目:2013年安徽省高等学校省级质量工程项目(2013jyxm274),2013年安徽三联学院院级质量工程项目(13zlgc023),2014年安徽省职业与成人教育学会教育科研规划项目(BCB14035)与2014年安徽三联学院科研基金项目(2014Z003)。

猜你喜欢

测试用例缺陷
基于相似性的CITCP强化学习奖励策略①
基于LDA模型的测试用例复用方法*
软件测试中的测试用例及复用研究
且虔诚,且宽容
医院会计制度的缺陷及其改进措施探讨
园林绿化植物应用现状与展望
印度电商为两大“缺陷”苦恼
测试工时受限的测试策略研究