Newer
Older
DeepTIAS / .claude / rules / testing.md
@rintoHasegawa rintoHasegawa 14 days ago 2 KB [add] コーディング規約を整備

paths: ["DeepTIAS.Tests/", "Tongue extraction//*.cs"]

テスト方針 (Testing)

テストを書く・実行するときは本方針に従うこと.フレームワークは MSTest を使う(技術スタック).

テストの種類 (Test Types)

種類目的対象
回帰テストコード整理の前後で解析結果が変わらないことを確かめるサンプル画像を解析した analysis.csv と,旧ビルドで出した正解の比較
単体テスト切り出した処理が単体で正しく動くことを確かめる領域分割,形状特徴,CSV の組み立て等,画面に依存しない処理
  • **回帰テストを最優先する.**本プロジェクトの目的は「解析結果を変えずに整理する」ことであり,その保証の中心になる.
  • 画面(Form1)の操作は自動テストの対象にしない.人が動作確認する.

回帰テストの決まり (Regression Tests)

  • 正解データ(入力画像と,旧ビルドで出した analysis.csv・中間画像)は DeepTIAS.Tests/TestData/ に置き,Git LFS で管理する.
  • 比較は analysis.csv の列構成(見出し行)と値で行う.小数の値は,浮動小数点の誤差を考えて許容誤差を決めて比べる(許容誤差は正解データ作成時に決め,テストコードに理由を書く).
  • 正解データを作り直すのは,解析結果を変える変更をユーザーが承認したときだけとする.テストを通すために正解データを書き換えてはならない.
  • 外部 exe・モデルを使うため時間がかかる.テスト名やカテゴリで単体テストと区別し,単体テストだけを素早く回せるようにする.

単体テストの決まり (Unit Tests)

  • テストメソッド名は 対象_条件_期待結果 の形にする(例: Get3areaMask_EmptyMask_ReturnsEmpty).
  • 画像を使うテストは,小さな画像をテストコード内で作るか,TestData/ の画像を使う.PC ごとの絶対パスを書かない.
  • 1 つのテストでは 1 つのことだけを確かめる.

実行タイミング (When to Run)

  • コードを変更したら,コミット前に単体テストと回帰テストの両方を実行し,すべて通ることを確認する.
  • 実行コマンドは 開発コマンド に記載する.