サービスの不具合・バグ対応の分析を少々

サービスの不具合・バグ対応の分析を少々

どうも、さむらいです。
お恥ずかしい話ですが、、今まで当IT本部では何が理由でその不具合・バグが発生したのかを振り返って分析するようなことはしていませんでした。なぜなら我々は常に前を向いて新しいものを創りだしてきたから。過去など振り返らないのだ。

でもいい加減同じ不具合・バグも積み重なってきたので、そろそろその根治方法を考えださなければならぬ。ということで去年発生した不具合・バグを分析してみました。

2015年の動作不具合・バグは104件

改めて数字にすると結構多いですねこれ・・・。

フェーズ毎の内訳は以下の通り
本番運用中:55件
リリース前のテストフェーズ:49件

種別毎の内訳は以下の通り(多いやつだけ抜粋)
仕様漏れ:18件
コーディングミス:20件

上記の他にも、テスト仕様書が間違っていたため、テスト結果がNGになったり、そもそもの要件が間違っていたり、作業手順が間違っていたりといった内容が散見されます。

コーディング時の注意事項(ルール化はされていない)

コーディングする際、社内でも注意しているのが IE8 以下向けの記述。もうとっくに Microsoftのサポートが切れたブラウザ ですが、大手のイントラネット環境では根強く使われているしぶといブラウザです。

当社サービスは IE8 を含む下記のブラウザで動作保証しているので、プログラマはブラウザの挙動に左右されないコーディング、もしくはユーザーエージェント毎に個別の記述が求められます。

フォームアシスト(EFOサービス)の動作保証ブラウザ
IE7〜IE11
Edge
FireFox(一部機能を除く)
Safari(一部機能を除く)
Opera
Chrome

サイトパーソナライザ(ウェブ接客)の動作保証ブラウザ
IE8〜IE11
Edge
FireFox
Safari
Opera
Chrome

サイトパーソナライザはスマートフォン向けの for スマホサービスもあるので、iPhone Safari と、Chrome 、Android Chrome 等も動作保証しています。

つまり機能アップデートの度に、上記ブラウザをすべて検証しているのです。
※もちろん全部の機能の再検証はできないので、アップデート機能に関連する周辺機能を中心に検証します。

IE8以下向けに気をつけているもの(一部)

IE8 以下には、下記のアレがありません。
console オブジェクト
getElementsByClassName 関数

一部サービスには console.log に処理結果を出力しているものもあるので、IE8 ではこの処理が行われないようにしておかなくてはなりません。

それから FireFox は関数を定義する前にその関数を呼び出すことはできません。(スクリプト言語なら普通だと思うけど、Chrome とかはよしなにしちゃうんですよね・・・)

この辺の記述の順序も、ブラウザごとに厳密に検査しなければならないので、チェックポイントは結構多いです。

で、不具合・バグの内容を一部だけご紹介。

※以下は当社から告知した内容の一部です。

「機能の一部が動作しない事象について。」

この原因はとっても単純で、本番環境にアップされるべきファイルの一部がアップされていなかった(結構ざっくり書いてます)というとっても基本的な作業ミスです。

原因はいろいろあって

1.本番に切り替えるディレクトリ構造がやや複雑だった
2.作業手順書が作成されていなかった
3.本番切替後の動作検証範囲から該当箇所が漏れていた

などなど、結構お粗末ですね・・・こんなのブログで書いていいんだろうか。

その他ありがちな障害

上記の不具合・バグを受けて、再発防止策が検討され、今ではダブル・チェックはもちろんのこと、作業手順書の作成ならびにレビューによる第 3 者チェックなど、チェックポイントを増やしました。その体制構築するの遅くない?と言われそうですが、しょうがない。

だって前だけ向いて走ってきたのだもの。(深く反省)

とはいえ、結局人間がチェックするので、みんなの頭の中から漏れちゃうとどうしようもないんですが、社内的にはどんどん自動化を進め、不具合のない商品を目指して頑張っています!

これからも応援よろしくお願いします。

コメント