Upgrade to Pro — share decks privately, control downloads, hide ads and more …

変更につよいユニットテストの考え方

 変更につよいユニットテストの考え方

このプレゼンテーションでは、効果的なユニットテストの書き方について解説しています。主なトピックは以下の通りです:

ユニットテストの真の目的

開発者サポート
バグ防止
コードの信頼性向上

メンテナンス性を重視したテスト設計

プロダクションコードとテストコードの依存関係を排除
テストコード量の最適化

プログラムの振る舞いに基づくテスト戦略

ユースケースに基づいたテスト設計
各レイヤーに適した粒度でのテスト実装

効果的なテスト階層の構築

Featureテスト
UseCaseテスト
複雑なクラスに対する個別テスト

テストコード作成の具体的な方針

ユースケース実行の正確性を前提としたテスト
UseCaseテストによる振る舞いの保証
柔軟性を持たせたテストコード設計

新しい仕様への対応方法

既存の方針に基づいたテスト追加
複雑なロジックの分離とテスト

このアプローチを採用することで、変更に強いユニットテストを実現し、開発者の自信を高め、長期的な開発効率の向上につながります。メンテナンス性と効果的なテストカバレッジのバランスを取りながら、プロジェクトの品質を維持・向上させる方法を学べます。
対象者:

ソフトウェア開発者
テストエンジニア
プロジェクトマネージャー
品質保証チーム

キーワード:ユニットテスト、テスト設計、メンテナンス性、ユースケース、テスト階層、変更に強いコード

suzuki masayuki

September 25, 2024
Tweet

More Decks by suzuki masayuki

Other Decks in Programming

Transcript

  1. 鈴木まー(suzuki_mar) RubyでDDDや モジュラーモノリスなど のソフトウェアアーキテクチャ の導入、定着を している PHP/Laravelで仕事をできるように 転職活動中&スキルアップ中 直近の仕事 最近していること

    オブジェクト指向カンファレンスの動画を30ぽんぐらい公開した LTやブログなどで設計などをアウトプット PHP Sessionless Conferenceのコアスタッフになったばかり コミュニティ活動 @suzuki_mar プログラマー以外にプロレス団体のプロモーター的な 活動をボランティでしている 名古屋で3000人の会場を埋めることを考えている
  2. メインフロー 支払い情報を入力するま‡ cA システムは購入者がブラックリストに登録されていないことを確認すe &A 購入者がブラックリストに登録されている場合W $A システムは購入者に購入できない旨を通知すe $$A ユースケースを終了すe

    A 購入者が住所を入力すe `A システムは外部のアドレスチェックAPIに入力された住所が正しいことを問い合わせe &A 住所が間違っている場1 $A システムは購入者に住所が間違っていることを通知すe $$A 購入者に正しい住所の再入力を促す プログラミングの振る舞い @suzuki_mar