Jリーグのテストデータ流出問題について、テスト専門職の立場で考察してみた

ここ最近、SNSのサッカー界で燃えていたこの事象について、6年半くらいテストを専門に行うITエンジニアとしてご飯を食べさせてもらっている自分の立場から、ちょっと考察して意見を述べようかなと思います。

先に結論として

自分自身、漏れてしまったテストデータの内容については「失礼だろ」「ふざけてんのか」とはあまり思いませんでした。テストを毎日のルーティーンとしてこなしている我々にとって、人それぞれではないですが、指定されていない任意のテストデータの場合、そこに特別思いをいちいち持つことはほとんどないからです。大事なのは、そこで不具合が出ないこと・品質が仕様通りに保たれているか担保することであって、そこが確認できればテストデータがどういうものであれ良くも悪くも気にすることはありません。自分も今回のテスターと同じ立場になった時に、鹿島が負けるようなデータを入れていることもあるでしょうし、誰かにレッドカードを出すようなデータを入れるかもなー、特に何も考えずに、とも思いますし。

むしろ、問題なのはテスト環境用のデータが本番に漏れてしまったことだと思います。このこと自体は気をつけていても起こってしまいがちな事象ではありますし、今回はサポーターからのヘイトを高めてしまった以外、特に目に見えた被害というのはありませんでしたが、テストをやっている立場からしてみれば最もやってはいけないミスでありますし、インシデントの重篤度としてもかなり高いものに置かれてしまう事象であります。

なぜかというと、テストデータというのは開発途中のものを扱ったりしているので、内部的に機密情報となっているケースが多いです。そういうものが漏れてしまうと、会社の売上にも大きく関わってしますし、それがひいては会社に損害を与える可能性も否定できません。

Jリーグの場合だと、何かモノやサービスを売るという組織ではないので、そこは一般の会社とは違う部分がありますが、Jリーグでこれに影響してきそうなのがスポーツくじです。totoやWINNERなどのスポーツくじは公平性が担保されているのを前提にして、運営がされています。ですので、今回のような事象でユーザーの信頼を損なってしまった場合、その公平性が揺らぎかねないことになってしまいます。

起こり得てしまうことではあるけども、だからといってデータが漏れてしまったことをしょうがないで済ますと、後々に大きなしっぺ返しを食らいかねないから、構造的に問題がないか確認しながら、再発防止策を打ち出してほしいな、とJリーグには望んでいるところです。

テストデータの中身について

では、今回漏れてしまったテストデータの中身について見ていきます。テストデータが漏れたことで誤表示になってしまった試合は全部で3試合あったとのことでしたが、ここでは一番問題になっていた「鹿島-Honda FC」の部分を見ていきます。自分は内部の人間ではないので実際の事情は分からず、個人的な考察も含んでいるので、そのあたりも込みで読んでいただければな、と思います。

テストで何を確認するのか

まず、今回のサイトをテストするときに前提となる部分は、以下の通りかなと考えます。

・サイトのシステム自体は元々あるものであり、今年も仕様自体は大きく変わっていない
・今回の天皇杯2回戦は同日同時間帯キックオフの試合数が多い

→仕様は以前と同じだし、対象の試合が大量にあるので、一つ一つの試合における入力テストはそこまで丁寧にやる必要はなく、最低限の仕様が満たせているかを確認できればOK

これを前提にして進めていくと、テストで特に確かめたいのは以下の部分です。

・試合経過の入力が適切に行えるか
→得点、交代、警告・退場がホームチーム、アウェイチーム共に入力できることを確認できればOK
・Jクラブに所属する選手の場合、リンクが付属しているのでそれが反映されていることと、リンクを叩いた場合に該当選手のプロフィールページに遷移できることが確認できればOK

この観点でいくと、ホームチーム、アウェイチームのどちらにも含まれるように、得点、交代、警告・退場の経過データを登録してその反映を確認する必要がありますし、その過程で入力された選手に付属しているリンクが正しく機能しているか確認する必要があります。

選手名については、個人名ではなくテストの仮の名前を入れればいいのではと思うかもしれませんし、自分もそう思わなくはないです。ただ、普段からJリーグのサイト上のデータ入力では、選手名と背番号、プロフィールページへのリンクがセットですでにサーバー上に登録されており、チーム名などで絞り込みができるようになっているんじゃないかなー、と個人的には想像しています。なので、チーム名を鹿島アントラーズに設定した時点で、選択できる選手は鹿島に所属している選手だけになっていて、所属チームなしの状態になっている仮データの選手はフィルター外さないと選べない状態だったのでは、という風に個人的には思っています。

また、選手名を実名にしておくことのメリットで挙げられるのは、人名には常用漢字でない漢字を使っている場合が多いのと、外国人選手のように文字数が多い場合もあるというような、イレギュラーなパターンが多いので、それによる表示崩れを防ぐ意味合いもあるということです。なので、個人的には漏れてしまった内容を確認した時に、文字数が多くなった場合の表示崩れを確認しておきたいから、鹿島側の選手に「ディエゴ・ピトゥカ」や「アルトゥール・カイキ」といった文字数の多い外国人選手を入れておいた方がよさそうだけどなー、とは思いました。好みというよりも、表示確認的な意味合いで。

テスターとしては

さて、これらの表示確認をしたいテスターが今回の流出したデータをどんな思いで入力したのか、自分には正直わかりません。もしかしたら、恣意的な思いがあったのかもしれませんし、脳死状態で適当に入力したのかもしれません。ただ、いずれにせよ問題はテストデータが漏れてしまったことそのものなので、その中身がどうであれちゃんとデータ入力のチェックができていれば、個人的には個人の思い以上にどうこう言われることはないと思っています。

テスターとしては、試合のスタジアムや気象状況、開催時刻、審判団、入場者数などはおそらく過去データからコピーしてもってきたものを使って、それで表示確認を行ったのでしょう。これらはそこまで速報性が求められるものでもないですし、重要度が高くないからコピペでもOKだと考えたのだと思います。ただ、得点や交代、警告・退場に関しては、速報性が求められますし、ユーザーとしてもチェックする度合いが高い部分であるために重要度が高くなるので、実際に新規で入力して確認することになっていたのだと思います。そうなると、テスターは両チームに得点、交代、警告・退場のイベントをどこかで入力する必要があります。この時、どちらかを勝たせることや誰を交代させて、誰にどの色のカードを出すかを、どの時間帯で入力するかはテスターの任意だと思いますし、そこで特に気遣いすることを求められてはいないと思います(ゴールはイベントで入れたら、スコア上に反映される仕様だと思う)あくまで実際には反映されない(はずだった)、テストデータなので。

鈴木優磨を退場にした理由を考える

今回、問題になったところで世間的に大きかったのが「鈴木優磨に開始5分でレッドカードが出された」点です。先述したようにこのデータになったのは入力したテスターの意図があったのか、脳死で入れていたのか、わかりませんし、そこを深く追及する気はありません。

ただ、鹿島側で最初のイベントに鈴木優磨がチョイスされたのは、恣意よりもソートの仕様にありそうだなとはちょっと思いました。おそらく、最初のチーム選択で鹿島を選んだ時点で、選手名選択は鹿島所属というフィルターがかかってます。その時に表示されるソートとしてあるかなと思うのが、「よく使う順」であり、そうすると一番上に表示されるのは鈴木優磨だろうと思います。なぜなら、鈴木優磨は今季鹿島の中で一番ゴールを奪っており、警告回数も3回、途中交代の試合も少なくないので、イベントでよく登場する名前になっているであろうから、です。なので、最初を退場にしたのはテスターの任意でしょうが、その対象選手を一番上にいた鈴木優磨にしたのは、単に一番上に名前があっただけなんじゃないかなー、とは思いました。

いずれにしても、このタイミングで漏れたデータとしてはあまりにも悪すぎたなとは思います。だからといって、テストデータの中身よりテストデータが漏れたことの方が問題だとは思いますが。

Honda FCの入力データについて

一方で、Honda FCの方は得点選手と監督が奈良クラブ所属の選手・スタッフになっていました。これはおそらくチーム名を入力した時点でかかるフィルターが、JクラブではないHonda FCではかからなかったのが大きそうだなと思います。そうなると、得点などのイベントで選手名を入力するとき、対象はサーバー上にある全選手が対象になり、その時にあいうえお順で並んでいて上位にあった「アサカワ」という名字で、今回の浅川隼人が入力され、それに合わせて奈良クラブがチームとしてサイト上で認識され、監督も奈良クラブのフリアン監督になったのだと、個人的には予想しています。

ここでツッコミを入れるなら、本番においてHonda FCで入力する選手名にはリンクが付属していないので、ここで入力するのはリンクが付属していない選手名のデータのほうがよかったのでは?ということです。仮の名前でもいいですし、実際にHonda FCの選手から任意で選んで入力する形でもいいと思いますし。

まとめ

今回の件、問題が起こってしまったタイミングと漏れてしまったデータの中身で余計に騒ぎが大きくなってしまったことは否定できないかな、と思います。社長からアピールの意味合いもあるとは思いますが抗議の声明が発信されたのも、そうした複合的な要素があるからだとも思いますし、そこに関しては致し方ない部分もあるとは理解できます。

ただ、今回の件を受けてテストデータが漏れないことへの再発防止はやっていってほしいと思いますが、テストデータが漏れた時でも問題がないように内容に配慮するような動きになるのは、個人的にあまりいいことだとは思っていません。テストデータはあくまでサービスに問題がないか確かめるためのものであって、そこにそれ以上の意味はないからです。むしろ、そうしたことに配慮したせいでテストに余計な工数がかかって、効率性が落ちてしまっては本末転倒だと思います。

繰り返しますが、Jリーグにはあくまでテスト環境が本番流出してしまったことの根本原因を調査して、その再発防止にしっかり努めてほしい。このことを強く望みます。

遠征費とスタグル代に充てるので、恵んでください