软件代码与质量管理

1.版本控制

1. 版本控制-定义

  • 在软件工程学里,版本控制是指追踪和控制软件变更的实践;

  • 版本控制系统是用来辅助进行版本控制的工具;

  • 版本控制系统的发展历史
    – cvS
    – Subversion/ClearCase
    – git/hg/tfs

在这里插入图片描述

2. 为什么需要版本控制系统

  • 记录谁在什么时间做了什么
  • 多人团队协作
    – 同步
    – 并行
  • 发布管理
  • Commit Message提供额外的信息,解释变更原因
  • Bug 调试 回滚

3. 分支策略

  1. 主干开发,分支发布
  • 管理简单
  • 主干问题会阻塞开发进程

  1. 分支开发,主干发布
  • 开发分支可以提供可靠的代码隔离
  • 主干问题会阻塞开发进程

  1. 分支开发,分支发布
  • 开发分支可以提供可靠的代码隔离
  • 主干的问题不回阻塞发布
  • 集成时间点可能延后

在这里插入图片描述

2.代码规约

1. 编程规约构成
在这里插入图片描述
2. 编程规约的范例

  1. 不允许美元符号、下划线出现在变量中。下划线和美元符号有特殊意义 .
  2. 不允许用拼音和英文的混合,或者是中文。所有的变量都应该使用标准的英文,英文单词不会出现歧义。
  3. 使用匈牙利命名法
    在这里插入图片描述
    在这里插入图片描述

3. 代码规约扫描工具 -P3C
在这里插入图片描述

3.单元基础测试

1.什么是单元测试

单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

例如,你可能把一个很大的值放入一个有序list中去,然后确认该值出现在list的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。

执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致。

2. 规模代价平方定律
定位并修复一个BUG所需的代价正比于目标代码规模的平方
例如 :
20行的代码在开发阶段发现bug,定位+修复时间可能只需要10分钟
200行的代码在别人调用时发现问题,定位+修复时间可能就需要1个小时,代码评审又需要1个小时

3.单元测试框架

在这里插入图片描述

4. 单元测试 -Mock测试工具

在这里插入图片描述

5. AIR原则
在这里插入图片描述
6. BCDE原则

在这里插入图片描述

7. 单元测试中的坏味道

  1. 测试场景过于集中
    针对某一个单元,要注重简单
  2. 测试依赖运行环境
    导致不稳定
  3. 测试缺少断言
    人眼观察是否成功或者失败,导致效率降低
  4. 用例间存在依赖
    需要独立,不能让用例之间存在依赖

错误实例:
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐