"No","テストID","テスト種別","対象機能","テストケース名","前提条件","テスト手順","期待結果","優先度","備考"
"1","IT-001","API連携","PurchaseOrder","発注一覧取得API","ユーザーが認証済みであること、発注データが存在すること","GET /api/order/po/ を実行","発注一覧が正常に取得でき、ステータスコード200が返却される","高","order/test_api.py - PurchaseOrderTest.test_po_list"
"2","IT-002","API連携","PurchaseOrder","発注詳細取得API","発注ID=1のデータが存在すること","GET /api/order/po/1/ を実行","発注詳細情報が取得でき、pkが1であること","高","order/test_api.py - PurchaseOrderTest.test_po_detail"
"3","IT-003","API連携","PurchaseOrder","発注作成API","purchase_order.add権限を持つこと","POST /api/order/po/ で発注データを送信","新規発注が作成され、ステータスコード201が返却される","高","order/test_api.py - PurchaseOrderTest.test_po_operations"
"4","IT-004","API連携","PurchaseOrder","発注編集API","発注データが存在し、権限を持つこと","PATCH /api/order/po/{pk}/ で更新データを送信","発注情報が更新される","中","order/test_api.py - PurchaseOrderTest.test_po_operations"
"5","IT-005","API連携","PurchaseOrder","発注削除API","purchase_order.delete権限を持つこと","DELETE /api/order/po/{pk}/ を実行","発注が削除され、ステータスコード204が返却される","中","order/test_api.py - PurchaseOrderTest.test_po_operations"
"6","IT-006","API連携","PurchaseOrder","発注キャンセルAPI","発注がPENDING状態であること","POST /api/order/po/{pk}/cancel/ を実行","発注ステータスがCANCELLEDに変更される","高","order/test_api.py - PurchaseOrderTest.test_po_cancel"
"7","IT-007","API連携","PurchaseOrder","発注完了API","発注がPLACED状態であること","POST /api/order/po/{pk}/complete/ を実行","発注ステータスがCOMPLETEに変更される","高","order/test_api.py - PurchaseOrderTest.test_po_complete"
"8","IT-008","API連携","PurchaseOrder","発注発行API","発注がPENDING状態であること","POST /api/order/po/{pk}/issue/ を実行","発注ステータスがPLACEDに変更される","高","order/test_api.py - PurchaseOrderTest.test_po_issue"
"9","IT-009","API連携","PurchaseOrder","発注受入API","発注がPLACED状態で明細が存在すること","POST /api/order/po/{pk}/receive/ で受入データを送信","在庫アイテムが作成され、受入数量が更新される","高","order/test_api.py - PurchaseOrderReceiveTest"
"10","IT-010","API連携","PurchaseOrderLineItem","発注明細一覧取得API","発注明細データが存在すること","GET /api/order/po-line/ を実行","発注明細一覧が取得できる","中","order/test_api.py - PurchaseOrderLineItemTest.test_po_line_list"
"11","IT-011","API連携","PurchaseOrderLineItem","発注明細一括削除API","purchase_order.delete権限を持つこと","DELETE /api/order/po-line/ で複数IDを指定","指定した明細が削除される","中","order/test_api.py - PurchaseOrderLineItemTest.test_po_line_bulk_delete"
"12","IT-012","API連携","SalesOrder","販売注文一覧取得API","ユーザーが認証済みであること","GET /api/order/so/ を実行","販売注文一覧が取得できる","高","order/test_api.py - SalesOrderTest"
"13","IT-013","API連携","ReturnOrder","返品一覧取得API","ユーザーが認証済みであること","GET /api/order/ro/ を実行","返品一覧が取得できる","中","order/test_api.py - ReturnOrderTests"
"14","IT-014","API連携","Build","製造指示一覧取得API","ユーザーが認証済みであること","GET /api/build/ を実行","製造指示一覧が取得でき、フィルタが機能すること","高","build/test_api.py - TestBuildAPI.test_get_build_list"
"15","IT-015","API連携","Build","製造指示アイテム一覧取得API","製造指示アイテムが存在すること","GET /api/build/item/ を実行","製造指示アイテム一覧が取得できる","中","build/test_api.py - TestBuildAPI.test_get_build_item_list"
"16","IT-016","API連携","Build","製造出力完了API","製造指示と出力が存在すること","POST /api/build/{pk}/complete/ で完了データを送信","製造出力が完了状態になる","高","build/test_api.py - BuildTest.test_complete"
"17","IT-017","API連携","Build","製造指示キャンセルAPI","製造指示がPENDING状態であること","POST /api/build/{pk}/cancel/ を実行","製造指示がCANCELLED状態になる","中","build/test_api.py - BuildTest.test_cancel"
"18","IT-018","API連携","Build","製造指示削除API","build.delete権限を持ち、製造指示がCANCELLED状態であること","DELETE /api/build/{pk}/ を実行","製造指示が削除される","中","build/test_api.py - BuildTest.test_delete"
"19","IT-019","API連携","Build","製造出力作成削除API","製造指示が存在すること","POST /api/build/{pk}/create-output/ および /api/build/{pk}/delete-output/ を実行","製造出力の作成と削除が正常に動作する","高","build/test_api.py - BuildTest.test_create_delete_output"
"20","IT-020","API連携","Stock","在庫ロケーション一覧取得API","ユーザーが認証済みであること","GET /api/stock/location/ を実行","在庫ロケーション一覧が取得でき、フィルタが機能すること","高","stock/test_api.py - StockLocationTest.test_list"
"21","IT-021","API連携","Stock","在庫ロケーション作成API","stock_location.add権限を持つこと","POST /api/stock/location/ でロケーションデータを送信","新規ロケーションが作成される","中","stock/test_api.py - StockLocationTest.test_add"
"22","IT-022","API連携","Stock","在庫ロケーション削除API","stock_location.delete権限を持つこと","DELETE /api/stock/location/{pk}/ を実行","ロケーションが削除され、サブロケーションと在庫の処理が適切に行われる","中","stock/test_api.py - StockLocationTest.test_stock_location_delete"
"23","IT-023","API連携","Stock","在庫アイテム一覧取得API","ユーザーが認証済みであること","GET /api/stock/ を実行","在庫アイテム一覧が取得できる","高","stock/test_api.py - StockAPITestCase"
"24","IT-024","API連携","Stock","在庫ロケーションタイプ一覧取得API","ロケーションタイプが存在すること","GET /api/stock/location-type/ を実行","ロケーションタイプ一覧が取得できる","中","stock/test_api.py - StockLocationTypeTest.test_list"
"25","IT-025","API連携","Part","部品カテゴリ一覧取得API","ユーザーが認証済みであること","GET /api/part/category/ を実行","部品カテゴリ一覧が取得でき、フィルタが機能すること","高","part/test_api.py - PartCategoryAPITest.test_category_list"
"26","IT-026","API連携","Part","部品カテゴリパラメータAPI","カテゴリとパラメータテンプレートが存在すること","GET/POST /api/part/category/parameters/ を実行","カテゴリパラメータの取得と作成が正常に動作する","中","part/test_api.py - PartCategoryAPITest.test_category_parameters"
"27","IT-027","API連携","Part","部品カテゴリ削除API","part_category.delete権限を持つこと","DELETE /api/part/category/{pk}/ を実行","カテゴリが削除され、サブカテゴリと部品の処理が適切に行われる","中","part/test_api.py - PartCategoryAPITest.test_category_delete"
"28","IT-028","API連携","Part","部品一覧取得API","ユーザーが認証済みであること","GET /api/part/ を実行","部品一覧が取得できる","高","part/test_api.py - PartAPITestBase"
"29","IT-029","API連携","Part","BOMアイテム一覧取得API","BOMデータが存在すること","GET /api/bom/ を実行","BOM一覧が取得できる","高","part/test_api.py - BomItemTest"
"30","IT-030","API連携","Company","会社一覧取得API","ユーザーが認証済みであること","GET /api/company/ を実行","会社一覧が取得でき、フィルタ（顧客、サプライヤー）が機能すること","高","company/test_api.py - CompanyTest.test_company_list"
"31","IT-031","API連携","Company","会社詳細取得更新API","会社データが存在すること","GET/PATCH /api/company/{pk}/ を実行","会社詳細の取得と更新が正常に動作する","中","company/test_api.py - CompanyTest.test_company_detail"
"32","IT-032","API連携","Company","会社作成API","ユーザーが認証済みであること","POST /api/company/ で会社データを送信","新規会社が作成される","中","company/test_api.py - CompanyTest.test_company_create"
"33","IT-033","API連携","Contact","連絡先一覧取得API","連絡先データが存在すること","GET /api/company/contact/ を実行","連絡先一覧が取得できる","中","company/test_api.py - ContactTest.test_list"
"34","IT-034","API連携","Contact","連絡先作成API","適切な権限を持つこと","POST /api/company/contact/ で連絡先データを送信","新規連絡先が作成される","中","company/test_api.py - ContactTest.test_create"
"35","IT-035","API連携","Address","住所一覧取得API","住所データが存在すること","GET /api/company/address/ を実行","住所一覧が取得できる","低","company/test_api.py - AddressTest"
"36","IT-036","API連携","ManufacturerPart","製造元部品一覧取得API","製造元部品データが存在すること","GET /api/company/part/manufacturer/ を実行","製造元部品一覧が取得できる","中","company/test_api.py - ManufacturerTest"
"37","IT-037","API連携","SupplierPart","サプライヤー部品一覧取得API","サプライヤー部品データが存在すること","GET /api/company/part/ を実行","サプライヤー部品一覧が取得できる","高","company/test_api.py - SupplierPartTest"
"38","IT-038","API連携","SupplierPriceBreak","価格ブレーク一覧取得API","価格ブレークデータが存在すること","GET /api/company/price-break/ を実行","価格ブレーク一覧が取得できる","中","company/test_api.py - SupplierPriceBreakAPITest"
"39","IT-039","API連携","Plugin","プラグインインストールAPI","admin権限を持つこと","POST /api/plugins/install/ でパッケージ名を送信","プラグインがインストールされる","高","plugin/test_api.py - PluginDetailAPITest.test_plugin_install"
"40","IT-040","API連携","Plugin","プラグインアンインストールAPI","admin権限およびスーパーユーザー権限を持つこと","PATCH /api/plugins/{plugin}/uninstall/ を実行","プラグインがアンインストールされる","中","plugin/test_api.py - PluginDetailAPITest.test_plugin_uninstall"
"41","IT-041","API連携","Plugin","プラグイン有効化API","スーパーユーザー権限を持つこと","PATCH /api/plugins/{plugin}/activate/ を実行","プラグインが有効化される","中","plugin/test_api.py - PluginDetailAPITest.test_plugin_activate"
"42","IT-042","API連携","User","ユーザーAPI","ユーザーが認証済みであること","GET /api/user/ を実行","ユーザー情報が取得できる","高","users/test_api.py - UserAPITests"
"43","IT-043","API連携","User","ユーザートークンAPI","ユーザーが認証済みであること","POST /api/user/token/ を実行","認証トークンが生成される","高","users/test_api.py - UserTokenTests"
"44","IT-044","API連携","Settings","グローバル設定API","ユーザーが認証済みであること","GET/PATCH /api/settings/global/ を実行","グローバル設定の取得と更新が正常に動作する","中","common/tests.py - GlobalSettingsApiTest"
"45","IT-045","API連携","Settings","ユーザー設定API","ユーザーが認証済みであること","GET/PATCH /api/settings/user/ を実行","ユーザー設定の取得と更新が正常に動作する","中","common/tests.py - UserSettingsApiTest"
"46","IT-046","API連携","Report","レポート生成API","レポートテンプレートが存在すること","GET /api/report/{type}/ を実行","レポートが生成される","中","report/tests.py - ReportTest"
"47","IT-047","API連携","Label","ラベル生成API","ラベルテンプレートが存在すること","GET /api/label/{type}/ を実行","ラベルが生成される","中","report/tests.py - LabelTest"
"48","IT-048","API連携","Barcode","バーコードスキャンAPI","ユーザーが認証済みであること","POST /api/barcode/ でバーコードデータを送信","バーコードが解析され、対応するオブジェクトが返却される","高","plugin/base/barcodes/test_barcode.py - BarcodeAPITest"
"49","IT-049","API連携","Search","全文検索API","ユーザーが認証済みであること","POST /api/search/ で検索クエリを送信","検索結果が返却される","高","InvenTree/test_api.py - SearchTests"
"50","IT-050","API連携","BulkDelete","一括削除API","適切な削除権限を持つこと","DELETE /{endpoint}/ でIDリストを送信","指定したオブジェクトが一括削除される","中","InvenTree/test_api.py - BulkDeleteTests"
"51","IT-051","DB連携","Stock","構造的ロケーション制約","構造的ロケーションが定義されていること","構造的ロケーションに在庫アイテムを作成しようとする","ValidationErrorが発生し、作成が拒否される","中","stock/test_api.py - StockLocationTest.test_stock_location_structural"
"52","IT-052","DB連携","Part","構造的カテゴリ制約","構造的カテゴリが定義されていること","構造的カテゴリに部品を作成しようとする","ValidationErrorが発生し、作成が拒否される","中","part/test_api.py - PartCategoryAPITest.test_structural"
"53","IT-053","API連携","Attachment","添付ファイルAPI","ユーザーが認証済みであること","GET/POST /api/attachment/ を実行","添付ファイルの取得とアップロードが正常に動作する","中","common/tests.py - AttachmentTest"
"54","IT-054","API連携","Notification","通知API","ユーザーが認証済みであること","GET /api/notifications/ を実行","通知一覧が取得できる","中","common/tests.py - NotificationTest"
"55","IT-055","API連携","ProjectCode","プロジェクトコードAPI","ユーザーが認証済みであること","GET/POST /api/project-code/ を実行","プロジェクトコードの取得と作成が正常に動作する","低","common/tests.py - ProjectCodesTest"
"56","IT-056","API連携","CustomUnit","カスタム単位API","ユーザーが認証済みであること","GET/POST /api/units/ を実行","カスタム単位の取得と作成が正常に動作する","低","common/tests.py - CustomUnitAPITest"
"57","IT-057","API連携","Machine","マシンAPI","ユーザーが認証済みであること","GET /api/machine/ を実行","マシン一覧が取得できる","低","machine/test_api.py - MachineAPITest"
"58","IT-058","API連携","Import","データインポートAPI","ユーザーが認証済みであること","POST /api/importer/upload/ でファイルをアップロード","インポートセッションが作成される","中","importer/tests.py - ImportAPITest"
"59","IT-059","外部連携","Calendar","カレンダーエクスポートAPI","発注データにターゲット日付が設定されていること","GET /api/order/calendar/purchase-order/ を実行","iCalendar形式でデータがエクスポートされる","低","order/test_api.py - PurchaseOrderTest.test_po_calendar"
"60","IT-060","認証連携","Auth","認証なしアクセス拒否","ユーザーが未認証であること","認証ヘッダーなしでAPI呼び出しを実行","ステータスコード401が返却される","高","order/test_api.py - PurchaseOrderTest.test_po_calendar_noauth"
"61","IT-061","認証連携","Auth","Basic認証アクセス","有効なユーザー資格情報があること","Basic認証ヘッダー付きでAPI呼び出しを実行","ステータスコード200が返却される","高","order/test_api.py - PurchaseOrderTest.test_po_calendar_auth"
"62","IT-062","API連携","Parameter","パラメータAPI","パラメータテンプレートが存在すること","GET/POST /api/part/parameter/ を実行","パラメータの取得と作成が正常に動作する","中","part/test_param.py - ParameterTest"
"63","IT-063","API連携","PurchaseOrder","発注複製API","purchase_order.add権限を持ち、元の発注が存在すること","POST /api/order/po/ でduplicate情報を含むデータを送信","発注が複製され、明細もコピーされる","中","order/test_api.py - PurchaseOrderTest.test_po_duplicate"
"64","IT-064","データ検証","XSS防止","XSSインジェクション防止","ユーザーが認証済みであること","HTMLタグを含むデータをAPI経由で送信","HTMLタグが除去またはエスケープされ、XSS攻撃が防止される","高","part/test_api.py - PartCategoryAPITest.test_bleach"
"65","IT-065","データ検証","Input","不可視文字除去","ユーザーが認証済みであること","制御文字を含むデータをAPI経由で送信","不可視文字が除去される","中","part/test_api.py - PartCategoryAPITest.test_invisible_chars"
