結合試験の足音
追加要件として任された画面も、さらに一週間後には単体試験まで終わっていた。
もちろん、その一週間が楽だったわけではない。
追加で入った機能だけあって、考えることは多かったし、設計の段階で揃いきっていないところもいくつかあった。
それでも、水瀬は前よりは止まらずに進めるようになっていた。
どこで迷うかが分かる。
何を確認すればいいかも、前より見える。
藤堂に聞くときも、「なんとなく分からない」ではなく、どこが曖昧かを言葉にできるようになってきた。
それだけでも、自分が少し前へ進んでいるのだと分かった。
だが、現場はその少し先を、もう見ていた。
土曜の朝、藤堂はすでに別の資料を開いていた。
画面設計でも、単体試験でもない。
一覧表とフロー図が並び、複数の画面名と処理名が線で繋がれている。
水瀬が席に着くと、藤堂がちらりとこちらを見た。
「おはよう」
「おはようございます」
水瀬がPCを立ち上げると、藤堂はそのまま画面を示した。
「追加で入った方、単体まで終わったよね」
「はい」
「じゃあ次、結合試験の方を見ていこうか」
その言葉に、水瀬は少しだけ背筋を伸ばした。
結合試験。
言葉としては知っている。
単体試験の次に来る工程だということも分かっている。
けれど、実際に自分がそこへ入るのだと思うと、また別の重さがあった。
「結合って、実際どんな感じなんですか」
そう聞くと、藤堂は自分の画面を少しだけこちらへ向けた。
「機能を繋いでやる試験かな」
「繋いで……」
「うん。たとえば、ログインして、検索して、結果が表示されて、その中の一件をクリックすると詳細画面が出る、とか」
水瀬はその説明を頭の中で追う。
ログイン。
検索。
結果一覧。
詳細表示。
たしかに、それは一つの画面の中だけでは終わらない。
いくつかの機能が順番に繋がって、初めて成立する流れだ。
藤堂は続ける。
「単体だと、自分の画面が意図通り動くかを見るよね」
「はい」
「結合は、その前後も含めて、業務の流れとして通るかを見る感じ」
「なるほど……」
少し分かったような気がした。
少なくとも、自分の画面の中だけを見ていればいい時間ではなくなる、ということだけははっきりしていた。
藤堂はそこで、別の機能概要図を開いた。
「水瀬くんには、画面で設定したものを夜のバッチで整理して、その結果をまた画面で表示する機能の結合試験仕様書を見てもらおうと思ってるんだけど、いいかな」
水瀬は画面を覗き込む。
画面入力。
設定値の保持。
夜間バッチ。
整理後の状態反映。
その結果を翌日以降に画面で確認する流れ。
今までより、少し広い。
画面だけではなく、バッチの流れも絡んでいる。
「僕で大丈夫ですか」
思わず聞くと、藤堂は小さく笑った。
「まず全体を理解しないと結合は作れないから、そこから始めよう」
「はい」
「機能概要図を見ながら、データの流れを追ってみて。たぶん、今の水瀬くんなら、すっと入ってくると思うから」
その言葉に、水瀬は少しだけ驚いた。
“今の水瀬くんなら”という言い方が、まっすぐに残る。
水瀬は自分の席へ戻り、機能概要図を開いた。
しばらく、画面を眺める。
画面の繋がり。
データの流れ。
どこで入力し、どこで確定し、どこでバッチが拾い、何を整理して、どう反映されるのか。
思っていたより、頭に入ってくる。
水瀬が作った画面は全部で三画面だった。
しかも、そのどれもが機能の入口に近いところに配置されていた。
だからなのか、そこから先へ流れていく線を追いやすい。
(ああ、こう繋がってるのか)
そう思うのと同時に、別の考えも浮かんだ。
もしかすると、自分に最初に任された画面は、ただ空いていたから振られたわけではなかったのかもしれない。
入口側の画面を触ったからこそ、今こうして全体像へ入りやすい。
そう思った瞬間、村瀬や藤堂がどういうつもりでタスクを振っていたのかが、少しだけ見えた気がした。
もちろん、たまたまの部分もあるだろう。
でも、それでも、自分が流れを掴みやすい位置から入ってきたことには意味があったのかもしれない。
水瀬は小さく息を吐いた。
ありがたいな、と思った。
さらに画面を追っていく。
設定画面で入力する。
保存する。
そのデータを夜間バッチが拾う。
条件に従って整理する。
翌朝、一覧や詳細画面に反映される。
単体試験では、それぞれの断面を見ていた。
結合試験では、その断面を一本の流れとして繋いで見なければならない。
たしかに、これはまず全体を理解しないと書けない。
すでに藤堂が作っていたお手本の仕様書があった。
水瀬はそれを横に置きながら、自分が担当する機能の結合試験仕様書を書き始めた。
機能名。
前提条件。
試験手順。
期待結果。
まずは正常系の流れを書く。
設定画面で条件を入力する。
保存する。
夜間バッチが実行される。
翌朝、一覧画面に整理後の結果が表示される。
そこから詳細へ進み、内容が正しく反映されていることを確認する。
一つ書いてみると、その先も少しずつ見えてくる。
画面の流れを追い、データの流れも追っていく。
完全ではない。
でも、思っていたより書ける。
昼を過ぎても、水瀬はずっと機能概要図と仕様書を見比べていた。
途中で何度か手は止まる。
バッチ実行前の状態か、後の状態か。
どの画面で何を確認するのが自然か。
一覧に出ることだけ見ればいいのか、詳細まで確認した方がいいのか。
それでも、前みたいな止まり方ではなかった。
今は、「何が足りないか」が見える。
夕方近くになって、藤堂が手を止めてこちらの画面を覗き込んだ。
「どんな感じ?」
水瀬は途中まで作った仕様書を見せる。
「なんとなく、テストの概要は作成できました」
藤堂は画面を覗き込み、上から順に見ていった。
しばらくして、小さく頷く。
「正常系ルートはいいんじゃないかな」
その一言で、水瀬はすぐに察した。
正常系ルートはいい。
つまり、足りていないのはそこではない。
「あの……異常系ルートが足りないってことで合ってますか」
そう聞くと、藤堂が少し笑った。
「おっ、察しが良くなったね」
「やっぱり」
「うん。異常系のパターン、もう少し入れようか」
水瀬は自分の仕様書を見返した。
たしかに正常系は書いた。
でも、異常系はほとんどない。
藤堂は続ける。
「結合試験で再現できないケースは、ここではやらない方針でいいよ」
「再現できないケース……」
「たとえば、データベースにアクセスできないとか、システムそのものの障害とか。そういうのは単体とか別の試験で見てるから」
「なるほど」
水瀬は頷く。
「画面側は特に、使う人によって予期しないことが起きやすいんだよね」
「予期しないこと……」
「入力の順番が違うとか、想定してない戻り方するとか。そういうのを少し予測するといいかも」
その言葉を聞いて、水瀬は単体試験のときのことを思い出した。
人は、作った側が思った通りには動かない。
だからこそ、異常系を見る必要がある。
藤堂はそこで、さらに付け足した。
「あと、異常ケースのマトリクス作って、網羅できてるか確認するとかね」
「マトリクス?」
「うん。条件を軸ごとに並べて、組み合わせを見ていく感じ」
藤堂は紙に簡単な図を描いた。
「たとえば、入力値が正常か異常か、前提データがあるかないか、そういう条件を縦横に置いてみる」
「はい」
「そうすると、ありえる組み合わせが抜けにくくなるんだよね」
「……ああ」
「その中で、画面から再現できるケースと、結合では見ないケースを分けると、試験項目が整理しやすい」
水瀬はその説明を聞きながら、まだ知らない言葉が普通に出てくることに、少しだけ圧倒された。
マトリクス。
また新しい言葉だ。
でも、言われていることの意味は前より理解できる。
藤堂は少しだけ苦笑した。
「本当は全部のケース通したいけどね」
「はい」
「でも、リリースまであと三週間だから。ケースをMUSTとWANTに分けて、MUSTは確実に、WANTは時間があれば、かな」
その現実的な線引きが、今の案件らしかった。
全部やりたい。
でも時間はない。
だから、優先順位をつける。
それは妥協にも見えるけれど、現場を前へ進めるためには必要な判断でもあるのだろう。
藤堂が立ち上がりながら言った。
「ここが正念場だよ」
軽い言い方だった。
でも、その一言は水瀬の胸に残った。
正念場。
たしかにそうだと思った。
単体試験まで終わらせた画面が増えてきた。
自分の中でも、前より見えるものは増えた。
でも今度は、その先を見なければいけない。
機能を繋いで。
流れとして成立するかを確認して。
限られた時間の中で、何を優先するかを決める。
まだまだ、初めて聞く言葉もある。
まだまだ、学ぶことは多い。
でも、その意味が前より少しずつ分かるようになってきたことだけは、たしかだった。
水瀬は結合試験仕様書へもう一度目を落とした。
正常系の先に、異常系を足していく。
見えていなかったケースを洗い出していく。
そうやって、また一つずつ、次の段階へ進んでいくしかなかった。




