フォーマットを整えてませんが、サンプルの仕様書は:[IE_SRC0307.zip]←今回作ったサンプルの IE_SRC0307.xls です。
サンプル作成履歴は→[IEソース表示サンプル]です。
1画面の処理なので、あまり参考となりませんが↑もあわせて見てください
<不具合の連絡を受け バグ票の作成とテスト仕様書について> こんにちは、久しぶりの発行です。 純粋でキラキラした目を失った、 腹黒プログラマーじゃなかった、三流プログラマーのKen3です。 今日は、不具合の連絡、バグ票について書きたいと思います。/* * 1.今回のキッカケ */
ASPのサンプル SQL INSERT INTO文を使用する http://www.ken3.org/cgi-bin/test/test027-2.asp ↑ここにバグの書き込みを貰いました。 >6266 これだと ’(シングルクォート)が入らないよ〜 2009/02/14 19:52:58 と、連絡を受けました。/* * 2.バグ・不具合の確認 */
連絡を受けたので、 SQL INSERT INTO文を使用する http://www.ken3.org/cgi-bin/test/test027-2.asp に飛び、 ’(シングルクォート) を入れて、不具合を再現してみます。 ※よく、客先ではダメで自社のPCだとOKなんて環境問題もあったりするけど、 まぁ、こんかいは、稼働中のサイトだから、確実に再現すると思います。 B'z と入力して、SQL発行ボタンを押すと、 Microsoft JET Database Engine エラー '80040e14' クエリ式 ''B'z', #2009/02/26 2:29:07#)' の 構文エラー : 演算子がありません。 /cgi-bin/test/test027-2.asp, 行 86 あらら、やっぱり・・・/* * 3.バグ票 連絡票の作成 */
内容を確認したら、システム担当者宛のバグ票 バグの連絡票を作ります。 海よりも深く、山よりも高い、プログラマーのプライドを傷つけないように バグの内容を知らせ、修正・対応して貰うため ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ と 今後、同じミスをしないように対策をたてるため の 記録かな ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ※ボーナス査定に利用する手もあるけど、あまりやるとバグ票書かないで、 勝手に直し、今後の対策 や まわりの財産にならないので・・・ ※※バグは無いほうがいいけど、バグ対応もシステム屋の財産です(ホントか?オイ!) 下記のような項目を作りました。※過不足あるのでアレンジしてね。 システム名 ASPのサンプル 発生場所 データ追加処理 http://www.ken3.org/cgi-bin/test/test027-2.asp 通報元・内容 発見者 親切な読者様 連絡先 不明 不具合・バグの内容 メモの入力時 ’(シングルクォート)が入らない 再現性 あり・必ず ↑にバグ・不具合の内容と再現性があるか、時々発生していて原因が不明か、を書く 確認 確認した日 2009/02/25 確認者 システム3課 三流君 本人 確認状況 再現しました。 確認方法 本番稼働マシーンで B'z と データを入力し、下記のエラーを確認 Microsoft JET Database Engine エラー '80040e14' クエリ式 ''B'z', #2009/02/26 2:29:07#)' の 構文エラー : 演算子がありません。 /cgi-bin/test/test027-2.asp, 行 86 修正・処置内容 ミスの原因 と 今後の対策/* * 4.担当者にバグ票を渡し、処置・対策を施す */
バグ票の前半が書けたら、担当者に渡し、 プログラム修正に取り掛かります。 この時に、テスト仕様書の修正と追加を行い バグ票と渡す といいのかも。 ※連絡を受けた不具合データをテスト仕様書で記載する・使う (あたりまえか) ※※タイミングは、プログラム修正時のテスト時でもいいけど 修正・処置内容 ^^^^^^^^^^^^^^ 原因 strMEMO が B'z と データを入力すると strSQL = strSQL & ",'" & strMEMO & "'" 'メモ ここで、 'B'z' と なり、文字列の判断がDB側でつかなくなり、 Microsoft JET Database Engine エラー '80040e14' クエリ式 ''B'z', #2009/02/26 2:29:07#)' の 構文エラー : 演算子がありませのエラーが必ず発生する。 処置 DBへ’’2つを渡すと、シングルコーテーション1つと解釈してくれるので、 '2009/02/25 シングルコーテーション対策で、 ’’と2つ重ねる。 strMEMO = Replace(strMEMO, "'", "''") 'シングルコーテーション2個に置換 上記、Replace文でシングルコーテーションを2個に置換 対応しました。 テスト仕様書に下記の項目を追加しテストを行いました メモに B'z と シングルコーテーションを入れる B'z と メモ欄に登録される メモ欄に A'' とシングルコーテーション2つを入れる a''とメモ欄に登録される/* * 5.処置内容 と ミスの原因から範囲を推測する。 */
賢明な読者の人なら、気が付いたと思うけど、 ミスの原因が >'B'z' と なり、文字列の判断がDB側でつかなく なら、 メモ だけじゃなくて、タイトルの項目も?じゃないの? タイトルに B'z と 入れて 実行してみな Microsoft JET Database Engine エラー '80040e14' クエリ式 ''B'z','好きな文字を入れてください', #2009/02/26 3:56:55#)' の 構文エラー : 演算子がありません。 /cgi-bin/test/test027-2.asp, 行 89 ほら、全ての項目でしょ、修正しないといけないのは??? ギクッ ですよねぇ〜 '2009/02/25 シングルコーテーション対策で、 ’’と2つ重ねる。 strMEMO = Replace(strMEMO, "'", "''") 'シングルコーテーション2個に置換 strTITLE = Replace(strTITLE, "'", "''") 'シングルコーテーション2個に置換 と、2つの項目を修正しました。 また、テスト仕様書で共通項目として、 ・テストデータのテキストには ' や " , . &%$#!=~| などを含める ・テキスト入力の全ての項目でチェックする。 と、社内全体、グループ全体で情報を共有できるように。。。なるといいね。/* * 6.終わりの挨拶 */
バグ票が貯まれば、(おぃおぃ貯めるなよ) 同時に処置、修正方法も貯まり、 同様のバグを出した時、過去のバグ票を探すと対策が早いです。 じゃないでしょ、 バグ票を書いたら、ミスを共有して、同じミスを犯さない。 今後のテスト項目に 過去のミス事例を追加し、ミスを事前に防ぐ。。。 まぁ、なかなか、 海よりも深く、山よりも高い プライドを持った人達が、 自分のミスのデータを提供するとは思えないよ なんて、言わないで、 社内で バグ票の作成 と 共通テスト項目の作成、この2つをやってみては? えっ、ぜひ、三流君のバグ票が見たいって? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ う〜ん、持ち帰って検討しておきます。 と システム屋の便利な言葉 [ 持ち帰って検討 ] ^^^^^^^^^^^^^^ で逃げるように今日もサヨナラです。 三流プログラマーKen3でした。 PS.むかしのキラキラした目を取り戻したいけど・・・ムリだろうなぁ。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
項目別に本音?それとも建て前?的な記事をまとめました。
気になったジャンル↓を選択してください。 |
Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]