テストと品質保証
2 層構成。1 層は全コミットで自動実行、1 層はリリース前の手動。両方ともオープンソースで GitHub に公開。
TL;DR
| レイヤ | ツール | 実行タイミング | 場所 |
|---|---|---|---|
| ユニットテスト | Vitest | 全 push / PR で GitHub Actions CI が実行 | packages/**/src/**/*.test.ts — 15+ ファイル(SQL 生成、EXPLAIN 解析、schema diff、暗号化、Oracle→DM 型マッピング) |
| 手動チェックリスト | Markdown チェックボックス + エビデンス(スクリーンショット / SQL ログ) | PR 自己テスト + リリース前スモーク、テンプレが GitHub PR / issue に自動展開 | docs/qa/ — 30+ チェックリスト、約 6000 行 |
Layer 1 — ユニットテスト
コミットごとに CI が実行:
pnpm typecheckpnpm testpnpm lint
赤い PR は main へマージ不可。
カバー範囲: 純粋ロジック — 各方言 DDL 生成、EXPLAIN 解析、schema diff、Oracle→DM 翻訳、設定暗号化、i18n 完全性、SQL Linter ルール。
範囲外: Vue コンポーネント描画、実 DB 連携、クロス OS ショートカット、自動更新フロー — これらは Layer 2 で。
参照: packages/ui/src/*.test.ts · GitHub Actions
Layer 2 — 手動チェックリスト
全て Markdown、エビデンス必須 — チェック ✅ にはスクリーンショット / SQL ログ / 録画が必要。フロー:
- PR 作成 → GitHub が
Manual test+Reviewer verificationセクションを自動展開。作者は自己テストしながらチェック + エビデンス貼付。レビュアは branch を pull して ≥2 項目をランダム再テストしてから Approve - リリース前 → 🚦 Release Smoke issue を作成。テンプレが完全な smoke チェックリストを自動展開。全 ✅ または失敗を bug issue にリンクしてから tag
構成
RELEASE_SMOKE.md— 15 分のリリース前 smokedriver-matrix.md— 22 方言マトリクスfeatures/— 機能別 13 ファイルdatabases/— 方言別深堀 16 ファイル
方言別ファイルの構造
Connection · Database/schema · Tables · Indexes · Views · Constraints · Functions / Stored procs · Triggers · Sequences · Users · Roles · Grants · DML/Query · Transactions · Dialect-specific quirks · Cross-platform · Known limitations。
痕跡を残すテンプレート
PULL_REQUEST_TEMPLATE.md— Manual test + Reviewer verification + Evidence50_release_smoke.yml— リリースごとの smoke issueCODEOWNERS— クリティカルパスは自動で owner にアサイン
隠さない限界
- UI 自動テストはまだなし(Playwright は ROADMAP Q4)
- 手動テストは規律に依存 — Evidence + reviewer 副署で「適当にチェック」のコストを上げる
- 実 DB カバレッジはテスタの環境次第 — チェックリストは docker-compose を提案するがテスタが実行するかは別
参加するには
- バグ報告: Bug Report テンプレート
- PR 提出: 標準テンプレに従う; Manual test セクション必須
- ユニットテスト追加:
CONTRIBUTING.md参照 - 手動チェックリスト追加:
docs/qa/databases/README.md参照
リリースの品質? Release Smoke issues · CI 状態? GitHub Actions · ロードマップ? ROADMAP