FSWP QAエンジニア は何をしますか?
ビルド済みフォルダを検証し、ゲート中は修正しません。最初に報告し、ルーターの修正ループで修正します。
1. 機械的ゲート
bash scripts/setup_toolchain.sh # 環境ごとに1回(apt + GitHubのみ、Composerは不要)
bash scripts/run_gate.sh <dir> [min-php] [--fix]
run_gate.shはテーマ(Theme Nameヘッダを持つstyle.css)を検出し、scripts/theme_check.pyを実行します。それ以外はscripts/qa_check.pyを実行します。どちらもPythonの標準ライブラリのみを使用し、常に動作します。さらに、PHPと該当ツールが存在する場合、以下を追加実行します: php -l、PHPCS WordPress-Extra(エラーは失敗、警告は一覧表示)、最小PHPバージョンに対するPHP互換性チェック、WordPressスタブを使用したPHPStanレベル5。
--fixは最初にphpcbf(WordPress標準)を実行します。スキャフォールディング後や大規模な編集後に使用し、差分を確認してください。- プラグインチェックにはWordPressインストールとコマンドライン(
wp plugin check <スラッグ>)が必要です。それ以外の環境ではNOT RUNとなります。WordPress.orgにプラグインを提出する前にユーザーに実行するよう伝えてください。テーマの場合、同等の機能はTheme Checkプラグインまたはディレクトリの自動レビューです。 theme_check.py <dir> [--directory]: フラグなしの場合、実際の欠陥はFAIL、ディレクトリ専用ルールはWARNとなります。--directoryを付けると、WordPress.orgテーマディレクトリの要件(欠落ヘッダ、スクリーンショットのサイズとアスペクト比、禁止ファイル、プラグイン領域コード、必須クラシックテーマの呼び出し)がFAILになります。qa_check.pyはプラグインヘッダとreadmeのルール(説明文の長さ、一意のプラグインURI、最大5つのタグ、Stable tag: trunk禁止、数値のTested up to、短い説明の長さ)をハンドブックから警告としてチェックします。qa_check.pyはプラグインに対して以下を強制します: ABSPATHガード、バージョン一致(ヘッダ、定数、readme安定版タグ)、example.comやCDNまたはホストされたフォントの禁止、すべてのルートに対するpermission_callback(コメントアウトされた__return_true付き)、DBアップグレードチェック、コールバック内でのエンキュー、禁止関数、アンインストールガード、remのみのユニット、JS翻訳、ソースとコンパイル済み出力の同梱、フォントライセンス。theme_check.pyはヘッダ、ライセンス、エントリーテンプレート、theme.jsonの妥当性、禁止関数、エスケープされないechoのヒューリスティック、リモートアセット、テキストドメイン、スクリーンショットとreadmeをチェックします。
報告ルール: すべてのチェックはPASS、FAIL、またはNOT RUNで、使用したツールバージョンと共に報告します。NOT RUNは決して合格とみなされず、「クリーン」と要約されることもありません。PHPまたはツールが不足している場合は、その旨と実行すべきコマンド名を記述してください。
1a. スコープチェック
差分またはファイルリストを承認された概要と比較します。計画で要求されていないファイル、フック、オプション、依存関係はスコープクリープとして報告されます(fswp-developer/references/lean-coding.md参照)。追加行と削除行をカウントし、不均衡についてコメントします。
2. 手動チェックリスト
references/checklist.md: スクリプトで判断できない項目のみ。機械的ゲートがグリーンになった後に実行します。
3. シナリオテスト
PRD(fswp-architect)内の番号付きシナリオごとに、PASS、FAIL、またはNOT RUNを証拠とともに取得します。以下を必ず含めてください:
- 以前のオプションやテーブルがない状態での新規インストール: 通知や致命的エラーなし。
- 非アクティブ化して再アクティブ化: 重複したスケジュールやオプションなし。
- 以前のバージョンの保存データから再アクティブ化せずにアップグレード: スキーマとオプションが読み込み時に移行されること。
- アンインストール: プラグイン所有のデータのみ削除されること。
- 移行モード:
baseline/(fswp-architect)に対するエクスポート差分とビジュアルリグレッションゲート。
作業タイプ別に以下を追加:
- テーマ: PRDにリストされているすべてのテンプレートタイプが実際のコンテンツと空のコンテンツの両方でレンダリングされること。エディタとフロントエンドが一致すること。キーボードのみのナビゲーションが機能すること。テーマの切り替えと元に戻しで致命的エラーが発生しないこと。
- 更新: 変更概要のパリティリストの全項目が再チェックされマークされていること。以前のバージョンの保存データからのアップグレードが機能すること。概要以外に変更がないこと(差分確認)。
- アドオン: ホストがアクティブで範囲内(動作する)。ホストが非アクティブ(アドオンは静観、通知を表示、致命的エラーなし)。ホストがサポートバージョン未満(明確に拒否)。
- コアパッチ: チケットの再現がパッチ前は失敗し、パッチ後は成功すること。該当するPHPUnitグループがパスすること。変更行でPHPCSがクリーンであること。
fswp-core-contributorを参照。
PHPが実行可能な環境では、アクティベーションと移行ロジックを小さなPHPスクリプトで実行します。それ以外の場合は読み取りによってトレースし、「トレース済み、未実行」とラベル付けします。
4. リリースチェック
上記すべてがグリーンになった後: references/release-check.md
出力
1つのテーブル: チェック | PASS/FAIL/NOT RUN | 詳細。次にFAILリスト(ファイルと行番号付き)、次にユーザー自身が実行する必要のあるもの。マルチセッションビルドの場合は、テーブルをHANDOFF.mdにコピーします。