開発の初めから順番に書いていってみる その83:単体テスト(8)バグ修正概要
シリーズ「開発の初めから順番に書いていってみる」の続きです。
設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
(バックナンバーは、ここ http://www.geocities.jp/xmldtp/index_kaihatsu.htm)。
前回で、ここの順番で言う「4.実際にテストする」が終わりましたので、今回は次の、「バグ修正して再テスト」です。
■バグ修正の一般的な流れ
テストで障害が起きたり、なんらかのはずみでバグを見つけてしまった場合は、イカのような形で、バグ修正するのが、一般的だと思います。
1.バグ発生内容を特定し、エビデンスをとる(とれたら)
2.バグ票に記入
3.台帳に登録、担当者にバグ票を送付
4.担当者がバグ修正
・バグの原因特定
・修正
・確認テスト
5.担当者がバグ票の障害修正欄などいろいろ記入する
6.バグ発見者にバグ票が戻ってくるので、確認
→OKなら、7へ、NGなら、4へ
7.修正確認をバグ票と台帳に記入、バグ票は保管
8.デグレードしていないかのリグレッションテスト
ということで、ここでの成果物&入出力は
・バグ票(+添付資料のエビデンスなど)
・バグ管理台帳
ということになります。
■バグ票、管理台帳と、バグトラッキングシステム(BTS)
で、バグ票、管理台帳ですが、紙でやる場合は、こんなかんじですが(まあ、これを、特に管理台帳をExcelやAccessなどでやるという話はありますが、それもふくめて)、このようなバグ票、管理台帳を電子化したものが、バグ管理システム(=バグトラッキングシステム、BTS)となります。
■リグレッションテスト、回帰テスト
で、バグ修正したときに、修正箇所はなおしたんだけど、今度は他のところに(今までちゃんと動いていたところに)バグを入れてしまうということがありえます。これをデグレードといい、これを防ぐため、すでに行ったテスト項目を、再度確認することをリグレッションテスト(あるいは回帰テスト)といいます。
これは、2度手間、3度手間・・になるので、いかに自動化して、品質をおとさずテストするかというのが、鍵になります。
■横並びチェック
あるバグがあったとき、同じモジュールを通るところは、同じようなバグがでるはずです。そして、そのモジュールを直せば、同じようなバグも修正されるはずです。
また、同じモジュールではないけど、同じようなコーディングをしているときも、同じようなバグがでるはずです。そういうところは、そのようなコーディングしてるところ全部を直して、修正しなきゃいけません。
このように、あるバグに対し、同じ原因によって、似たようなバグが出ている、出る可能性がある場合、修正して、その似たようなバグが出ているところも、直っているかどうか確認(チェック)する必要があります。
これが、横並びチェックです。
横並びチェック項目に対し、あらたにバグ票を発行するか、同じバグ票でやるか、同じバグ票に横並びチェック項目を入れるかは、プロジェクトによって違います。
ということで、バグの概要は書いたので、次回からは、個別にいくつかのテーマを詳しく書いてみたいと思います。