ここからが本番
藤堂に指摘された異常系の抜けを、水瀬は一つずつ埋めていった。
正常系の流れは見えていた。
だからこそ、その横にある“起きるかもしれないずれ”を足していく作業は、前よりも少し具体的だった。
入力順の違い。
前提データの不足。
画面から再現できる異常系と、結合試験では扱わないケースの切り分け。
マトリクスという考え方も借りながら、水瀬は試験仕様書の抜けを少しずつ埋めていく。
数日かかった。
思ったより長かった。
けれど、そのぶん仕様書の形はだんだん整っていった。
夕方、ひと通り見直した資料を藤堂に見せる。
藤堂は画面を上から順に追い、途中で二、三箇所だけ確認を入れ、それから小さく頷いた。
「うん。これで始めようか」
その一言に、水瀬は胸の奥で少しだけ息を吐いた。
結合試験が始まった。
最初のうちは、思っていたより順調に見えた。
少なくとも、水瀬にはそう見えていた。
画面から入力した値が次の画面へ渡る。確認画面へ進む。保存される。夜間バッチで整理された結果が、翌朝の一覧に反映される。
単体試験のときみたいに、画面の中だけを見ていればいいわけではない。
前の画面、次の画面、バッチ、反映後の見え方。確認する範囲は広かったが、それでも“流れとして通る”という感覚はたしかにあった。
水瀬は、結合試験仕様書を見ながら一つずつ確認を進める。
前提データ。
入力条件。
期待結果。
バッチ後の状態。
正常系を中心に、まずは太い導線を潰していく。
単体試験のときのように、途中で細かい戻しはある。
けれど、何が違っていて、どこを見直せばいいかは前よりずっと見えるようになっていた。
昼過ぎ、確認をひと区切りしたところで、藤堂が水瀬の画面を見ながら言った。
「うん、ここまでは通ってるね」
「はい」
「細かい戻しはまだあると思うけど、少なくとも流れ自体は見えてきたかな」
その言葉に、水瀬は小さく息を吐いた。
少しだけ安心しかけていたのだと思う。
もちろん、まだ終わりではない。
それでも、つながらないのではなく、ちゃんとつながっているものがある。それだけで、少しだけ現場の空気も前へ進んだように見えた。
だが、その空気を壊したのは黒川だった。
結合試験が少しずつ進む横で、黒川は別の確認も進めていた。
通常の導線確認とは別に、想定件数に近いデータ量での表示速度や応答時間を見ているらしかった。
水瀬が画面の確認結果を仕様書へ記録していたときだった。
少し離れた席で、黒川が低い声を漏らす。
「……あれ?」
その一言に、水瀬は思わず顔を上げた。
黒川は画面を睨んだまま、もう一度マウスを動かしている。眉間に皺が寄っていた。
「どうした?」
村瀬が少し離れた席から声をかける。
黒川はすぐには答えなかった。
画面を見て、何かを再実行して、それからようやく言った。
「一回、負荷かけてみたんですけど」
「うん」
「これ、かなり遅いです」
空気が少し変わった。
遅い。
たったそれだけの言葉なのに、執務室の温度が一段落ちた気がした。
村瀬が席を立って黒川のところへ向かう。
高橋部長もその声に反応して近づいてくる。
水瀬も、思わず自分の席から少し身を乗り出した。
「どれくらい?」
村瀬が聞く。
「普通の件数だと、まあ見れなくはないです」
黒川はログと画面を見比べながら答えた。
「でも、本番想定の件数に近づけると、一覧表示がかなり遅くなります。これ、使う人かなりきついと思います」
「タイムアウトまではいってないか?」
高橋が聞く。
「まだそこまではいってないです。でも、実用に耐えるかって言われると、かなり怪しいです」
実用に耐えない。
その言葉は、水瀬の胸に重く落ちた。
結合として通るかどうかとは別の話だ。
機能としては動いている。
でも、現場で使う速さではない。
それでは意味がない。
黒川は続けた。
「特定条件のときだけ極端に重いです。たぶん一覧側の取得件数と、バッチ後の整形データの見せ方が噛み合ってない」
「一覧か……」
村瀬が小さく呟く。
そのタイミングで、結城も席を立ってこちらへ来た。
黒川の画面と、自分の持っている資料を見比べるようにして、静かに口を開く。
「バッチ側の出し方も一回見直した方がいいかもしれません」
「SQLか?」
村瀬が聞く。
「たぶん、そこが一番怪しいです」
結城は落ち着いた声で答える。
「条件によって拾う範囲が広すぎるかもしれません。あと、整理後の持ち方も少し無駄がある気がします」
水瀬はそのやり取りを聞きながら、嫌な予感がしていた。
一覧表示が遅い。
その一覧は、水瀬が作った画面の先で使われている。
しかも、表示している内容は結城のバッチで整形された結果だ。
どちらか片方だけを直して終わる話では、たぶんない。
結城は黒川の出したログを見ながら、さらに言った。
「SQLの条件、見直します」
「それで済みそうか?」
高橋が聞く。
結城は少しだけ考えてから、首を横に振った。
「いえ、一部機能のロジックもやり直しが要ると思います」
「テーブルは?」
村瀬の問いに、結城は短く答えた。
「修正した方がいいです。今の持ち方だと、後ろがきついです」
そこで、村瀬が一瞬だけ目を閉じた。
大きく感情を出したわけではない。
でも、その短い沈黙だけで十分だった。
重い。
話が、予想していたより一段深いところまで入っている。
「影響範囲、どこまで出そうだ」
高橋が聞く。
結城はすぐには答えず、少しだけ視線を落とした。
それから、水瀬の画面の方を一瞬見た。
「画面側も戻ると思います」
その一言で、水瀬の喉の奥が少し固くなった。
「やっぱり……」
思わず小さく漏れる。
村瀬が振り向いた。
「水瀬、今の一覧ってバッチ後の結果見てるよな」
「はい」
「出し方変わるなら、画面も調整要るだろう」
分かっていた。
でも、実際に言葉にされると重さが違った。
せっかく単体試験まで終わらせた。
結合試験も回り始めていた。
少しずつ終わりへ近づいている気がしていた。
その手前で、また戻る。
だが、不思議と前みたいな絶望ではなかった。
しんどいとは思う。正直、かなりしんどい。
けれど今は、どこがつながっていて、何が影響を受けるのかが分かる。
水瀬は自分の画面を開き直した。
まずは、どこがどう変わるのかを知らなければならない。
一覧に渡ってくる項目なのか。
並び順なのか。
取得条件そのものなのか。
水瀬は結城の席へ向かった。
「結城さん、すみません」
「うん?」
「バッチ側、どんなふうに変わりそうですか」
結城は自分の画面を少しだけこちらへ向けた。
修正予定のSQLと、テーブル定義が開かれている。
「まだ確定ではないけど、まず抽出条件が少し変わると思う」
「抽出条件……」
「あと、整理後に持たせる項目も一部見直したい。今のままだと一覧側で余計に見に行く形になってるから」
「……そういうことか」
水瀬は画面を見ながら、その意味を頭の中で追った。
条件が変わるなら、一覧に出る件数が変わるかもしれない。
持たせる項目が変わるなら、画面側の取得や表示の仕方も見直しがいる。
「並び順にも影響出そうですか」
「そこも少し出るかもしれない」
結城は落ち着いた声で答える。
「たぶん、表示側で見てる前提が今のままだとズレると思う」
「ありがとうございます。助かります」
水瀬はそう言って席へ戻ると、そのまま藤堂に声をかけた。
「藤堂さん」
「ん?」
「結城さんに確認したんですけど、抽出条件と整理後に持たせる項目が変わりそうです。並び順も少し影響出るかもしれないみたいで」
藤堂はすぐに水瀬の画面を覗いた。
「じゃあ、まず取得条件かな」
「はい」
「あと、表示件数と並び順。そこが変わると、見え方が一番変わるから」
「分かりました」
藤堂はそこで、水瀬の顔を見た。
「今なら、どこ見るかは分かるよね」
「……はい」
その問いに、水瀬ははっきり頷いた。
前なら、ここでまた頭が真っ白になっていたかもしれない。
でも今は違う。
全部は無理でも、どこから追えばいいかは分かる。
結城はすでにSQLの洗い直しに入っていた。
黒川は負荷試験の条件を変えながら、どこで急激に遅くなるかを見続けている。
村瀬と高橋は、修正の影響範囲と残り日程を睨みながら、低い声で何かを話していた。
執務室の空気が変わっていく。
少し前の張りつめ方とは違う。
もっと具体的で、もっと切迫していて、でも妙に静かだった。
誰かが大声を出すわけでもない。
焦って走り回る人もいない。
それなのに、全員が同じ一点に向かって息を詰めている感じがあった。
高橋が低い声で言う。
「あと十日か」
村瀬がすぐに返す。
「はい」
「厳しいけど、間に合うようにこっちも全力でフォローするしかないな」
「そうですね」
その会話を、水瀬は画面を見たまま聞いていた。
あと十日。
リリースまで、最後の十日。
結合試験で流れを見て、負荷で炙り出されて、そこから修正に戻る。
終わりが見えたと思った場所から、また作り直しが始まる。
でも、たぶんそれが最後の山なのだ。
水瀬はキーボードへ手を置いた。
結合試験は、つながることを確かめる工程ではなかった。
つながらない現実をひとつずつ見つけて、潰していく工程だった。
帰れない最後のデスマが、そこから静かに始まっていった。




