`
empireghost
  • 浏览: 53170 次
  • 来自: ...
社区版块
存档分类
最新评论

《持续集成:软件质量改进和风险降低之道》

 
阅读更多


问题

在软件行业发展的初期,软件项目中最棘手、最紧张的时刻就是集成。单独能工作的一些模块被组装在一起,系统整体却常常失败,而且很难找到失败的原因。


解决办法


解决办法的关键在于更为频繁地进行集成



它给项目带来了完全不同的感觉。项目的可见性变得好了很多,因为问题能够更快地检测出来。引入缺陷和发现缺陷之间的时间间隔变短,就更容易发现缺陷,您可以很容易地看见改变了什么,以方便找到问题的根源。当它与良好的测试程序配合时,可以大大减少缺陷的数量。结果是,开发者在调试上花的时间减少了,在增加功能上花的时间更多了,他们相信自己是在一个坚实的基础上开发软件。 




持续集成意味着: 

  所有开发者都先在他们自己的工作站上执行私有构建,然后再将他们的代码提交到版本控制库中,从而确保他们的变更不会导致集成构建失败。 

  开发者每天至少向版本控制库提交一次代码。 

  集成构建每天在一台独立的计算机上进行多次。 

  每次构建都必须 100%通过测试。 

  生成可以进行功能测试的产品(如 WA R、配件、可执行程序等)。 

  修复失败的构建是优先级最高的事情。 

  某些开发者复查构建生成的报告,如编码标准报告和依赖分析报告,寻找可以改进的地方。


最佳实践


为缺陷编写测试


当缺陷被发现时,找出并隔离有问题的代码,为了修复缺陷,我们基本上需要破坏测试,先编写一个会失败的测试用例,然后不断执行这个测试(在修复缺陷的过程中),直到测试不再失败为止。


让组件测试可重复 

 

数据库对于测试来说是相当沉重的依赖关系,所以您有两种选择:要么尽量地进行模拟,在尽可能长的时间内完全避免使用数据库,要么使用数据库并承受其开销。实现这种测试最容易的方法是使用某种xDbUnit 这样的数据库填充框架(如

针对.NET 的NDbUnit、针对 Java 的DbUnit 、针对 Python 的PDbSeed )。这些框架将数据库的数据集抽象到 XML 文件中,然后为开发者提供细粒度的控制,即在测试过程中如何将这些数据填充到数据库中

分享到:
评论

相关推荐

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

    资源名称:持续集成:软件质量改进和风险降低之道内容简介: 《持续集成:软件质量改进和风险降低之道》全面深入地讨论持续集成的各个方面,介绍了一种增加项目可见性、降低项目失败风险的有效实践。此外,还介绍了...

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

    总结来说,《持续集成:软件质量改进和风险降低之道》提供了关于如何实施和优化持续集成策略的全面指导,帮助IT团队提升软件开发的效率和质量,降低项目风险,以适应快速变化的市场需求。通过理解和应用书中的原则和...

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

    本篇文章将深入探讨持续集成如何实现软件质量改进和风险降低,并提供相关的实践策略。 一、持续集成的定义与意义 持续集成是指开发人员每次完成一个小的功能或修复后,立即将其代码合并到主分支,同时自动化运行...

    智能运维:浅谈持续集成( CI)、持续交付(CD) 和软件测试.docx

    1. **持续集成:** 作为持续交付的基础,确保代码的稳定性和质量。 2. **自动化测试:** 包括单元测试、接口测试、性能测试等多种类型的测试。 3. **配置管理:** 使用配置管理工具来确保生产环境与开发环境的一致性...

    CMMI精粹:集成化过程改进实用导论

    CMMI由美国卡内基梅隆大学软件工程研究所(SEI)开发,它整合了多个过程改进模型,如CMM(能力成熟度模型)、SW-CMM(软件能力成熟度模型)等,旨在帮助组织提升其业务流程的效率和质量。CMMI包含了五个成熟度级别,...

    软件测试与持续集成技术教程.pptx

    ### 软件测试与持续集成技术教程 #### 第1章 软件测试与持续集成技术介绍 ...而持续集成技术则进一步提升了软件开发的效率和质量,降低了软件发布的风险。掌握这些技术和方法对于现代软件开发团队来说至关重要。

    持续集成及CruiseControl技术交流

    在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),而剩下的20%任务(非日常)需要研发团队智力...

    软件质量保证相关教材和书籍

    - Jenkins:持续集成/持续部署工具,自动化构建和测试过程。 6. **最佳实践**: - Agile方法:采用迭代和增量开发,强调快速响应变化。 - TDD(Test-Driven Development):先写测试用例,再编写满足这些用例的...

    软件工程中的持续集成与交付.pptx

    - 持续集成与交付将成为软件开发的标准实践之一,推动软件行业的持续进步和发展。 #### 第7章 参考资料 - [1] Martin Fowler. "Continuous Integration." <https://martinfowler....

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

    - **总结**:通过对软件工程中的敏捷开发与持续集成的学习,我们了解到这两种方法论对于提升软件开发效率和质量的重要性。敏捷开发侧重于灵活适应变化,持续集成则强调自动化构建和测试,两者的结合为现代软件开发...

    软件工程中的持续集成与交付系统.pptx

    ### 软件工程中的持续集成与交付系统 #### 第1章:软件工程概述 - **定义**:软件工程是一门研究如何应用工程原理、技术和方法来开发与维护软件的学科。 - **重要性**: - 在现代社会,软件成为基础设施的一部分...

    DevOps持续改进之道.pptx

    DevOps是一种旨在促进开发、运维和质量保证团队之间协作的文化、实践和技术的集合,其核心目的是加速软件的交付过程,同时提高质量和稳定性。在"DevOps持续改进之道"的分享中,我们可以看到多个关键知识点: 1. **...

    软件测试与质量控制.pptx

    它旨在检测软件缺陷、评估软件质量,并确保软件能够按照既定规范和用户需求稳定运行。 **软件测试的重要性**: - **降低修复成本**:早期发现并解决缺陷比后期修复更为经济。 - **减少错误和缺陷**:提高软件质量和...

    软件质量与测试效果考评标准

    8. 持续集成和持续交付(CI/CD):现代敏捷开发中,CI/CD流程自动化了构建、测试和部署,确保每次代码提交后都能快速得到反馈,降低集成风险,提高软件发布的速度和稳定性。 9. 质量度量与监控:通过度量代码覆盖率...

Global site tag (gtag.js) - Google Analytics