検索
連載

ソフトウェア技術者のためのバグ百科事典(20)みずほ銀行は人ごとではない!? システム刷新のバグ山浦恒央の“くみこみ”な話(141)(3/4 ページ)

ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第20回は、「IT業界のサグラダファミリア」と呼ばれたみずほ銀行の事例に代表されるシステム刷新のバグを紹介します。

Share
Tweet
LINE
Hatena
※本記事はアフィリエイトプログラムによる収益を得ています

5.筆者が経験したバグのケーススタディー

 前ページの4項目で示した業務で経験したケーススタディーを以下に示します。

5.1 過去のデータを正しく整形できない

 この案件では、長年の顧客と商品のデータが大量に存在するため、レガシーのデータベースを新システムに引っ越しする必要がありました。ですが、新システムとの基本的な設計思想が違うため、データ整形が必要です。データ整形の例を以下に示します。

  • 電話番号が「09011112222」を「090」「1111」「2222」のように三分割する
  • 商品の識別番号を新システムに合致するように変更する

 筆者は、レガシーシステムのデータベースからCSVファイルを取り出し、新システムに合う形で修正しました。ある程度は問題なくできたと思ったのですが、一度全てのデータを登録し、確認した結果、顧客から「商品の表示結果がおかしい」と指摘がありました。原因は、筆者がExcelデータを間違って整形したことが原因でした(図3)。

図3
図3 商品説明画面のイメージ(クリックで拡大)

 図3は、商品説明ページのイメージ図です。筆者の問題点は、この情報を見たところで、「この商品が本当にバングラディシュ製か」「画像は合っているか」などが全く分からないことです。結果、顧客から指摘があるまでバグであることすら気付けませんでした。

 データ整形は思った以上に面倒です。例えば、「電話番号が抜けている」「同じ会員と思われるデータが重複している」「データに抜けがある」といった問題があり、顧客に確認しながら作業する必要があります。結果、修正ミスがありました。

5.2 レガシーシステムとの差分が抜けていた

 開発が終盤となり、そろそろリリースというタイミングで、顧客から、「レガシーにあるはずの機能がありません」と指摘がありました(図4)。

図4
図4 バグのイメージ(左:同時購入時割引、右:送料無料商品購入時)(クリックで拡大)

 この案件の難しいところは、筆者には顧客業務を完全に把握できていないことです。そのため、図4の左の「399円の商品を3つ購入すると、割引で1000円になる(商品代金1000円+送料500円=1500円)」、右図にある「ある商品を購入すると送料が無料になる」のような特殊事象を見落としていました。※3)この時、「きちんとしたドキュメントがあれば……」「コードをよく見直しておけば……」と強く思いました。

※3)消費税などの計算処理は抜いています。

5.3 パフォーマンスが出ない

 リリース後で、最もクリティカルだったバグが、ページ遷移が異常に遅く、レガシーよりパフォーマンスが出ないことでした。ECサイトで動作が遅い場合、消費者の購入判断を妨げる可能性があります。筆者が計測したところ、7秒くらいでした。処理性能が異常に遅いことに気付かなかった原因の一つが、筆者の確認方法でした。

 各種データ(商品、顧客データなど)は、日々更新されます。そのため、試験時はデータの上から数百件程度で確認していました。つまり、リリース直前まで全件の状態ではありません。結果として、本番を想定したデータ列でテスト実施できておらず、リリースするまで本来のパフォーマンスが分かりませんでした。

5.4 顧客のこだわり

 厳密なバグといえるか微妙ですが、文言などの修正が非常に頻繁に発生しました。記憶では、同じようなところを繰り返し修正した記憶があります。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る