Skip to content

Instantly share code, notes, and snippets.

@eyasuyuki
Created February 18, 2025 08:36
Show Gist options
  • Save eyasuyuki/292c830cc9eda86ba6ae13a5b7fb130f to your computer and use it in GitHub Desktop.
Save eyasuyuki/292c830cc9eda86ba6ae13a5b7fb130f to your computer and use it in GitHub Desktop.
テストコードと定量的ソフトウエア品質測定手法の比較

1. テストコードと定量的測定の違い

項目 テストコード 定量的測定
動作の正しさを保証 ✅ できる ❌ できない
変更の安全性を確認 ✅ できる ❌ できない
ユーザーシナリオの検証 ✅ できる ❌ できない
迅速なフィードバック ✅ できる ⚠️ 一部可能だが手間がかかる
バグ修正コストの削減 ✅ できる ⚠️ バグ発生後の対応になる

2. テストコードが優れているポイント

(1) 品質を「保証」できるかどうか

  • テストコード → プログラムが意図通りに動作することを保証
  • 定量的測定 → 品質の「傾向」や「リスク」を評価するのみ

📌 例:

  • コードの複雑度が低くても、動作が正しいとは限らない。
  • コーディング規約を守っていても、バグがないとは限らない。

(2) 変更が安全かどうかを検証できる

  • テストコード → リファクタリングや仕様変更の際、既存機能が壊れていないことを確認できる。
  • 定量的測定 → 品質の変化は分かるが、動作が正しいかどうかは分からない。

📌 例:

  • コードの複雑度を下げるリファクタリングをしても、意図しない動作変更が起きる可能性がある。
  • メトリクス上の品質スコアが改善しても、バグが混入していたら本質的な品質は低下する。

(3) 実際のユーザーシナリオを検証できる

  • テストコード → 「入力Aに対して期待する出力Bが返るか?」を直接確認可能。
  • 定量的測定 → コードの状態を分析するだけで、実際の動作の正しさは分からない。

📌 例:

  • ユーザーが期待する動作を保証するには、テストコードが必要。

(4) 自動化による迅速なフィードバック

  • テストコード → CI/CDと組み合わせることで、開発のたびに即座に品質チェック可能。
  • ⚠️ 定量的測定 → メトリクスの変化は分かるが、エラー発生後に手動で確認する必要がある。

📌 例:

  • CI/CDでテストが実行されれば、コード変更のたびに品質が保証される。

(5) バグ修正コストの削減

  • テストコード → 事前にバグを発見できるため、修正コストが低くなる。
  • ⚠️ 定量的測定 → バグ発生後の対応となるため、修正コストが増大する。

📌 例:

  • 単体テストで事前にバグを発見 → 低コストで修正可能。
  • 本番環境でバグが発生 → 影響範囲が広がり、修正コストが増大。

3. 結論:テストコードは品質向上の必須要素

定量的測定だけでは「品質の傾向」は分かるが、「品質の保証」はできない。テストコードがあれば、実際の動作を検証しながら品質を向上できる。継続的な開発・改善のために、テストコードを導入すべき!

@eyasuyuki
Copy link
Author

public

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment