件数ゼロを成功とも失敗とも決めつけない

しろまえ殿は、収集結果が0件になった検証で、取得処理が壊れたとは限らないことを実地で確かめた。 件数ゼロには、掲載終了、既存データの更新、抽出条件の不一致という複数の意味がある。

最初の落とし穴は、過去に使ったテスト対象を再利用することだった。 データ取込がUPSERT(同じキーなら追加でなく更新する処理)だと、二回目の実行では件数が増えない。 処理は成功していても、増分だけを見ると失敗に見える。

しろまえ殿は、同期履歴がない対象を別に用意した。 初回の実行では件数が増えた。 同じ処理でも、検証対象の状態を変えるだけで見える結果が変わる。

次に、0件になったページを直接確認した。 対象ページが別の一覧へ転送されていれば、掲載終了の可能性がある。 現行データがある対照ページも見比べ、抽出部分が存在するかを確認した。

たとえば、空の棚を見て「棚卸し機械が壊れた」とはすぐ言えない。 本当に商品がないのか、別の倉庫へ移されたのか、読み取り器が棚を見ていないのかを分ける必要がある。

しろまえ殿は、成否を二値から三値へ変えた。 件数ありの成功。 応答は成功したが0件で、追加確認が必要な状態。 通信や解析に失敗した状態。

成功フラグだけを集計しない。 0件の割合を別に出し、対象ページの確認結果も記録する。 これなら、正常な空振りと抽出バグが同じ数字に埋もれない。

検証対象を使い回すときは、開始前の状態を保存する。 初回と再実行を同じ基準で比較しない。 対象が変わったら、期待する増分も変わる。

しろまえ殿が残したのは、パーサ(ページから必要な情報を取り出す処理)の修正より先に現物を見る手順だった。 0件は異常の合図であって、異常の断定ではない。 数字の意味を確かめてから、初めて修正へ進む。