ソフトウェア技術者のためのバグ百科事典(4)Excelがバグの原因に!?:山浦恒央の“くみこみ”な話(125)(1/3 ページ)
ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第4回は、前回に続き「データ入力ミスのバグ」について解説します。Excelのように日頃使う開発ツールもバグの原因になり得るのです。
1.はじめに
「バグ百科事典」では、筆者が気になったバグを紹介し、読者の「バグの早期発見」と「バグの未然防止」に役立てていただくものです。今回も、前回に続きデータのバグを紹介します。本コラムをきっかけに、より良いソフト開発につながればと思います。
2.データのバグ
プログラムは、制御構造部とデータ部で成り立っており、どちらも正確にプログラミングする必要があります。データのバグは、GUIからの入力、ハードコード、外部入力ファイルなどの設定値を間違えた時に発生します。このバグは、プログラムの制御構造は正しいことから重大でないように見えますが、入力ミスにより、プログラムが正常動作しません。
3.エンジニアが使用する開発ツール
ソフト開発には、さまざまなツールを駆使します。例えば、顧客との情報共有はメーラーを使いますし、文書作成にはWordやExcelを使いますね。
今回のテーマは、日頃使う開発ツールに着目したバグの話です。以下、エンジニアが使用するツールをまとめます。
3.1 文書作成ツール
他業種から見たプログラマーのイメージは、「PCの前でソースコードを打ち込んでいる」でしょう。プログラムは、英語と数学が混じっており、難解なことしているように見えますが、作業の大半はソースコードを作るための下準備(文書作成など)です。
文書作成で最も使用頻度が高いツールが、マイクロソフトのWordとExcelでしょう。Wordは仕様書の記述、Excelはデータ設計やテスト項目作成で使用します。
3.2 プログラミングで使用するツール
プログラム開発では、最低限、テキストエディタやコンパイラは必須です。また、組織によってはバージョン管理ツール(GitやSubvresion)やプログラム解析ツール(FindBugsやValgrind)などを使います。
バージョン管理ツールとは、ソースコードの変更差分を管理するものです。これによって、日々の差分情報を保持したり、昔のバージョンに戻って開発し直したりすることができます。
プログラム解析ツールとは、バグとなりそうな箇所の指摘や、実行時間を計測するものです。FindBugsは、javaコードのバグを解析するツールで、Valgrindは、C言語のプログラムを解析し、メモリリークなどを発見できます。
3.3 プロジェクト管理系ツール
プロジェクトを成功させるには、顧客や開発チーム内で密接なコミュニケーションを取る必要があります。顧客と連絡を取る場合には、メールが多いでしょう。メールでは、マイクロソフトのOutlookをよく使うようです。他にも、開発チーム内のタスクを管理するツール(Microsoft Project、Redmine、Trello)やチャットツールのSlack、Lineなどもあります。
Microsoft Projectはマイクロソフトのプロジェクト管理ツール、Redmineはオープンソースのプロジェクト管理ツール、Trelloはシンプルなプロジェクト管理ツール、Slackはエンジニア用のチャットツール、Lineは通話やチャットを使えるツールで多くのスマートフォンユーザーが使っています。
上記の通り、ソフトウェア開発ではさまざまなツールを使います。どんな開発組織でも、少なくともメーラー、Word、Excel、テキストエディタ、コンパイラは、最低限使用しているはずです。ソフトウェアを正しく作るためには、プログラムを正確に作ることも重要ですが、ツールをよく知らないために発生するバグも少なくありません。
そこで今回は、筆者が開発ツールの仕様を知らなかったために発生したバグを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.