どんなプロジェクトでも発生し、誰もが1度はハマる(原因究明や解決に手間取る)バグというものがあります。その中でも、Webシステムの開発で見逃しやすいバグを中心に列挙し、解説と対処法の紹介を試みたのが本書です。
筆者の我々自身、Webシステムの開発を始めて数年、いくつものバグにハマってきました。中でもWebシステムを構成する技術の「妙な仕様」に起因するバグがやっかいで、「はじめからこれを知っていれば、何時間も悩まずに済んだのに」と思うことが多々ありました。
その手の情報は現場で共有し、予防をしないと、新人プログラマも同じバグにつまずくことになります。対処するには、バグを誘発する技術背景についての理解が必要であり、見逃さないためには、単純なテスト理論だけでなくWebシステムならではの技法が必要です。
そこで、ハマる前のまとまった情報提供を目的として、本書を執筆しました。本書は設計手法や最新技術とは縁遠い本ではありますが、「バグのあるあるネタ」を楽しんでもらいつつ、新人プログラマのWeb技術の理解を助け、中堅プログラマの品質管理のヒントとなれたら幸いです。 (「はじめに」より抜粋)
序章 本書の読み方
Webシステムのバグ
Webシステムと本書の構成
PHP/JSPの基本構文
本書を読む上での注意点
Bug No.000 普通のバグ「不等号の記述ミス」
第1章 ブラウザとHTML
Bug No.001 テーブル上部の謎のスペース
Bug No.002 IEだけそろってくれない表示幅
Bug No.003 長文が送信できない問い合わせフォーム
Bug No.004 入力値の後半が消えるテキストボックス
Bug No.005 改行がどんどん増えるテキストエリア
Bug No.006 オフにできないチェックボックス
Bug No.007 [Enter]キーでの送信は更新されない更新画面
Bug No.008 外部JavaScriptファイルの修正が反映されない現象
Bug No.009 URLとファイルパスのバグ
第2章 JavaScriptと入力チェック
Bug No.010 表示データが1件のときだけ誤動作する必須チェック
Bug No.011 JavaScriptのグローバル変数汚染
Bug No.012 全角文字が素通りする半角英数字チェック
詳細解説 正規表現の利用例
Bug No.013 標準関数を使った数値チェックのバグ
Bug No.014 合計金額を再計算してくれない注文画面
詳細解説 Webシステムの入力チェック
第3章 PHP
Bug No.015 正しくないパスワードでログインできる認証処理
詳細解説 PHPでの比較の注意
Bug No.016 ログインIDもパスワードもなしでログインできる認証処理
第4章 Java
Bug No.017 他人の個人情報が見える会員情報画面
Bug No.018 日付のフォーマット処理でたまに発生する例外
詳細解説 サーバサイドJavaで書いてはいけない変数
Bug No.019 JSPを元に戻したのに画面が元に戻らない
Bug No.020 22億円の売上目標が達成できない財務システム
詳細解説 Javaの金額計算にはどの型を使うべきか
詳細解説 バグコード自動検出ツールFindBugs
第5章 データベースとSQL
Bug No.021 受注データが表示されなくなったバグ
Column:筆者の経験談 INのリストの上限超えバグ
Bug No.022 「_」が検索できないメールアドレス検索
Bug No.023 本日の売上が検索できない売上実績一覧画面
Bug No.024 時分秒が欠落するバグ(Oracle-JDBCドライバ)
詳細解説 日付と時刻のバグいろいろ
Column:筆者の経験談 飛行機墜落?ミサイル誤射?2000年問題の脅威
Bug No.025 予想外に遅い頭文字検索画面
詳細解説 SQLチューニングはじめの1歩
Bug No.026 楽観的ロックでの初期化漏れバグ
Bug No.027 300回表示するとシステムがダウンする検索画面
詳細解説 リソースリークの検出方法
Column:筆者の経験談 リソースリークの犯人は・・・
第6章 セキュリティ対策
Bug No.028 SQLインジェクション対策ミス!書き込みがすべて消えた掲示板
Bug No.029 スクリプトインジェクション攻撃によるなりすまし被害
Bug No.030 クロスサイトリクエストフォージェリ攻撃による強制投稿
詳細解説 Webシステムのセキュリティ対策
第7章 文字化けと文字コード
Bug No.031 metaタグを書いても文字化けが直らない
Bug No.032 新サーバで文字が化けたり「~」が逆になったり
詳細解説 文字コードと文字化け
Bug No.033 ダウンロードCSVの謎の点「・」
詳細解説 ファイルダウンロード機能の注意点
終章 バグにハマらないために
没バグ集
汎用的なバグの予防方法
本書のまとめ(最後に)
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
Alpha さん
2010-05-16
一年目のプログラマーは必ず読んでおいた方が良いと思う。また、設計のみを請け負い、直接製造を行わない人も読まなければならない一冊だと思う。