連載
» 2021年05月19日 10時00分 公開

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

[山浦恒央 東海大学 大学院 組込み技術研究科 非常勤講師(工学博士),MONOist]

4.筆者が経験したシステム刷新業務

 少し昔の話です。筆者は、小規模なECサイトの刷新業務を担当したことがあります。そのシステムでは、15年以上の稼働実績がありますが、その間、いろいろなソフトウェア開発会社や個人のエンジニアが好き勝手に手を入れたため、無秩序に繁栄している「中東のバザール」状態になっていました。保守やハードウェアの観点から、システムを刷新せねばなりません※2)

※2)システム刷新業務は大小さまざまですので、あくまでも一つのケーススタディーと捉えて読み進めていただければと思います。

4.1 主な作業

 主な作業を下記に示します。

  • 作戦会議
  • 新旧の差分比較
  • 各種データの整形・移行(顧客データ、商品データなど)
  • 機能追加・修正
  • 運用前テスト

ステップ1:作戦会議

 ECサイトといえども、フルスクラッチで作ることは簡単ではありません。そこで、ある程度パッケージ化してあるものをベースとし、これに既存の機能を追加していく方法をとりました。

ステップ2:新旧の差分比較

 顧客に聞いたところ、レガシーのドキュメントがほぼありません。よって、顧客と一緒に新旧の差分を比較しました。結果、「各種データの整形・移行」の後、「機能追加」をする必要がありました。

ステップ3:各種データの整形・移行

 レガシーのデータベースから、新システムに合致する形に整形し、移行しました。例えば、「電話番号を3桁区切りにしたい(12312341234)」などです(図1)。

図1 図1 データの整形イメージ(クリックで拡大)

 図1では、データの整形イメージを示したものです。電話番号ならば、今まで1つの項目でしたが、これを3つの項目に分割しています。

ステップ4:機能追加・修正

 機能追加・修正では、比較した差分から、「検索項目を増やす」「VIP会員の場合は、割引する」「『金額計算の修正』を修正する」「表示内容を修正する」などを行いました(図2)。

図2 図2 機能追加のイメージ(クリックで拡大)

 図2は、機能追加・修正のイメージを示したものです。検索処理で、赤や青などの色を追加しています。また、文言を「検索キーワード」から「キーワード」のように修正しました。

ステップ5:運用前テスト

 レガシーと新システムに同じ入力を行い、同じ結果になるか確認するテストしました。例えば、「1000円の『TシャツA』と2000円の『TシャツB』をカートに入れると、新旧のどちらも3000円になることを確認する」というイメージです。その後、一通りバグ修正ができたタイミングで、リリースしました。

Copyright © ITmedia, Inc. All Rights Reserved.