浅谈持续集成构建在互联网软件测试项目中应用与分析

  • 格式:pdf
  • 大小:1.25 MB
  • 文档页数:15

浅谈持续集成构建在互联网软件测试项目中应用与分析the Application of Continuous & build Integration in Internet Software Testing Project and Analyzing阿里巴巴(中国)网络技术有限公司王亮Alibaba(Chinia)Technology Co.,Ltd. Jonas.Wong【摘要】:本文将介绍持续集成在互联网软件项目中的应用及案例分析,主要针对互联网行业软件项目过程中的软件测试效率和质量的研究与实践;在当前Web2.0时代,笔者抓住互联网行业的软件测试特性,在软件项目的开发过程中运用持续集成构建的思想来统一规范、流程和管理,不仅提升项目在提测之前的软件版本质量,也有利于软件项目过程的效率和质量风险控制。

在浅谈持续集成及工具在项目中的应用同时,也结合笔者从事互联网软件测试的工作经验,进一步阐述与总结在软件测试过程的持续集成带来的益处与不足。

笔者会先介绍当前互联网的软件测试与传统的软件测试区别与联系,然后针对互联网软件测试的特性再结合持续集成工具思想的运用,最后将比较详细的介绍Hudson持续集成构建平台在项目中的实践与分析,从而解决了在多个项目并行开发的软件项目中应该如何应用持续集成以保持项目整理开发过程的高质量和高效率问题。

【关键词】:软件测试持续集成互联网软件项目构建自动化统一代码Web2.0ABSTARCT: A perception on constant integration application of network software testing project and analyzing, The content is mainly about constant integration application of IT software project and focus on software project testing with quality research in network line. Presently it is the time for Web 2.0, the writer grasps network feature , adopts constant integration methods unify criterion、procedure and management. Which not only enhances software version quality, but also to the benifit for software project efficiency and quality risk control. While application of constant integration and project tools, combined with writer years experience in network testing, this content will summarize advantage and shortage occuring in the constant integration procedure.Writer will show us the difference between tradition and modern methods in software testing, and software testing feature combined with the applicating on constant integration methods. Finally it is detailed introduction for Hudson constant integration adopted in projects practicing and analyzing,It solves the problems of many items application in concurrent development software testing involved how to apply constant integration to keep item procedure high quality and efficienc.KEYWORDS:software testing Constant Integration Internet software project Build Automation Uniform Code Web2.0一、引言在互联网信息时代,随着Internet的快速增长及Web应用的不断发展,使其快速渗透到商业、电子商务、军事、工业、教育等领域和个人生活的各个方面,对我们的生活及工作产生了深远的影响。

在当今市场需求和Internet技术进步的不断推动下,Web应用日益增加,互联网的软件规模不断扩大,复杂性增加,操作易用性降低,面对互联网的用户也越来越多,因此软件的质量越来越成为人们共同关注的问题,作为保证软件质量和可靠性的重要手段,软件测试已成为互联网软件项目开发过程的重要环节。

在整个软件生命周期中每个环节都存在软件测试的活动,软件测试伴随着软件开发,以检验每一个阶段性的成果是否符合质量要求和达到预先定义的目标,尽可能早的发现问题并修复问题已成为当前互联网时代软件开发与测试过程的目的,也就孕育了要提高上游软件质量,发挥测试工程师在软件项目需求、设计阶段参与的重要性。

互联网的信息和产品更新速度较传统软件产品是非常之快的,保证好软件系统的质量和稳定性,运用敏捷的测试思维、测试工具来改变传统的测试方法和测试观念,正是在互联网软件实施过程中必须面对的。

针对互联网软件开发的特点,笔者结合多年的软件测试经验与测试策略、工具,总结一些比较适用的方法、流程和工具综合运用到互联网软件开发与测试过程中,综合运用持续集成构建的思想进一步保证软件质量和提升开发效率。

二、现状分析目前在互联网软件开发测试过程中,存在效率低下、质量不高的情况,具体可以总结成以下几个方面:第一、RD编写的代码质量不高开发工程师在编码阶段,经常犯一些比较低级的错误,致使提测版本的代码质量较低,如空指针异常、重复犯错及违背编码规范等,常常会被在冒烟测试阶段退回而重新开发,增加提测版本质量和效率的风险,也影响到项目整体开发进度。

第二、单元测试流程不规范,质量和覆盖率较低为了提高上游代码质量,在开发过程增加了单元测试流程和规范,各部门产品线统一推广与执行,实施一段时间后发现流程在各产品线执行执行的比较混乱,存在一些流程和规范细节问题,执行出现脱节,导致单元测试的代码质量与代码覆盖率下降,在某些项目过程中暴露的非常明显,较严重地影响了项目进度和质量。

第三、测试方法单一,测试策略陈旧,测试过程的效率和质量低下项目过程,测试工程师从立项前的需求讨论到立项后的需求、DEMO、设计评审和TC编写几乎全程参与,一定程度提升测试工程师在项目研发过程的地方和影响力,另外也带来了测试方法单一和测试策略陈旧的问题,全靠手工测试已成为项目测试过程的瓶颈,往往就导致项目、需求排队现象,进一步分析说明了我们的测试产出比低下,效率不高。

必须改变整个项目过程的测试方法,引入新的测试工具和测试策略,必须发挥自动化的力量缓解手工测试的瓶颈和解决效率低下的问题。

第四、上线后出现故障频繁,bugfix需求增多项目和小需求在互联网行业中更新非常快,如果过程没有更好的控制软件风险的话,上线后的需求就会出现很多故障,导致用户大量投诉,后续修复的工作量将投入很多资源去支持,一定程度上浪费了精力和物力,降低了生成率。

尤其是在大项目和新增需求发布上线后,故障的频繁让开发、测试心惊胆战,不仅要处理手中新的需求,还要跟进线上故障的bugfix需求,使工程师的精力分散,增加了质量的风险。

如何把故障减少下来,如何提升测试阶段和开发前期的质量,已摆在工程师及主管们面前。

第五、无数据支撑来度量和评估开发和测试人员的质量和效率软件过程度量目前实施的还不规范,无基本度量的数据来支撑说明存在的问题,只能通过某阶段某现象说明有问题存在,但无法给一个标准去度量和评估,这样给软件开发和测试过程的质量和效率评估带来很多不便,如何收集过程数据,如何制定度量标准,还需要进一步在软件开发过程进行分析与梳理。

软件过程度量也是为保证软件质量的纽带,其实这个专题研究的内容也是比较广的,从软件工程上来讲,测试过程改进有很多模型参考,这里不展开说明。

三、互联网软件测试特性在基于互联网软件系统开发过程中,通常就是以Web系统为基础,按照B/S的访问方式为主,包含客户端浏览器、Web应用服务器、数据库服务器的软件系统,首先从技术实现上来说,一般的Web系统结构,不论是.NET还是J2EE框架,都是多层框架设计,有用户操作界面层、业务逻辑层、数据驱动层;其次从结构上来讲,都是有客户端部分、传输网络部分和服务端部分。

1、系统架构一个比较典型的互联网软件系统的结构示意图如图-1,前端的用户浏览器,通过网络访问应用服务器及数据库服务器传回的数据。

图-12、互联网软件测试特点1)不断创新,改变易用性,留住用户在互联网软件开发过程中,我们往往关注点会集中在用户体验、软件的创新及能为用户带来的价值,所以必须建立在用户体验基础上进行创新,留住用户,改变易用性,是互联网软件开发与测试的首要特点。

2)采用敏捷的开发测试思维,快速实现新功能,快速修复线上bug基于创新的思维决定了我们在互联网行业的软件开发过程中,必须采取小步快走、版本微创新和快速获取用户反馈,只有这样才能体验客户第一,改变软件服务的对象观念。

第二个互联网软件开发测试的特点就是快,行业觉得要快速实现新功能并快速发布,快速修复线上存在的问题。

在很多互联网公司,开发和测试团队往往是技术团队的主力军,信息更新快捷和项目需求发布的频繁,很多程度上与传统软件开发和测试过程分离开来,组成比较小的团队进行软件开发与测试,这样有利于处理需求的响应速度的提升,也有利软件开发过程的风险和资源管理。

3)采用的工具协助敏捷开发测试过程,提出了自动化测试大家知道,如果缩短软件开发和测试过程的时间,在保证需求质量的前提下,我们必须提供我们的过程效率,那么如何提高呢?这里就引起在互联网软件项目中的自动化测试,尤其在软件测试过程,自动化测试不仅仅是测试技能的提升,更是能给测试工程师乃至整个研发团队带来质的价值和创新,是真正提高了整个研发过程的效率。