基于VMD开发工具的敏捷测试实施研究摘要P8_VMD可视化开发工具旨在代替传统的Eclipse,为P8平台应用开发人员提供一个可视化图形配置的操作环境。
经过实践,传统的测试方法很难满足在VMD开发工具开发过程中,需求持续变化,模块功能不断迭代、版本变吏速度快的特点,为了进一步提高测试效率, 规范测试流程,充分利用开发工具开发过程特点,VMD测试小组将对比传统测试方法的不足,探索新的测试方法,基于敏捷测试理论进行测试实施,以满足当前开发过程中的测试需求。
本文通过介绍新职员赵筝在VMD小组的参与情况,结合敏捷测试的技术特点,深入探讨在vmd工具的开发过程中如何应用敏捷测试提高测试效率,其与传统测试的过程与结果的对比,以及详细的可行性分析。
关键词:VMD可视化开发工具、敏捷测试目录目录1绪论 (2)1.1研究背景 (2)1.2研究意义 (2)1.3研究内容与难点 (3)1.4论文结构 (3)2敏捷测试技术理论及工作流程 (4)2.1敏捷测试介绍 (4)2.1.1敏捷测试的概念 (4)2.1.2与传统测试对比 (5)2.2VMD开发工具与当前测试情况 (7)2.2.1VMD工具架构 (7)2.2.2VMD目标及使用 (7)2.2.3VMD角色管理 (9)3VMD测试实践总结 (9)3.1VMD1.0版本测试情况介绍 (9)3.2VMD1.0版本测试总结 (11)4基于敏捷测试的VMD3.0版本测试分析 (12)4.1VMD3.0版本的敏捷开发的背景 (12)4.2依赖VMD开发的敏捷测试设计 (12)5总结与展望 (16)5.1 展望及改进建议 (16)1绪论1.1研究背景新一代VMD可视化开发工具是一个客户端的开发工具,其建立在IBM的RSA平台的基础上,旨在以流程图生成用户所需的java代码,使用对象为各开发中心项目组的开发人员。
主要开发技术为Eclipse的插件开发技术。
相比于传统的Eclipse开发工具,VMD旨在将P8交易逻辑可视化、结构化、并能够从流程图中反映交易实现业务逻辑,最终做到开发代码的高效性、一致性,并旦增加开发资产的可复用性。
VMD开发技术支持小组负责此工具的完整开发生命周期,从最初的需求分析到开发、测试,再到版本发布、缺陷修复以及产品维护。
其中,测试是一个必不可少的环节,它把控着最终的产品质量,及时发现程序错误,联系开发人员,及时修改缺陷,以满足设计需求。
在VMD快速的开发过程中,VMD测试小组责任重大,为尽可能达到需求标准,须仔细分析VMD的开发特点,有针对性的采用适当的测试方•法,按时按量的完成测试任务。
敏捷测试是其中的选择之一,本文将结合VMD开发的自身特点,着重对敏捷测试应用的可行性进行分析。
1.2研究意义VMD工具的测试与传统的银行业务系统的测试颇有不同,因此不适用于传统的测试方法进行测试,传统测试中,测试环节在开发环节之后,两者相互独立,不直接沟通,且传统测试不太追逐效率,尽可能保证案例覆盖率等测试标准,流程清晰复杂。
对比来看,VMD 测试由于产品性质与开发周期的不同,导致测试流程以及测试的侧重点均和传统测试有较大差距。
结合VMD产品周期较短,且须及时、持续地响应客户频繁的反馈等特点,敏捷测试便成为VMD测试员不得不考虑的途径。
敏捷测试即是不断修正质量指标,正确建立测试策略,确认客户的有效需求能得以圆满实现和确保整个生产的过程安全的、及时的发布最终产品1.3研究内容与难点本文主要以研究敏捷测试在VMD项目中的可行性分析为主。
从VMD的角度出发,结合VMD的开发特点,对比不同版本的VMD 测试情况,提出使用敏捷测试的可行性。
例如,由于各个节点功能会因彼此的复杂性不同,开发周期也会有所差别,先开发完成的模块完全可以先进入测试阶段,尽早发现模块质量问题从而反馈至开发人员,持续地进行验证,而不是等到所有代码完成后才开始测试,这也包括参与到单元测试和集成测试中。
除此之外,本文还将从测试流程、测试方法等方面论证敏捷测试的可行性和优势所在。
再经过总结、对比,发掘当前的测试问题以及描述将来的优化方向1.4论文结构本论文共分为五章。
第一章,绪论(即本章)。
介绍论文的研究背景、研究意义、研究内容以及论文的组织结构。
第二章,敏捷测试工作流程及技术理论综述。
介绍VMD开发技术支持组的测试工作流程现状及需要的技术理论基础。
第三章,介绍了学员一年中参加的主要实践,以及学员在项目中的思考和总结。
第四章,敏捷测试集成VMD开发的实施。
在了解相关测试理论基础、参与测试实践的基础之上,结合VMD开发的特点阐述如何使用敏捷测试的方•法设计测试案例,安排测试流程,分析测试结果。
第五章,总结与展望。
本章在对敏捷测试理论、方法和流程、系统开发与应用等方面的学习总结基础上,提出了个人对于VMD测试技术和流程等方面的建议。
2敏捷测试技术理论及工作流程2.1敏捷测试介绍2.1.1敏捷测试的概念什么是“敏捷测试” ?敏捷测试既不是一种方法(如黑盒方法、白盒方法等),也不是一种方式(如探索式测试)。
因为在敏捷测试中可以采用已有的各种方法,包括白盒方法、黑盒方法;在敏捷中也可以采用探索式测试,也可以采用基于脚本的测试。
那敏捷测试是什么?敏捷测试应该是一套解决方案、一•类测试操作与管理的框架、一组实践或由一定顺序的测试活动构成的特定的测试流程。
就像Scrum 一样,Scrum可以理解为敏捷方法的具体实现的框架、一组实践或具体的解决方案。
简单地说,敏捷测试就是顺应敏捷开发方法、力求达到质量和效率平衡的一系列的测试实践。
Wikipedia是这样描述敏捷测试的:Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace.它强调敏捷测试是遵守敏捷开发方法原则之下的软件测试实践,由跨功能敏捷团队的所有人员参与(包括测试人员以其专业特长的特殊贡献)以保证持续的、快速的业务价值交付。
所以要理解敏捷测试,我们要仔细看一下“敏捷宣言”:4-个体与交互重于过程和工具1可用的软件重于完备的文档』客户协作重于合同谈判上相应变化重于遵循计划制定洌试计划 设计厕试用例 完成准则2.L2与传统测试对比如同功能集成测试处对行内业务交易系统测试,传统测试的流程 大致如下:第一步:准备产品设计文档,确定测试策略,制定测试计划,主 要完成分析准备工作。
第二步:根据文档分析结果,设计测试用例,保证测试用例的测 试覆盖率以及其他一系列测试指标。
第三步:执行测试。
执行测试主要是搭建测试环境,执行测试用 例。
执行测试时要进行进度控制、项目协调等工作。
第四步:提交缺陷。
这里要进行缺陷审核和验证等工作。
第五步:消除软件缺陷。
通常情况下,开发经理需要审核缺陷, 并进行缺陷分配。
程序员修改自己负责的缺陷。
在程序员修改完成后, 进入到回归测试阶段。
如果满足标准,那么正常结束测试。
第六步:撰写测试报告。
对测试进行分析总结。
可见,传统测试具有以下特点:各个流程处理的顺序清晰,各节点耦 合度较小,进程拆分明显,测试过程有严格的规范计划,与开发部门 沟通相对较少,且测试工作开始于开发之后等特点。
再通过上文对敏 捷测试概念的总结对比可以看出:“沟通”非常重要敏捷测试更强调人的作用,强调测试人员与开发人员之间的沟 通。
以启动准则 回归测试消除软件缺陷往我们总要等到产品的一个正式版本发布,才可以开始测试,否则过多的介入会打乱开发计划。
而现在,敏捷测试告诉我们,在产品开发过程中就要介入测试。
此外,在传统的功能测试中,当一个测试人员发现并提交一个bug时,需要在QC中写大量的文字来描述bug 的环境以及bug的重现步骤,并流转到FLPM平台发送邮件,以通知对应开发人员修复bug,整个流程冗长,且如果文字描述不够清楚,开发人员很可能无法确定bug。
而在敏捷测试中,测试人员所需要做的,是与开发人员直接沟通,把问题说清楚,让他能够准确的理解你的意思,甚至包括你对于该bug的分析。
接下来一切就十分好办了。
到这里,其实我们已经能感受到,测试的角色定位已经变了。
因为敏捷开发中,要对质量负责的是整个团队,这一目标就要求测试人员不再是一个独立的质量监督部门,而是要融入到整个团队中,成为开发中不可分割的一部分O2)调整测试用例的粒度业界通常认为,测试员最重要的技能就是写用例,通过用例来表达测试思想。
我想,即使是到了敏捷时代,这个技能仍然是第一位的。
只是,如果你的用例写得过于详细和复杂,那么在团队开始响应变化的时候,你就会措手不及了。
至于粒度到什么程度才是合适的呢?那就要看个人的能力,是否强大到能随时调整一份复杂和详细的用例的程度。
一般不推崇十分详细的用例,因为有些很细节的地方,也没有文档可以参考。
敏捷的最直接的特点就是快速,如果设计的用例粒度太细,那是很难开展敏捷测试的。
3)更多的人参与测试当测试人员已经不再是一个独立的测试部门时,需要进行测试的也就不只是测试人员了。
开发人员也要自测,不同的人可以得到不同的结果,这样才能使我们对产品有全面的把握,才能时刻的知道产品下一步应该怎样“响应变化”。
并且开发人员的自测使他亲自体验自事傩制」数据字典■模型校验■缓存W3 豌•图形的管理和维护 • UML 2.2模型管理•流程及对象管理 己开发的系统,甚至可能由此得出进一步的改进优化方案,这些将是 日后开发,更迭版本最有价值的信息。
2.2 VMD 开发工具与当前测试情况2.2.1 VMD 工具架构可视化开发工具VMD 是建立在IBM 的RSA 平台的基础上开发 的以流程图生成代码为目的的开发工具。
主要开发技术为Eclipse 的 插件开发技术、RSA 模型框架、EMF 、SWT Design. JET 等。
其主 要功能模块包括VMD 视图和其视图下的构建发布、模型构件、数据 结构、联机服务等,以及一些技术组件,如数据字典、模型校验等。
VMD 逻辑架构图: RSA •良好的Java 及其他语言平台支持 • Clearcase 版本控制支持•提示/校验等辅助功能EclipseHStBS2.2.2 VMD 目标及使用VMD 目标是以模型驱动开发,在使用VMD 开发时,首先通过界面 导航配置建立相关模型,再通过此模型经过格式化生成相应代码。