身为Scrum Master以Scrum开发方式去开发系统已经快1年了。团队人手资源都还算丰富,所以一直都没有很关心测试那一块的问题。而是把绝大多数的时间用于简化架构从而简化开发,重构,新人技术培训(由于外包人员较多,所以团队不稳定),加强代码规范,日常项目进度管理,以及解决开发人员遇到的所有问题,以及外交工作。所以在排满的工作量的情况下,真的很难去关注持续集成的问题。并且在推荐引入Selenium的方案被锯后更是几乎放弃了关注自动化这一块。可是最近测试方面的问题却弄得我不得不关注持续集成。
故事是这样子的,项目进入了质量提升的阶段,开发任务不多,以优化为主,但仅仅核心系统测试评估给出的Man-day大大超出了我的预料,多达1000个man-day,而且非常愚蠢的是这只是一次运行Case所需使用的时间。那我想知道如果中间发现Bug怎么办?你还回归之前测好的Case吗?你不回归你怎么保证AD在改你发现的bug时不会在其他代码上弄出新的BUG?但如果你回归了,你的man-day可就是大的没底了。所以我再一次提及自动化测试的重要性,测试组的确也有用watij做了500多个自动化测试Case,但经常Fail结果无法让人信服。当然这个是核心系统,我目前参与的不多,别人怎么做我也不想评论。但让我不爽的是我负责的项目只开发了3个月却也有300个man-day的测试计划。300个man-day足够我再做这么一个系统了!所以我决心要改变这种荒唐的测试方式。从而也是把测试人员从无聊的点击页面中解放出来。测试人员应该做更高层次的测试流程定义工作!
所以我要做的持续集成流程是这样的:
1. 开发人员的每一次代码提交,都自动地编译整个项目(已经实现)
2. 每天晚上12点定时把集成流的代码发布到开发环境中(已经实现)
3. 发布完成后自动运行单元测试以及冒烟自动化测试(Selenium或watij无所谓)(todo)
4. 把测试结果,测试覆盖率报告发给相关人员,并记录测试结果以及发布结果。以备于历史查询。(todo)
5. 自动回归测试并生成质量报告。(TODO)
这样就能保证每天系统都会有一个回归。电脑回归的速度是人手工无法比拟的。所谓几百man-day的手工测试对于电脑来说也只是几小时的运行时间而已。这样做的最大好处是减少项目风险,减少手动过程,增强项目参与人员的信心和安全感。确保项目质量。
使用工具:
CruiseControl用于每次Checkin后的代码编译,以及每日发布开发环境。
TestNG,JUnit,Selenium,watij,JWebUnit,easymock等等用于测试。
checkstyle用于代码规范检查
EMMA,JCoverage,TestNG-xslt用于代码覆盖率统计以及测试报告生成。
分享到:
相关推荐
Git + Jenkins + SonarQube 敏捷开发持续集成环境 安装流程带配图,过程完善
软件工程中的敏捷开发与持续集成.pptx
这篇文章是前期工作中用到的技术的总结 绝对的精华 传统的开发模式在西方已经销声匿迹 然而在我们的“环境”中还是一直存在着 but 高瞻远瞩的人已经行动起来 敏捷宣言的出现 拯救了一大批你我一样的程序“猿”
敏捷开发中的持续集成应该如何做??本文探讨了在嵌入式软件开发中如何可以采用敏捷开发、持续集成(ContinuedIntegration,CI)和测试驱动的开发(Test-DrivenDevelopment,TDD)技术。当应用为基于架构的方法的一...
### 本文主要 ### -> 1、持续集成持续交付概述 ### -> 2、持续集成 ### -> 3、持续交付
内容概述源代码管理和版本控制构建服务器和自动构建自动构建测试自动报告,保证持续集成过程结论参考资料简介: 本文将介绍如何利用RationalTeamConcert(RTC)在敏捷开发过程中进行持续集成。详细说明了如何在RTC...
华为持续集成的解读文档,很详细的对持续集成进行了解读,可帮助理解敏捷开发工具
在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),而剩下的20%任务(非日常)需要研发团队智力...
项目如何进行持续集成,如何在敏捷开发中快速的进行集成,以及如何操作持续集成。
敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高...持续集成;代码评审和重构 (Review&Refactor)。下文将针对每个步骤和其所使用的工具、方法进行详细描述。
Jenkins持续集成测试说明文档。适用于持续集成环境配置。敏捷开发必备工具
敏捷开发模式下测试策略综述 2 过程管理角色 2 测试开发角色 2 持续交付 3 持续交付,是在产品开发过程……能够以较短地周期完成需求的小粒度频繁交付;频繁的交付周期【2~5周】带来了更迅速的对产品的反馈和改善...
安卓架构,支持敏捷开发和持续集成,服务容器、IOC、沉浸式状态栏、场景切换、模拟http请求式导航
主要是介绍持续集成和持续开发的一个pdf 大家有空的可以下载看看学习一下这个是在实际开发过程中使用的学习到的。
持续集成倡导开发团队频繁地进行系统集成——通常一天一次到数次,每次集成都能被自动编译和测试验证,从而能在最短的时间内发现问题,缩短开发周期,提高软件 持续集成作为一种敏捷软件开发实践,已经被越来越多...