签入测试(Check-In Test, 也称提交测试),是保证提交代码的质量的另一个重要工具(还记得代码互审吗?)。
软件开发中最常见的代码错误,是新代码改变了某些语法(调用接口)或语义(行为),使得依赖于那些语法语义的其它代码不能正常如前工作。其次是以前修复的错误又死灰复燃。这两种错误,都应该有单元测试和集成测试来检查。
签入测试由所有的单元测试和部分重要的集成测试组成。签入测试还应该包括编译构建和其它代码静态检验工具(如编码风格检查 等)。签入测试一般应在独立的测试机上运行,以避免使用开发环境影响程序员的工作,以及开发环境的副作用(比如忽略的依赖组件)影响测试结果。测试机一般从虚拟机池获得,可以快速地创建和销毁。
程序员在完成代码后和请求代码互审前,必须运行签入测试。签入测试可以手工请求运行;如果有技术条件,由提交自动触发更佳。
未通过签入测试的代码,绝对不允许签入代码主节点。
签入测试会被频繁运行;在项目开发高峰期一个程序员每天可能运行超过十次签入测试。因此,签入测试的速度必须很快,一般不应该超过10分钟。这是为什么嵌入代码不应该包含系统测试和多数集成测试。