バグ修正スキル
テスト失敗やバグを修正するサイクルを自動化します。
実行フロー
Step 1: テスト実行・失敗特定
bash
# 全テスト実行(失敗を特定) pytest tests/ -v --tb=short 2>&1 | head -100 # または特定モジュール pytest tests/test_identifier/ -v --tb=short
失敗がある場合、以下を確認:
- •失敗したテスト名
- •エラーメッセージ
- •スタックトレース
Step 2: 失敗原因の分析
- •
テストコードを読む
codetests/test_xxx/test_yyy.py
- •
テスト対象のソースコードを読む
codesrc/ta_inspector/xxx/yyy.py
- •
原因を特定
- •期待値とactualの差分
- •未処理の例外
- •依存関係の問題
Step 3: 修正を実装
原因に応じて修正:
実装のバグの場合:
- •ソースコードを修正
- •エッジケースを考慮
テストの期待値が間違っている場合:
- •テストコードを修正
- •仕様を確認
Step 4: lint・型チェック
bash
# 修正したファイルをチェック ruff check <modified_file> mypy <modified_file> # 自動修正可能な問題を修正 ruff check <modified_file> --fix
Step 5: 再テスト
bash
# 修正したテストのみ再実行 pytest tests/test_xxx/test_yyy.py -v # 全テストで regression確認 pytest tests/ -v
Step 6: 結果報告
markdown
## 修正レポート ### 問題 - ファイル: tests/test_xxx.py - テスト: test_yyy - エラー: AssertionError ### 原因 <原因の説明> ### 修正内容 - ファイル: src/ta_inspector/xxx.py - 変更: <変更内容> ### 確認 - [ ] 該当テストがパス - [ ] 全テストがパス - [ ] lint/mypyがパス
よくある問題と解決策
ImportError
- •依存パッケージの不足 →
pip install <package> - •相対インポートの問題 → パスを確認
AssertionError
- •期待値と実際の値の不一致 → ロジックを確認
- •テストデータの問題 → フィクスチャを確認
FileNotFoundError
- •テストフィクスチャのパス →
tests/fixtures/を確認 - •一時ファイルの問題 →
tmp_pathフィクスチャを使用
TypeError
- •型の不一致 → 型ヒントと実装を確認
- •None処理 → Optional型のガードを追加
使用例
code
/fix
問題を特定して自動的に修正サイクルを実行します。