`
maqujun
  • 浏览: 135434 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

持续集成与敏捷开发

阅读更多

     身为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用于代码覆盖率统计以及测试报告生成。

 

分享到:
评论
3 楼 maqujun 2011-01-20  
编译时间过长可以考虑定时编译的方式。
比如你每次编译3小时,那么你就设置成每3小时编译整个项目一次。
2 楼 dashjim 2010-12-21  
1. 开发人员的每一次代码提交,都自动地编译整个项目(已经实现)

如果每次编译都要3个小时该怎么办呢?
1 楼 ngn9999 2010-10-08  
我们用Topo做了持续集成,效果可以,不过测试脚本还是需要自己写,也是用Selenium写的脚本。

相关推荐

    敏捷实践之持续集成

    在本文中,我们将深入探讨持续集成的概念、流程及其在敏捷开发中的应用。 **概念解析** 1. **频繁集成**:开发人员应该每天甚至更频繁地将他们的代码变更合并到共享存储库,避免长时间未合并的分支,减少集成难度...

    GitLab+Jenkins+SonarQube 敏捷开发持续集成环境

    ### GitLab + Jenkins + SonarQube 敏捷开发持续集成环境 #### 一、敏捷宣言与持续集成 - **个体和互动高于流程和工具**:强调团队成员之间的沟通与协作,比制定复杂的流程和使用高级工具更为重要。 - **工作的...

    软件工程中的敏捷开发与持续集成.pptx

    ### 软件工程中的敏捷开发与持续集成 #### 第一章:软件工程概述 - **定义**:软件工程指的是应用系统化、规范化且可度量的方法论来处理软件的开发、运行及维护过程。 - **特点**: - 确保项目遵循既定步骤进行;...

    敏捷开发,敏捷开发,敏捷开发,敏捷开发

    - **实践建议**:采用短周期迭代、持续集成等敏捷实践,加强团队间的沟通与协作。 2. **态度决定一切** - **做事**:保持积极主动的态度,主动解决问题。 - **欲速则不达**:避免急于求成,耐心细致地处理每一个...

    持续集成软件质量改进和风险降低之道.pdf

    2. **敏捷开发与持续集成** - 敏捷开发强调快速响应变化,持续集成是实现敏捷目标的关键工具,它促进了团队间的协作,减少了集成延迟带来的问题。 - 敏捷原则中的“尽早并经常交付有价值的软件”与持续集成...

    敏捷开发与测试

    敏捷开发与测试是指在软件开发过程中采用敏捷开发理念和方法,以及在开发的同时实施测试的一系列实践活动。敏捷开发与测试强调迭代和增量的开发方式,倡导紧密的客户合作、团队协作和快速适应变化的能力。 敏捷开发...

    Continuous Integration英文版

    1. **敏捷开发**:持续集成与敏捷开发方法论结合,可以加速产品迭代,提高团队效率。 2. **微服务架构**:在微服务架构中,每个服务都可以独立地进行持续集成,从而实现快速部署和更新。 3. **DevOps文化**:持续...

    车载软件架构 - 持续集成持续交付 软件交付敏捷开发

    1. **持续集成**是CI/CD的核心部分,它要求开发人员频繁地将代码集成到主干,以便尽早发现并解决问题。每次集成都伴随着自动化构建和测试,确保代码的正确性。典型的持续集成流程包括: - **提交代码**:开发人员将...

    C现代编程+集成开发环境、设计模式、极限编程、测试驱动开发、重构、持续集成.pdf

    极限编程(XP)是一种敏捷开发方法,主张频繁交付、客户参与和持续改进。在C语言项目中,XP的理念可以体现在快速迭代、自动化测试和代码审查等方面,有助于提高团队协作效率和软件质量。 测试驱动开发(TDD)是一种...

    敏捷开发培训(员工)+文档+PPT

    14. **持续集成与自动化测试**:敏捷开发鼓励频繁集成代码,同时采用自动化测试来保证每次集成的质量。 这些知识点构成了敏捷开发的基础,通过深入理解和实践,可以提升团队的开发效率和软件质量,使产品更好地适应...

    敏捷软件开发.pdf

    XP是一种敏捷软件开发方法,它在预算和时间限制下,教导开发人员如何利用迭代计划、持续集成、测试驱动开发、重构和结对编程来完成软件项目。 敏捷宣言是敏捷运动的基石,提出了一系列价值和原则。宣言中强调了个体...

    敏捷开发与敏捷测试详细描述

    总之,敏捷开发与敏捷测试是紧密相连的,它们共同致力于快速交付高质量的软件。通过敏捷开发的理念,如迭代开发、客户合作和响应变化,测试活动得以更好地融入整个开发流程,确保产品的稳定性和可靠性。同时,敏捷...

    敏捷开发管理

    ### IPD与敏捷开发对比 **1. 集成产品开发(IPD)** - **起源与背景**:华为在发展初期采取的是技术驱动的开发模式,这种方式导致了许多项目虽然技术先进但却无法在市场上取得成功。因此,华为决定引入IPD这一管理...

    2012 敏捷开发大会 ppt

    豆瓣阅读团队的持续集成和发布实践展示了如何在实际项目中实施敏捷开发的最佳实践,孙毅可能分享了他们在自动化构建、测试和部署方面的经验。 这些PPT内容广泛涵盖了敏捷开发的各个方面,无论是对于正在考虑引入...

    敏捷开发学习(基础与开发工具)

    敏捷开发是一种快速响应变化、迭代和灵活的软件开发方法,旨在提高团队生产力和客户满意度。在本学习资源中,我们有两个PDF教程,分别是"原创文章-敏捷开发基础(全).pdf"和"Essential Skills for Agile ...

    敏捷开发官方文档

    在当前信息技术(IT)行业中,敏捷开发已经成为项目管理与软件开发的主流实践。本官方文档将深入探讨敏捷开发的核心理念、原则和实践,帮助读者理解和应用这一高效的工作模式。 1. 敏捷宣言与价值观 敏捷开发的基石...

    C++ 敏捷开发资料

    1. **个体和互动高于流程和工具**:敏捷开发重视团队成员之间的沟通与合作,而非严格的流程和工具。它鼓励面对面的交流,以便快速解决问题和决策。 2. **可工作的软件高于详尽的文档**:敏捷开发强调通过频繁交付可...

Global site tag (gtag.js) - Google Analytics