真面目で優しいシステムエンジニアは損をする19~比較テスト再び~

どうも!ヒグッティ(ヒグッティ@システムエンジニア)です!
私の実体験を元に真面目で優しいシステムエンジニアが損をすることについて書いていこうと思います。 これはフィクションです。とあるシステムエンジニア、ヒグッティの物語です。
前回はデータ移行のリカバリについての話について書きました。

真面目で優しいシステムエンジニアは損をする18~リカバリ~

今回は比較テストについてです。では、お楽しみください!

今回の記事で言いたいこと

  • 1次受けの言うことは絶対
  • お客さんの同調圧力にどうしても勝てない
  • 問題の切り分けができない人が多い

比較テスト(お金に関する処理)

7月上旬、移行模擬テストの1回目が終了し何とか山を越えたと安心していました。
そんな一瞬の安心もつかの間、次の試練がやってくるのでした。
それは現行システム、新システムの比較テストでした。仲間さんに5月頃から比較テストを実施してください!と言われていましたが、全く手をつけられていない状況でした。やるなら今しかない!ってことで移行模擬テスト(1回目)が完了した後にやることになりました。
経緯としては本番と同等の処理結果になるかを確認したいというところでした。最初は単体テストと内部結合テストで本番と同等の結果になることを確認したので、比較テストはやりませんと断っていましたが、結局押し切られてしまいました。何でこんなに強要してくるの、かそれとなく聞いたところ、お客さんの親会社にシステムのリリース条件として比較テストが必要と言われたそうです。1次受け親会社の言うことには絶対服従のようでした。
会社関係の図は以下な感じです。

現行システムと新システムの比較テストはすべての機能を実施するというわけではありませんでした。特定の重要な機能をテストするものでした。その機能はお金に関する処理です。確かに重要ですよね、、、
処理自体はよくあるバッチ処理的なものでした。他システムからお金に関するファイルを取得し、その内容を取り込み、月末に取り込んだ内容を計算し総額いくらになったかを計算する処理です。問題はこの比較テストをどうやって実施するのかでした。親会社としては以下のように比較テストを実施してほしかったようです。

  • 現行システムと同じようにお金のファイルを1か月毎日取り込み、月末の処理で現行システムの処理結果と同じになることを確認してほしい。

以下、お金の処理と比較テストで実施することをまとめました。

当然、1か月もテストに充てられる時間などありませんでした。そんなこんなでまたお客さんと調整が始まりました。

ヒグ:今回の比較テストはさすがにできないですね、、1か月間も毎日取り込み処理してたら移行模擬テストができないですよ、、
仲間:そうだよね、、、そこは親会社の人とは話したんだけど、リリース条件に入っているからどうにもできないのよ、、
ヒグ:そうですか、、開発環境でならできそうですけど。あとは現行システムと比較しなければならないので、現行システムの担当者の方にも、協力してもらわないとテストできないですね。
仲間:そっかー。開発環境があったか。それで調整してみよう!!でも、いきなり今月から取り込み処理してもその結果がわかるのは今月末だよね?
ヒグ:そうですね。月末の処理で答えがわかりますね。
仲間:だよねー。いきなり処理して結果が失敗でした!ってなるのは嫌だから先月のデータでテストできない?先月のデータをすべて取り込んで月末の処理を実施すればできると思うの。
ヒグ:確かにデータを用意すればできますけど、、移行模擬テストの準備もありますし当初はこんなテストを実施する予定もなかったですよ?正直、厳しいです、、人もいないですし、、
仲間:それは、わかるけどこれをテストやらないとリリースできないんだよ。今、PMさんは他システムとのテストで手一杯みたいだし、本来はPMさんがやるところを私が入っているんだよ。ここはみんなで乗り越えないと!
ヒグ:こちらもタスクが多すぎて手が回らないので他チームから支援してもらっている状況です。正直厳しいです。
仲間:沖縄さんがいるじゃない。移行模擬テストも支援してもらってたし
ヒグ:そうですが、、彼も他のプロジェクトがあります。
仲間:私からも話してみるからお願い!

こんな感じで結局、比較テストをやることになってしまいました、、仲間さんと沖縄さんは仲が良いため、沖縄さんは快諾してしまったようです。沖縄さんは業務知識、技術力があまりないので実質、私と茶髪さんの二人で対応することになりそうです。茶髪さんに移行模擬テストを任せ、私が比較テストを実施することになりました。

ひとまず、どんなテストをいつやるのかを計画してくださいと仲間さんに言われたのでスケジュールとやることをざっくり資料にしました。本当に次から次へとやることが入ってくる、、スケジュールとやることは、以下です。

このテストと並行して移行模擬テストや開発や管理作業もやっています。既にパンク状態ですが、、まず最初に先月分のデータを全て開発環境に取り込みました。取り込み処理が1ヶ月分、動くようにスクリプトで自動化しましたが、取り込みにまる1日かかりました。けっこう重い処理です。その後、awsでDBのバックアップを取得し、何回でも月末の処理を実施できるようにしました。そしていざ、月末の処理を動かし、現行システムの結果と比較しました!!

結果はもちろん一致しませんでした、、、原因はわかりませんでした。取り込んだデータが一致していないのか?月末の集計処理のロジックに不具合があるのか?他にやることもあったため、中々、原因調査が進みませんでした。

とりあえず調査でわかった事は取り込み処理は問題ない事でした。なので月末の集計処理のロジックを再度確認することにしました。問題が発生した時に問題を切り分けできる能力って大切なんですよね。以外とできない人が多い。プログラムは書いたけど、なんでエラーになるか原因がわかりませんって平気で言ってくる人を何人も見てきました(笑)その度、みんなで調査大会が始まりましたね!!そんな時、茶髪さんが月末の集計処理に不具合があることを発見してくれました!!修正した結果、現行システムと結果が一致しました!良かった、、、その時、既に7月の中旬になっていました。その後は毎日の取り込み処理を実施、月末の処理で見事、現行システムと一致することを確認できました。ここでも問題はありましたがデータの問題だったので最終的に機能が問題ないことが証明されました。

本当に長いテストだった…月末処理で結果が一致しない時は頭が痛かった…お客さんもプレッシャーかけてくるし…原因はわからないし…他にも移行模擬テストはやんなきゃいけないし…比較テストで使ってるから開発環境で気軽にテストできないし…かといって現行システムと結果が一致しても褒められるわけでもなく、感謝されることはありませんでした。むしろ、なんで不具合があるんですか?ちゃんと作っているんですか?どんなテストしているんですか?と怒られたり、、、まぁしょうがないよね、、うちのミスだったわけだし、、こんな感じでやる気もモチベーションも最低のまま八月を迎えることになりそうです。

しかし、この時、またしても私の知らないところで新たなテストを実施しなければいけないことになっているなんて私は知る由もありませんでした。今は目の前の比較テストが完了してホッと胸をなでおろしていました。

今日も終電か、、もう3か月くらいは連続で終電だなー。この前、偶然、22時30分くらいに帰宅できました。その帰り道、親から電話がきていたので、掛けなおしました。そしたら今の働き方をかなり心配されましたね(笑)。そりゃー3か月連続で終電はおかしいよね、、親に心配はかけたくありませんでしたが、いつも愚痴を吐くこともなく、吐く相手もいなかったので、親に愚痴ってしまいました。状況が変わるわけではありませんが、少しだけ気分が晴れたような気がしました。この時、初めて親のありがたみを感じた気がしました。もちろん、親のありがたみは感じているんですが、、、相当、メンタルにきていたのかもしれないですね、、、

親との電話が終わってから東海オンエアの動画を見て、就寝しました。あと1カ月くらいでリリースです。ラストスパートだ、、、

スポンサーリンク