バグ修正と予防のポイント【後編】
“バグゼロ”を目指す開発戦略 予防のためのベストプラクティス10選
開発チームがバグ修正に追われる日々から脱却するには、バグの発生を未然に防ぐ取り組みが不可欠だ。開発プロセス全体にわたってバグの発生要因を断つ10個の予防策を解説する。
アプリケーション開発にバグ(不具合)は付き物だ。どれほど慎重に開発を進めても、予期しないバグは現れる。本番環境で予期しないバグが発生すると、開発チームは修正のための緊急体制に入らざるを得なくなる。
プロジェクトの遅延や手戻りの原因になり得るバグの発生自体を予防することは、アプリケーションの品質を高める上で不可欠な視点だ。「バグ予防」に焦点を当て、開発プロセスの初期段階から品質管理を組み込むための10個のベストプラクティスを紹介する。
バグの予防に役立つ10個のベストプラクティス
併せて読みたいお薦め記事
連載:バグ修正と予防のポイント
問題の特定と修復のヒント
バグ報告が寄せられたときの流れを考えてみよう。重大なバグの報告が管理職に届き、その後開発チームのメンバー全員に共有される。なぜテストで検証できなかったのかという議論が起こり、早急に修正するためメンバーが割り当てられる。
複数の開発者が関わっている場合、ソースコードにバグは生じやすいものだ。アプリケーションの複雑さもバグの要因になり得る。データをデータベースに保存したり、API(アプリケーションプログラミングインタフェース)に転送したりするなど、さまざまなコンポーネント(部品)と連携する複雑なアプリケーションは、それぞれの接点でバグが発生する可能性がある。
エンドユーザーにバグの影響が及ぶのを防ぐには、入念な計画、開発チームの良好なコミュニケーションと協力体制が不可欠だ。バグを予防するための手順を以下に挙げる。
1.エンドユーザーがバグを報告した場合の対処計画を策定する
本番環境でバグが発生すると、進行中の開発作業を中断せざるを得なくなり、イテレーション(短期間で繰り返す開発サイクル)のスケジュールがずれる恐れがある。バグ修正とテストによる開発作業の中断は、本来の開発プロジェクトを遅延させてしまう。バグが報告された場合の対処計画を策定しておくことで、無用な混乱を避けることが可能だ。
2.コーディング規約を策定する
開発チームは、ソースコードの記述、ビルド(実行可能ファイルの生成)、デプロイ(展開)、テストに関する一連のルールやガイドラインをコーディング規約として策定すべきだ。規約があればバグの修正が容易になる。単純なチェックリストから、コメントとサンプルコードを含む詳細なものまで、チームや企業、採用する開発手法によってさまざまな形態のコーディング規約が存在する。体系的で一貫性のある開発手法を適用すれば、開発の初期段階からソースコードの品質を確保しやすくなる。
3.単体テストにテスト用プログラムを含める
単体テスト(プログラムの最小単位である機能の動作テスト)や結合テスト(複数の機能やコンポーネントを組み合わせたときの動作テスト)を自動化するためのテスト用プログラムを作成することは、テストの精度向上と省力化に貢献する。ビルド前にテストを実施することは、早期のバグ特定に役立つ。
4.開発の初期段階から品質管理を組み込む
ソースコードの品質確保を開発の初期段階から組み込み、戦略と計画に基づいて継続的にテストを実行するとよい。
5.開発者間で相互にコードレビューを実施する
コードレビューはバグを早期に発見、修正することに有用だ。後から追跡管理するよりも時間と作業量を削減できる見込みがある。
6.ビルド前に全てのソースコードをテストする
アプリケーションのテストが品質保証(QA)チームの手に渡る前に、開発チームがソースコードのテストとバグ修正を実施することが重要だ。
7.テストで自動化機能を活用する
開発チームは、単体テストと結合テストを含む自動テストを細かく実行する計画を立てる。AI(人工知能)技術を組み込んだ一部のテストツールは、テストの自動化機能を提供している。QAテスターに自動テストの作成と管理方法を覚えてもらえば、開発チームの作業負荷が減り、QAテスターのスキル向上にもつながる。
8.エンドユーザーが報告した全てのバグに対してテストケースを作成し、定期的に検証する
QAチームは、本番環境で発生した全てのバグを網羅するテストケースを作成する。作成されたテストケースは、本番環境に実行可能ファイルを投入する前の(基本動作確認テスト)と回帰テスト(変更による影響を確認するためのテスト)に含めるようにする。
9.バグの発生履歴や修正履歴を文書化する
バグ追跡ツールを使用し、全てのバグやその修正履歴を特定して文書化しよう。バグの履歴を分析すれば、発生しやすい箇所と修正方法についての気付きを得られる可能性がある。
10.バグとその原因についてチーム内で議論し、そこから学ぶ
定例会中に、本番環境で発生した全てのバグとその根本的な原因、修正方法について話し合うことを開発チームの習慣にする。エンドユーザーにバグの影響が及ぶことを防ぎ、開発チームが緊急事態に陥ることを避ける重要性について、チームメンバー全員が理解することが重要だ。チームのコミュニケーションと協業を促進することも欠かせない。開発者とテスターのスキルを最新の状態に保ち、ソフトウェア開発ライフサイクル全体を通じて効果的なテストを実施するのに役立つツールを導入する。
TechTarget発 エンジニア虎の巻
米国Informa TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[LRM株式会社] 「標的型攻撃メール」事例・サンプル集 -
製品資料
[LRM株式会社] セキュリティ教育はなぜ「年間計画」を立てる必要があるのか? -
製品資料
[LRM株式会社] セキュリティの重要性が伝わらない…… 効果がない社員教育から脱却する方法 -
製品資料
[LRM株式会社] 「標的型攻撃メール訓練」導入ガイド 社員の意識を確実に高める仕組みの作り方 -
事例
[株式会社マクニカ] アイカ工業に学ぶ脆弱性対策 情シスが把握できずにいたアセットも正確に把握
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「VMware離れ」は本当か 3000社がVCF 9にかじを切った現実的な理由
-
2
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
3
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
4
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
5
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
6
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
7
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
-
8
AI基盤は本当に「オンプレ回帰」する? Broadcomの言い分と企業の本音
-
9
AI全部入り「Microsoft 365 E7」に企業が二の足を踏む訳 移行意向はわずか4%
-
10
エンジニアが選考を辞退する本当の理由 7割が隠す“面接の違和感”とは
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
3
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
7
PostgreSQLの「機能」「性能」「運用」「拡張性」に関する悩みの解消法
-
8
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
9
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー