skillup

技術ブログ

プログラミング全般

ミスを少なくする工夫について

投稿日:2016年6月2日 更新日:

プログラマであればだれもが「いかにバグを少なくするか」に腐心すると思います。

ところが、人間がある以上、バグ(ミス)は絶対にゼロにはなりません。バグ云々以前に、「人間はもともとミスをする生き物だ」という前提で取り組むことが大切でしょう。

そこには「エラーをおこさないようにする」「テストをしっかり行う」は対策とは言えません。ミスとは人間が認知できないものなので、それを認知しようとする試みは無意味だと思います。※超音波を聞き取ろうとするような試みだと思います。

自分用ですが「ミスを少なくするような科学的な取り組み」を考えたいと思います。

自分のミスの起こりやすいパターンを記録する

人間の未来を最も確実に予測できるのは、いままでに起こったことです。ですので「自分の起こしやすいミス」も「過去に起こったミス」です。これを記録しておき、のちの後述するチェックリストに活かすことが大事になってきます。

チェックリストを使う

自分のミスのパターンやプログラミングをする上でのするべきタスクやチェック事項をリスト化しておき、紙に書いておく。

フローを書き出す

プログラミングの流れを整理するために大切だと思います。特に複雑な画面遷移が絡んでくるとどこがどう動いて連動しているかがわからなくなります。以前複雑な画面でこれを行ったら見通しが一気にわかりやすくなりました。ドキュメントのようなものではなく、メモ程度でも書いておくと全く違うので、なるべくこれを書く。

日を置いて確かめる

文章を作るときに、日をおいて確認するとミスを発見しやすいですが、同じようにプログラムも日を置いて、テストすると頭を冷やした状態で確認できますので、1日でも日を置くとよいでしょう。

コードの勉強をする

バグが生まれやすい場合、バグを起こしやすいようなコードを書いていることがあります。バグを起こしにくいコードを読んだり、正しいコードの本を読むようにしましょう。

画面のチェックは紙に印刷する

帳票や画面などは紙に印刷して、正しいかどうかをチェックしましょう。ディスプレイで目だけだとどうしても見落としが生まれます。

小さい単位で確認する

複雑なプログラムの場合、どうしても処理が長くなります。小さい単位に分割して、確認しやすくしましょう。また日常でおこなう作業もできるだけ小さく分割すると行動がしやすくなります。

テストツールを導入する

テストコードを書いたり画面テストを取り入れてみましょう。ただし完ぺきにやろうとすると、労力がかかりすぎ、本末転倒になります。部分的に、できるところから、本末転倒にならないように行うことが大切です。

システム的なチェックを行う

以前いた学習塾で請求書の金額を確認するときに、2人で取り組み、片方がコンピューターの金額を、もう一人がそれを聞いて明細の金額が正しいかをチェックする、ということを行っておりました。このような確認方法だとエラーが起こりにくくなります。

気を付ける、のではなくてこのようなシステム的なチェックを行うことが大切だと思います。

上記の中で実行しやすいものを選び、改善状態を記録する

上記を全てやろうとすると機能不全を起こしたり、労力がかかりすぎます。できそうなものから少しずつやり、その改善状態を記録していき、習慣にしていくことが大切です。

-プログラミング全般
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

フレームワーク作成時の注意ポイント

以前も多分書いていますが、フレームワーク作成時のポイントなどを列挙。 次元が違うものも多々含まれているかも。 ルーティング機能 基本設定情報の読み込み キャッシュ機能 データベース Form情報の管理 …

no image

テスト項目の作り方(縦項目について)

テスト項目の作り方について。 単体テスト書のレビューをしていて、なるべく効率的に網羅的にできるテスト仕様書の作成について。 納品物としてではなく、開発の高速化と品質をあげるためのテスト仕様書を。 Co …

no image

DIが役に立つ場面はやはりテスト

システム開発において、密結合とか疎結合なんて言葉が使われたりします。 密結合・・システム間の構成要素の関連性が高く、結びつきが密なこと 疎結合・・システム間の構成要素の関連性が弱く、結びつきが疎なこと …

no image

便利すぎる道具の弊害

現在、Javaのプロジェクトでは会社でNetbeansを使っていますが、IDEを使っているばっかりに理解できていないところがありました。便利すぎる道具の弊害ですね・・・ IDEについて一応説明をしてお …

no image

Excelでのテストデータ作り

ExcelVBAでテストデータを作るときに役に立った関数などを紹介させていただきます。 user_id time 2143 2017/1/16 3:35 6724 2017/1/2 6:05 4528 …

アーカイブ