てきとうなメモ

本の感想とか技術メモとか

厚労省のCOCOA不具合調査報告書を読む

接触確認アプリ「COCOA」の不具合の発生経緯の調査と再発防止の検討について(pdf)

を読んでみたのでメモ

匿名化されている部分

事業者の名前が匿名化されているけども、委託事業者はパーソルプロセス&テクノロジー、再委託事業者Aは日本マイクロソフト、再委託事業者Cはエムティーアイと読めばよさそう。

時系列

  • 2020/09/01 COCOAソースコードGithub上で公開
  • 2020/09/24 iOS版v1.0.4リリース(問題の不具合混入)
  • 2020/09/28 Android版v1.0.4リリース(問題の不具合混入)
  • 2020/10/12 テスト環境の整備が完了
  • 2020/11/25 Github上の通知が来ないとの指摘
  • 2020/12/04 Github上の当該指摘を検討リストに追加
  • 2021/01/08〜25 SNSや報道を通じて状況を知り、事業者側でテストを実施
  • 2021/01/25 厚労省と事業者の打ち合わせで、通知が来ていない可能性を報告
  • 2021/02/18 v1.2.2(対策版)をリリース

バージョンの関係

v1.0.3で通知が必要以上に来る障害があった。で、v1.0.4でその対策をしたのだが、不要な通知だけでなく、必要な通知も来なくなった。それをv1.2.2で修正したという流れ。

v1.0.4での今回の不具合の混入について

原因については、zipperpullさんの解説の通りかと思うので省略。

基本的にテストで防ぐべき不具合だと思うが、テスト環境が用意できていないので、実際に通知が来るかどうかというようなテストはやっていなかった模様。

そのためもあり、CIO補佐官Bはリリースのためソースコードを1行1行チェックしていたらしい。CIO補佐官ってそこまで実務をするイメージなかったのだが、かなり泥臭いことまでやっていたのだなあ。

CIO 補佐官 B は、実機という意味では事業者側もテストしていたが、HER-SYS の機能を模擬するテスト環境がなく、陽性登録をして接触の検知をするという一連の流れのテストはできない状況だった旨、昨年9月頃から、COCOA 通知を受けた方の検査を公費でできるようにしたということもあり、保健所の負荷が非常に高まっている状態で問い合わせもすごい数が来ていたため、かなり急ぎで対応すべき状況であった旨、その中で、自身もソースコードを一行一行チェックし、変更想定範囲に対しての実装は正しいということを確認した上で、ある意味リスクを取って決定した旨、管理職級B に相談した上で、現場の判断としては自身がリリースを判断した旨を述べている。

まあ、ソースコード読んで気づくことのできるタイプの不具合ではないので、ここで防げなかったのは仕方ないと思う。

テストについて

時系列にあるように2020/10/12にテスト環境が整備された。テスト環境整備前はできる範囲のテスト(アプリ起動や画面遷移、デバッグモードによる動作確認など)ぐらいしかしていない。 テスト環境が整備された後に結合テストをしているが、接触通知が発生しやすいようにパラメタを調整していたので、今回の不具合は見つかっていない。 その後のバージョンアップ時のテストは、接触通知とは関係ない修正だったので、テストはしていない(リグレッションテストはしていないということだと思う)

テスト環境の整備は、エムティーアイが手が空いたときにやっていたようで、優先度は(少なくともリリースと比較して)高くなかったという認識のようだ。

Github上での指摘について

問題のissueは、2020/12/04にエムティーアイが検討リストに載せており、事業者側は認識していたが、厚労省は2021/01に初めて知ったっぽい。

Githubのissueの扱いが関係者で異なるように見える。パーソルによると、2020/09に厚労省がパーソルにGithubのissueを契約にはないが追加で管理してほしいという依頼をした。パーソルはエムティーアイにissueの検討リストへの追加と重要度の判断を依頼する。エムティーアイは検討リストへの追加はするが、重要度の判断は別のところがやるという認識で、ずれている。

体制の問題

COCOAに限らず、新型コロナ関連の仕事は激務になるので、厚労省は頻繁に人員の入れ替えを行うことにしているようだ。これは逆効果な気がする。 また、厚労省内で体制強化の依頼は上にあげていたが、新型コロナで全体的に人が足りていないので、体制強化はされなかったようだ。

あと、以下のように厚労省側にCOCOAの重要性を低めに見ている人たちがいるのがちょっと気になった。このような話もあるので、一理あるとは思う。

指定職級Nは、HER-SYS は保健所の業務の効率化のために重要だと思っていたが、COCOAにはそこまでの認識がなかった旨、国民の期待感や関心は高いという認識はあったが、保健所の積極的疫学調査の補完的役割だと認識していた旨を述べている。また、指定職級G は、COCOA は効果が分かりにくいと思う旨を述べている。

指定職級Kは、全体の中で COCOA はそれほど大きな位置づけを占めていなかった旨、順にいくと、検疫、水際があって、医療があって、保健所問題があって、ワクチンがあって、治療薬があって、もちろん生活支援とか雇用対策とかは別にあったが、その中で COCOA は確か、当面の関心が設計といったものではなく、これは非常にいいものだからどんどん入れていかなければいけない、むしろ広めるのが大事なので、ダウンロード数をとにかく早く上げるということで進捗状況を報告してもらっていた旨を述べている。

感想

テスト環境の整備やテストの実施に対する認識が甘いと思う。テスト環境を早めに構築すべきだったし、構築したならば、テストをしっかり実施すべきだった。そこで見つかった不具合で、タスクの優先順位が変化する可能性もあるわけなので。

エムティーアイもそこはしっかり認識しているようだ。

再委託事業者C は、...一番反省しているのは、何があっても検知できるようなテストを、テストができる状態になったときに、やり直しましょうというふうにできなかったことである旨を述べている。

あとは厚労省側の体制の問題が大きいかな。厚労省側の担当やCIO補佐官が頻繁に入れ替わるのが良くないし、発注者側のリソースや知識が足りないのも問題かと思う。以下のように担当が音を上げているけど、対応できていないのがつらい。

指定職級Jは、...当時の担当は「自分を支えてくれる人がいないとうまくいかない」等と陳情していたが、人を張り付けるにも張り付ける人自体がいない、全体の仕事量に対するリソースが少な過ぎるという問題から、望むとおりには人はつかなかったと思う旨を述べている。