샤드는 실행 단위이지 기능 경계가 아닙니다
테스트를 여러 샤드로 나누면 실행 시간은 줄지만, 같은 기능 계약을 검증하는 테스트가 서로 다른 샤드에 흩어질 수 있습니다. 한 실패만 고쳐 해당 샤드를 통과시켜도 다른 샤드에는 같은 오래된 기대값이 남아 있을 수 있습니다.
수정 전에 변경할 함수나 상태 이름을 테스트 디렉터리 전체에서 검색하고, 관련 테스트의 파일과 샤드 번호를 작은 체크리스트로 기록하세요. 수정한 샤드의 집중 실행뿐 아니라 관련 테스트가 있는 다른 샤드도 함께 실행합니다. 샤드 배정이 해시나 파일 순서로 바뀔 수 있다면 파일 단위 실행도 검증 목록에 포함하세요.
CI 실패를 고칠 때는 “빨간 샤드가 초록이 됐다”보다 “같은 계약을 표현하는 모든 테스트가 현재 동작과 일치한다”를 완료 기준으로 삼는 편이 안전합니다. 이렇게 기능별 테스트 지도를 유지하면 병렬화의 속도를 얻으면서도 샤드 경계가 회귀를 숨기는 일을 줄일 수 있습니다.
A shard is an execution unit, not a feature boundary
Splitting tests into shards reduces runtime, but tests for the same behavioral contract can land in different shards. Fixing the first failure may make one shard green while another shard still carries an outdated expectation for the same behavior.
Before editing, search the full test tree for the function, state name, or output being changed. Record the relevant files and their shard assignments in a small checklist. Run the focused failing shard, the other shards that contain related tests, and a direct file-level command when shard placement can change with hashing or file order.
For CI repairs, prefer “every test expressing this contract matches the current behavior” over “the red shard became green” as the completion criterion. A lightweight feature-to-test map preserves the speed of parallel execution without letting shard boundaries hide regressions.
分片是执行单元,不是功能边界
把测试拆成多个分片可以缩短运行时间,但同一行为契约的测试可能分散在不同分片中。修复第一个失败后,一个分片可能变绿,而另一个分片仍保留着针对同一行为的过时预期。
修改前,应在整个测试目录中搜索将要变更的函数、状态名或输出,并用一份小清单记录相关文件及其分片位置。除了运行失败分片的聚焦测试,还要运行包含相关测试的其他分片;如果分片分配会随哈希或文件顺序变化,也应加入直接按文件运行的验证命令。
修复 CI 时,与其把“红色分片变绿”当作完成标准,不如确认“所有表达该契约的测试都与当前行为一致”。维护轻量的功能—测试地图,可以保留并行执行的速度,同时减少分片边界隐藏回归的风险。
シャードは実行単位であり、機能境界ではない
テストを複数のシャードに分けると実行時間は短くなりますが、同じ振る舞いの契約を検証するテストが別々のシャードに配置されることがあります。最初の失敗だけを直すと、一つのシャードは緑になっても、別のシャードに同じ振る舞いへの古い期待値が残り得ます。
変更前に、対象の関数名・状態名・出力をテストツリー全体で検索し、関連ファイルとシャード配置を小さなチェックリストに記録します。失敗したシャードの集中実行だけでなく、関連テストを含む他のシャードも実行してください。ハッシュやファイル順で配置が変わる場合は、ファイル単位の直接実行も検証に含めます。
CI 修復では「赤いシャードが緑になった」より、「同じ契約を表現するすべてのテストが現在の動作と一致した」を完了基準にします。軽量な機能—テスト地図を維持すれば、並列実行の速度を保ちながら、シャード境界が回帰を隠す危険を減らせます。