持续集成对本科团队项目构建健康的影响
1. 持续集成系统与相关指标
在软件开发中,持续集成(CI)系统有一些明确提及的指标,如构建失败的时间比例和夜间失败构建的数量。不过,这些指标通常用于评估学生的项目表现,而非评估课程的实用性。
还有一个有趣的提议是 Prof. CI 系统,它用 CI 工具取代了常见的基于浏览器的编码环境,主要用于教授测试驱动开发(TDD)。该系统的作者通过比较两组学生的数据来了解这种方法的优缺点,但他们更关注编写测试的数量和质量相关指标,而非构建健康状况。目前,还没有人尝试评估学生在使用和不使用 CI 工具的情况下管理构建健康的能力。
2. 曼彻斯特大学课程中的工具选择
在曼彻斯特大学的软件工程课程中,大二第一学期的课程要求学生对一个大型开源代码库进行多次更改,并使用一系列最佳实践工具和技术,以确保发布的代码没有明显缺陷。经过与学校行业俱乐部成员的协商,为学生选择了以下工具集:
- 分布式版本控制系统(Git,git-scm.com)
- 问题跟踪器(GitLab 问题跟踪器,gitlab.com)
- 自动化测试工具(JUnit,junit.org)
- 代码覆盖率工具(JaCoCo,jacoco.org)
- 代码审查工具(GitLab,gitlab.com)
- 自动化构建工具(Ant,因为使用的开源软件基于它,ant.apache.org)
- 持续集成服务器(Jenkins,jenkins.io)
为了管理引入众多新技术给大量学生带来的风险,决定分三个连续的学生群体逐步引入 CI 系统,具体如下:
| 学生群体 | 引入情况