持续交付发布可靠软件的系统方法(基础篇)第一章:软件交付的问题

《持续交付发布可靠软件的系统方法》读书笔记

软件构成部分:可执行的代码、配置信息、运行环境、数据

  • 不同环境下只进行一次编译
  • 对环境的任何修改都应该作为配置信息管理,配置信息的更改都需要经过测试
  • 如果运行环境需要修改,则修改后的环境也需要进行测试。环境包括:操作系统配置、应用程序依赖的软件集、网络配置及任何基础设置、外部系统
  • 数据结构发生变化,同样需要经过测试

反馈流程:指完全以自动化的方式尽可能地测试每一次变更

  • 创建可执行代码的流程
  • 单元测试
  • 质量检测:测试覆盖率以及其他与技术相关的度量项
  • 功能测试验收
  • 性能、有效性、安全性等非功能测试
  • 探索性测试,给客户/最终应用演示

自动化测试反馈

【commit阶段】

  • 运行速度快
  • 尽可能全面,75%代码库覆盖率
  • 环境中立,相对生产环境简单廉价
  • 如果出现问题,绝不发布
    【commit之后测试】
  • 运行速度慢一些,适合并行执行
  • 即使有些测试问题,也可以发布应用程序
  • 运行环境尽可能与生产相同

不同版本、不同环境的配置放在版本控制中

  • 开发人员都拥有自己的专属开发环境
  • 无论部署在什么目标环境都应采用同一种部署方法
  • 开发环境是特例,可以有多变性部署方法

软件的交付原则

  • 为软件的发布创建一个可重复且可靠的过程
  • 将几乎所有的事情自动化(构建、部署、测试、发布)
  • 把所有的东西都纳入版本控制(需求文档、测试脚本、自动化测试用例、网络配置脚本、部署脚本、数据库创建、升级、回滚和初始化脚本、库文件、应用程序依赖的软件集、工具链及技术文档等)
  • 找到流程中最痛苦的事情,并提交频繁地进行:如果集成最痛苦,那应在开始阶段就不断进行集成、测试;如果发布痛苦,每次提交并通过自动化测试后就进行发布
  • 用户故事只有到了已发布才算完成,交付成果属于每个成员,交付前每个成员都为其负责
  • 持续改进,交付过程中,整个团队召开回顾会议,提出改进方向及方法,每个改进点应该同一个人负责跟踪,确保改进被执行,下一次回顾会议,汇报结果。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 部署流水线 指一个应用程序从构建,部署,测试到发布整个过程的 自动化 实现 部署流水线的目标 让软件从构建,部署,...
    秘果_li阅读 3,474评论 0 1
  • 作业一:每日晨间朋友圈见证,必须在12点之前完成。 作业三:每天私聊10个粉丝以上,截图用美图秀秀拼图提交作业群。...
    德飞_a3d4阅读 2,635评论 0 0
  • 1.练习楷书1页纸; 2.口语练习,背单词,记手账; 3.下班从数码广场步行回家; 4.吃2个苹果,4颗红枣,喝6...
    诺诺521阅读 1,566评论 0 0
  • 今晨四点多,淅淅沥沥的下起雨来,可惜静夜雨声,也没能让我入眠。
    橘子郡__阅读 871评论 0 0