記事を紹介
No204.不具合の連絡を受け バグ票の作成とテスト仕様書について
こんにちは、久しぶりの発行です。
純粋でキラキラした目を失った、
腹黒プログラマーじゃなかった、三流プログラマーの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.むかしのキラキラした目を取り戻したいけど・・・ムリだろうなぁ。
|
メルマガ、バックナンバー5話単位
下記、過去に発行したメルマガを5話単位でまとめてます。
[39]
[38]
[37]
[36]
[35]
[34]
[33]
[32]
[31]
[30]
[29]
[28]
[27]
[26]
[25]
[24]
[23]
[22]
[21]
[20]
[19]
[18]
[17]
[16]
[15]
[14]
[13]
[12]
[11]
[10]
[09]
[08]
[07]
[06]
[05]
[04]
[03]
[02]
[01]
※5〜10回に1回は当たりが在ると言われてます、
当たりの数少ないメルマガ(マネシチャダメな反面教師ネタ)を探してみてね(笑)
種類別のサービス紹介ページ
[在宅プログラマー/SOHO]
[プログラマー転職/派遣/就職]
|