您的位置:首页 > 总结报告 > 述廉报告 > 正文

软件自动化报告

【www.citswd.com--述廉报告】

  软件自动化报告

  地址:192.168.1.162https://localhost:8081/hudson

  软件的自动化是一个持续改进的过程,体现着公司的能力成熟度CMM等级(附1)。

  1. 目前免费成熟的自动化工具

  1.1 应用在java 项目的自动化工具主要是maven.工具

  1.2 应用在c++ 方面的主要工具是buildbot (开源)工具,代表公司是google,阿里巴巴等大公司,工具比较成熟和稳定。

  1.3 Hudson 工具,web界面控制。

  2. 软件自动化

  软件自动化: 包括自动化检出,自动化编译,自动化生成,自动化测试,自动化部署等功能. 商业功能测试自动化工具:目前有QTP (主要帮助测试人员完成软件的功能测试)。RationalRobot (业内最顶尖的功能测试工具).

  WinRunner

  QuickTest Professional (针对GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的web应用)

  SilkTest 等.

  软件自动化测试,适合以下条件:1.软件需求变动不频繁 2. 项目的周期足够长 3.自动化测试脚本可重复使用。

  3. 工具的使用

  3.1 buildbot工具(主要用python编写)在阿里巴巴大型c++研发项目中已经被证明是高效的持续集成运转的重要一环,正发挥check in build/daily build/daily test重要功效,比较成熟. (注: 主要使用在unix,aix等平台).这个工具主要依赖依赖Twisted和Python,不依赖于hudson等界面配置工具,且国内外的大公司软件开发多以unix平台为主,windows平台开发很少见,而国内的小公司多以window平台开发为主,自动化水平低,依赖于VC工具. Buildbot 工具能够做到以下几点:

  1. checkout from the souce repository

  2. build

  3. create binary package(s) / installer

  4. create source package(and check completeness)

  5. run regression tests

  Buildbot能够在以下平台工作:

  Window xp x86(WIN32 ,little endian ,vs 9)

  Window xp x86-64(win64,little endian, vs 9)

  Ubuntu x86-64(Linux,little endian ,gcc)

  Solaris SPARC(Solaris ,big endian,gcc)

  Mac OS-X PPC( BSD ,big endian ,gcc)

  MAC OS-X x86(BSD ,little endian ,gcc)

  3.2 Marven工具:依赖于JDK 运行,跨平台,主要是应用在java,jsp,web方面,作为插件集成

  在eclipse方面,能够在eclipse界面里面以命令行的方式提供 构建,生成,自动测试,部署等功能,对c++的支持比较少(主要依赖pom.xml文件进行配置和极少的c++本地化插件<即将c++>),对java工程支持的非常多而且比较成熟(插件比较丰富),.

  4. hudson 工具:

  hudson 工具:目前非常流行的开源CI服务器,持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。

  4.1 CI服务器通常会通过某种控制台来进行项目的配置和调试,并且根据请求响应相应的操作,诸如即时构建、生成报告,或者检索构件。

  4.1 hudson工具是日本人用java,jsp所写,能够像eclipse一样集成marven,对marven进行配置,部署,也可以单独使用(部署在tomcat服务器下以及单独运行)

  单独运行命令: java –DHUDSON_HOME=D:hudson -jar hudson.jar

  4.2 hudson 集成marven 对java,web的自动化支持比较成熟,但对c++,特别是对vc(MFC)的支持非常少。

  4.3 hudson 通过web方式运行,通过web方式访问(https://localhost:8080/hudson)

  4.4 有丰富的VS2010编译,测试(MSTest.exe)工具插件.

  5. 可能的实现方案:

  1. 使用批处理的方式进行自动化检出,编译,生成,部署,但是必须自己编写makefile文件和批处理文件,比较复杂.

  2. 选择工具如hudson并且还需要部分实现其中的一些对vs2010的支持的插件实现自动化。

  3. 编程实现,也需要自己写makefile文件 <实现了一个MFC的makefile,能够自动编译,生

  成和部署功能>考虑到未来会使用vs2010开发工具,故目前选择的方案:Hudson + svn + vs2010 三个工具。

  1. 目前使用hudson + svn + vs2010 ,实现了远程的(定时以及update时)自动化检出,构建,自动生成,自动邮件通知(当构建失败时可以发邮件通知)功能。但hudson对vs2010的自动测试,部署功能还没有实现。

  后续建议:我们可以以hudson为基础,认真学习和熟悉此平台,(熟悉和灵活运用vs2010工具,我们使用的功能大概只有10%左右,开发vs插件或写批处理)持续的进行后续的自动化集成、改进来提高我们发展部门实时库的自动化水平来适合未来的发展。

  6. VS2010 的本身的测试自动化(本身平台包括开发平台和测试平台)

  VS2010本身的测试自动化水平功能异常强大

  1. VS2010提供了一个叫作"Test Impact Analysis"的功能,有人把它译成“测试影响分析”,我觉叫它

  “测试株连分析”似乎更贴切些。利用这一功能,开发人员在修改完代码、要进行单元回归测试时,可以很容易地把确实受到此次代码改动影响的测试挑出来,而把绝大多数不相干的测试全都过滤掉。假设某开发人员只修改了某个类中的一个方法,那么他只须通过"Test Impact Analysis"把涉及到这个发法的可能也就是三、五个单元测试挑出来再运行一遍就行了(参考图

  1),而无须象以往那样把所有相关或不相关的单元测试全都再跑一遍了。

  2. VS2010功能测试中有Test Manager 功能,即bug信息收集机制,能够自动记录测试时的操作步骤和屏幕截图,以方便bug复现(包括每一步测试操作,屏幕截图,操作日志,系统配置信息,事件记录,系统运行时轨迹,带时间索引的操作视频,测试环境快照的操作视频)。

  3. 自动还原测试环境。

  如果测试人员A在她的Bug报告中附一个其所测系统的环境快照的链接,那么开发人员B就可以通过这个链接直接进入A的测试环境,而且是直接跳回A发现那个Bug的时刻,然后在一个完全复原的“历史场景”中进行Debug。这种科幻式的效果就是通过VS 2010中"Lab Management"这一功能变成现实的。

  4. 其他很多功能。

  7.软件自动化测试方面的作用和效果

  目前,软件测试自动化的研究领域主要集中在软件测试流程的自动化管理以及动态测试的自动化(如单元测试、功能测试以及性能测试方面)。在这两个领域,与手工测试相比,测试自动化的优势是明显的。首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率;其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义;此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合过程改进的思想。根据OppenheimerFunds的调查,在2001年前后的3年中,全球范围内由于采用了测试自动化手段所实现的投资回报率高达1500%。

  8.自动化工具的使用有利于软件的过程持续改进,提高工作效率,是一个长期积累的过程。

  附1 HUDSON 资料:

  1. 安装

  1.1 下载Hudson war 包

  1.2 安装 SVN

  1.3 安装Tomcat6.x(Tomcat5.x也可以)

  1.4 部署HUDSON.WAR到Tomcat6目录.

  1.5依赖JDK5,需安装JAVA RUNTIME .

  2. 功能:

  2.1持续、自动的构建/测试软件项目 ,如cruiseControl 与DamageControl.

  2.2 监控一些定时执行的任务。

  Hudson拥有的特性包括:

  易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。 易于配置-所有配置都是通过其提供的web界面实现。 集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。 生成JUnit/TestNG测试报告。 分布式构建支持-Hudson能够让多台计算机一起构建/测试。 文件识别- Hudson能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。 插件支持-Hudson可以通过插件扩展,你可以开发适合自己团队使用的工具。 附3 .持续集成(CI)

  持续集成(CI)是整个软件开发生命周期内侧重保证代码质量的做法。目标为软件构建自动化,

  持续的自动的构建检查,持续自动的构建测试,构件生成后的后续过程的自动化(包括文档,打包,软件部署构建到运行环境或者软件仓库).

  附2 概述:能力成熟模型

  1级:初始 软件过程被认为是特别的,有时甚至是混乱的。很少有详细定义的过程,而且成功取决于个人努力。

  2级:可重复的 基本项目管理过程被建立起来,能够跟踪成本,时间进度和功能。必要的过程原则能够在有着相似应用程序的项目上重复早期的成功。

  3级:清楚定义的 管理和工程活动的软件过程都被文档所记录和标准化,并被集成入一个标准的软件过程以备组织使用。所有项目都使用一个被认可的,专用版本的开发和维护软件的组织标准软件过程。

  4级:良好管理的 详细的对软件过程的度量和产品质量信息被收集起来。软件过程和产品被量化地理解和控制。

  5级:最优化 从过程和领先的创新思想及技术中获得的量化的反馈激活了不断的过程改进。

本文来源:http://www.citswd.com/zongjiebaogao/23121.html