跳转至

第15章 · 生产级软件工程 · 阶段测试题答案


一 · 单选 (8 题)

1.1 B - Git 是分布式版本控制。

1.2 A - CI/CD 持续集成/持续部署。

1.3 C - 单元测试测最小单元。

1.4 B - Docker 容器化。

1.5 A - Kubernetes 容器编排。

1.6 C - git rebase 重新应用 commit。

1.7 B - TDD 先写测试再写代码。

1.8 A - 单元测试覆盖率高 ≠ 无 bug。


二 · 多选 (4 题)

2.1 ABCD - 都是测试类型。

2.2 ABD - C 错: Git 是分布式。

2.3 ABC - CI/CD 工具。

2.4 ABD - 都是代码质量工具。


三 · 简答 (5 题)

3.1 Git 工作流

核心命令: - git add / commit / push / pull - git branch / checkout / merge / rebase - git status / log / diff - git stash / reset / revert

常见工作流: - Git Flow (master / develop / feature) - GitHub Flow (main + feature) - Trunk-based (单 main + 短期 feature)

3.2 CI/CD 流程

CI (持续集成): - 每次 push 触发 - 跑测试 + lint - 失败不能 merge

CD (持续部署): - 自动部署到 staging / 生产 - 灰度 / 金丝雀 - 自动回滚

代表: GitHub Actions / GitLab CI / Jenkins / CircleCI

3.3 测试金字塔

       /\
      /E2E\        慢, 少
     /-----\
    / 集成  \      中
   /---------\
  /  单元测试  \    快, 多
 /--------------\

比例: 70% 单元 / 20% 集成 / 10% E2E

3.4 Docker 优势

  • 一致性: 开发/测试/生产环境一致
  • 轻量: 秒级启动
  • 隔离: 进程隔离
  • 可移植: 跨平台

核心概念: 镜像 (Image) / 容器 (Container) / 仓库 (Registry) / Dockerfile

3.5 SOLID 原则

  • S: Single Responsibility (单一职责)
  • O: Open/Closed (开闭)
  • L: Liskov Substitution (里氏替换)
  • I: Interface Segregation (接口隔离)
  • D: Dependency Inversion (依赖倒置)

四 · 编程 (2 题)

4.1 GitHub Actions

name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with: { python-version: "3.11" }
      - run: pip install -r requirements.txt
      - run: pytest

4.2 Dockerfile

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "main.py"]