XXX公司自动化测试框架咨询项目投标文件11.1项目概述3.1.1项目名称XXX公司自动化测试框架建设咨询项目1.1.1.1项目背景XXX软件研发部已经建立了内部工作指引,指导软件开发过程。在软件测试方面,仍然采用手动黑盒测试,在有足够的人力资源遵守程序规范的前提下,可有效保证软件开发质量。因设计生产对信息系统的依赖度持续上升,导致信息系统复杂度和相关性越来越大,信息系统测试压力已经成为开发瓶颈。与此同时,审计和质保要求投入更多的人力加强测试以及执行程序规范。现计划对已开发的系统搭建一套自动化测试框架和持续集成平台,帮助优化软件测试能力,更进一步提高软件开发质量。3.2架构设计本项目的架构搭建采用三层架构,分为开发平台,集成平台,测试平台,详见以下平台架构设计图。开发平台基于现有开发环境,针对代码仓库,开发工具以及测度管理平台做相关的优化与集成,并加建一个组件仓库,便于开发人员和集成服务器做构建时,提高其性能以及减少对外界的依赖。集成平台构建于J2EE的B/S架构,可以部署在Tomcat,JBoss,WeblogicServer和Websphere等应用服务器之上,且支持运行在Windows,Linux和Solaris操作系统之上。用户可通过WEB浏览器进行访问,实现相关的配置管理和信息反馈。测试平台构建于J2EE的B/S架构,可以部署在JBoss,WeblogicServer和Websphere应用服务器之上,且支持运行在Windows,Linux和Solaris操作系统,数据库支持MicrosoftSQLServer和Oracle,支持Cluster部署,提供负载均衡和容错机制,能够保证企业级的使用。用户通过WEB浏览器访问,实现全部的配置管理和业务功能的操作。XXX公司自动化测试框架咨询项目投标文件2自动化测试工具包括自动化功能测试工具和自动化性能测试工具,两款都是基于Windows的桌面应用程序,支持基于WEB浏览器应用的自动化测试和Windows桌面应用程序的自动化测试。XXX公司自动化测试框架咨询项目投标文件33.3环境要求集成平台软件环境要求操作系统:Windows(Server2003/2008/2012,XP,WIN7/8),Linux,Solaris应用服务器:IBMWebsphere,BEAWeblogic,OracleApplicationServer,JBoss,TomcatWEB服务器MSIIS,Apache语言支持:简体(GBK)、繁体(BIG5)、西文(ASCII)、国际统一码(Unicode)JDKOracleJDK1.5以上,OracleJRockitJDK1.5以上数据库无测试管理平台软件环境要求操作系统:Windows(Server2003/2008/2012,XP,WIN7),Linux,Solaris应用服务器:IBMWebsphere,BEAWeblogic,OracleApplicationServer,JBossWEB服务器MSIIS,Apache语言支持:简体(GBK)、繁体(BIG5)、西文(ASCII)、国际统一码(Unicode)JDKOracleJDK1.5以上,OracleJRockitJDK1.5以上数据库Oracle11,MSSQLServer另说明,自动化测试工具只能运行在Windows平台下。3.4安全设计考虑到集成平台和测试管理平台都是基于WEB浏览器B/S架构的管理平台,本项目在安装部署时均要求把集成平台和测试管理平台配署成HTTPS协议的方式进行访问,这样,当用户提交的账户信息或其它敏感信息在网络上传输时都经过加密后传输到后台服务器。XXX公司自动化测试框架咨询项目投标文件43.5性能设计1)系统支持并发用户数50人以内;2)数据检索客户端响应时间:≤5秒;3)系统无故障运行时间大于99%;4)系统恢复时间:系统恢复时间小于4小时;5)因特殊原因导致的性能问题,最后性能的验收由用户的可接受度为标准。3.6功能设计自动化测试框架建设项目的主要功能分两大部分,一是持续集成平台的建设,一是测试管理平台的建设。持续集成平台对现有开发平台的开发成果做相应的集成,构建,部分测试,部署到测试环境的工作。测试管理平台管理测试需求,制定相应的测试计划及测试用例,并根据测试计划执行相应的自动化测试任务,管理与跟踪测试产生的缺陷问题。3.6.1持续集成平台持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。在软件开发过程中,用户需求不断变化,如何能在不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成正是针对这类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。持续集成的核心价值在于:XXX公司自动化测试框架咨询项目投标文件51.持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;2.持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;3.持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。持续集成的原则业界普遍认同的持续集成的原则包括:1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有SVN,CVS,TFS,IBMRationalClearCase,Subversion等;2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地;3)需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每半个小时构建一次;4)必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的工作。一旦修复,需要手动启动一次构建。持续集成系统的组成由此可见,一个完整的构建系统必须包括:1.一个自动构建过程,包括自动编译、分发、部署和测试等。XXX公司自动化测试框架咨询项目投标文件62.一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。3.一个持续集成服务器。3.6.1.1自动化构建持续集成过程会经常构建软件组件;在许多情况下,每当源代码存储库(比如SVN或TFS)中的代码发生变化时,都要构建软件组件。持续集成的好处是:经常构建软件可以确保尽早遇到问题(比如代码缺陷),避免问题在软件开发周期晚期变复杂时才被发现。可重复的可靠构建是可预测的软件过程的基础。Java平台上有很多流行的构建工具,它的主要用途是自动执行编译、测试、代码分析等任务。集成服务器通过用户定义的构建任务,当监测到源码仓库的代码发生变化或其它预定义构建条件触发时,调用其构建工具对待构建项目执行编译,当编译通过后,调用其测试框架做相应的单元测试,以免部署到测试环境后才发现错误,及早发现问题;同进还可以对编译好后的目标代码做代码分析,意在尽早发现除编译检查不能发现的问题。基本的构建过程包含以下任务:编译源代码,源代码检查执行测试,包括用JUnit或TestNG编写的测试代码分析,比如PMD将最终的产品存档为JAR、WAR或一系列文件XXX公司自动化测试框架咨询项目投标文件7自动化构建主界面3.6.1.2自动化部署集成服务器在整个集成过程中,编译并测试完对应的构建目标后,当发现有配署的部署任务时,集成引擎会调用相应的部署工具去执行对应的部署任务。鉴于此,用户只需在集成服务器上配署即定的部署任务,当部署条件触发时,集成服务器部署相应的构建目标到测试环境。XXX公司自动化测试框架咨询项目投标文件8自动部署配置图3.6.2测试管理平台本项目测试管理平台采用HPQualityCenter来搭建,并辅以HPQuickTestProfessional和HPLoadRunner做业务功能自动化测试和系统性能测试,以此来满足测试需求管理,测试计划管理,测试执行管理,测试缺陷管理。3.6.2.1测试需求管理建立在需求基础上的测试保持了和测试目标的统一性,并能根据业务用户的需要来衡量应用。需求管理将测试案例与应用功能需求相联系,确保了整个测试流程的统一。QualityCenter支持管理多种需求,例如功能需求,测试需求,安全需求等,可以建立各种需求的模板,强制用户填写需求信息。需求可以新建,也支持通过插件从MSWord,MSExcel或者其它工具导入生成。可以建立需求之间的关联,实现需求的跟踪,例如可以看到某需求的变更影响了哪些需求,或者被哪些需求所影响。XXX公司自动化测试框架咨询项目投标文件9可以从业务影响和实效可能性两个方面对需求进行风险评估,确定出优先级比较高的关键需求,优先安排人力进行测试,QC可以根据需求分析结果对测试花费的时间做出评估,提供给测试人员参考。QC提供了需求的多种视图,可以查看需求的树状结构,详细信息,网格列表和范围分析。需求可以和测试用例之间建立关联,关系可以是多对多的关系,当案例执行以后,相关的状态可以直接反映到需求,例如已覆盖,未执行,执行成功,执行失败XXX公司自动化测试框架咨询项目投标文件10等,可以看到需求相关的案例和关联的缺陷,对需求进行全方面的分析和跟踪。基于需求的测试流程确保了上线应用能够满足最终用户的需要。通过配置,可以实现需求的审查和审批流程。可以选择单个或者多个需求,生成保持结构关系的测试案例。生成的这些测试案例和需求之间会自动建立关联关系。3.6.2.2测试计划管理在需求的基础上,测试人员可以着手建立测试计划,设计实际测试。测试计划可以直接在QC中建立,也可以从MicrosoftWord或Excel中导入。由于所有的测试计划信息都在一个中央存储库进行维护,所以测试小组可以便捷地重复使用测试计划或独立的测试案例,用于未来的应用发布。测试案例支持多层次组织结构,可以自定义测试案例的字段,看到测试案例的详细信息,测试步骤和有关的测试案例和缺陷。可以在测试案例中定义手工执行的测试步骤,指导测试人员按照步骤执行,比较和分析执行结果。测试计划中的测试案例支持手工案例和自动化案例的设计,通过建立测试案例和测试需求的关联,可以统计和分析测试需求的覆盖率,并且进行针对需求的测试。XXX公司自动化测试框架咨询项目投标文件11Qualitycenter支持直接将HP其他自动化测试工具的脚本保存在其中,通过开放式架构,也可以通过二次开发集成其他第三方的自动化测试工具。3.6.2.3测试执行管理测试设计和开发事宜完成之后,测试小组就开始着手运行测试。测试实验室(TestLab)允许既定测试在无人操作的情况下不间断地运行,或者在系统处于最低资源需求的状态下运行测试。通过定义不同测试间的依赖关系,测试小组可以逼真模拟真实的业务流程,同时更方便地维护和重复使用测试。可以在测试实验室中建立多层次的测试集(TestSet),将要执行的测试案例选择到测试集中,为测试执行制定测试计划。选择测试案例时可以是基于测试案例选择单个或者多个,也可以基于测试需求,选择和需求相关的测试案例。测试集支持执行流设置,可以定义测试集里面案例的执行顺序,对于手工案例,可以帮助执行人员了解案例执行的依赖性,对于自动化案例,可以自动按照执行流的顺序执行,可以定义自动化案例执行的开始时间。XXX公司自动化测试框架咨询项目投标文件12使用TestLabManager,可以把测试安排在无人操作的状态下自动运行,且所有的测试结果可以自动保存。测试集可以设置执行时的操作和处理,例如满足一定条件下发送邮件提醒,失败时自动化案例的尝试次