[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> No.180 テストデータの作り方、テスト仕様書

テストデータの作り方、テスト仕様書


本文(発行内容)


<テストデータの作り方、テスト仕様書>

どうも、三流プログラマーのKen3です。 今回は、 テストデータの作り方、テスト仕様書についてです。 軽く読み流してね。

/* * 1.今回のキッカケ */

VBA系のメルマガ、少しにぎやかになってきました。 ※が、有料版はさっぱり・・・なんて話はみなさん聞きたいだろうけど、  置いといて。 掲示板やメールで、最近、相談をもらうようになりました。 少しは、質問しやすい空気になってきた?と思いつつ。 で、要望を出す時、テストのデータを付けて期待する結果を書いてくれる人と、 やりたいことだけを書いてヨロシクの人と、いろいろ居ます。 納品物の厚さ稼ぎにも役に立つ、テスト仕様書について書いて見たいと思います。 ※違うでしょ、厚さ稼ぎなんて書いちゃダメですよ。 No.157 聞き易い空気・環境を作る(人気者目指して自己分析?) http://www.ken3.org/backno/backno_guchi31.html#157 質問し易い・しにくい空気について、少し書いてます。暇な時、ヨロシクデス。

/* * 2.テストデータがあるとイメージし易い */

まぁシステムの設計者さん達は、 いろいろな仕様書や依頼書を書いて、 日々、作成者(プログラマー)にイメージを伝えようと努力してます。 Access サブフォームの明細データを検索、メインを移動 http://www.ken3.org/backno/backno_vba22.html#107 でもらった質問なんですが、 メールで下記の質問をもらいました。 ---- >例としまして(本当はもっとドロドロしたデータベースなんですが、 >       違う例えで書いてみました。) > >親フォームが音楽のバンド名が記載されてます。 >サブフォームには、 >そのバンドのメンバーと出身県と楽器と年齢などが記載されています。 > >そこで、親フォームには、そのバンドのメンバーの出身県が出るテキスト >ボックスがあります。 > >例えば・・・バンド名(BOOWY)−−−−−−−−−−親フォーム >      メンバー(氷室、布袋、松井、高橋)−−サブフォーム >      出身県(群馬、群馬、群馬、福島)−−−サブフォーム > >●質問1 > >で、このサブフォームに記載されている、出身県を親のフォームの >任意に作成したテキストボックスの中に「群馬、福島」とだけ表示したいのです。 > >「群馬、群馬、群馬、福島」と表示するのは、ちょっと・・・。 >群馬がだぶっているので、群馬の表示は1つとしたいのです。 > > >●質問2 > >また、沢山のバンドや歌手をこのデータベースに入力します。 >そこで、「布袋」と検索すると、親フォームの「BOOWY」が表示されるようにしたい >のです。 > >まず親フォームのバンド名には >「バンドID」と云う名のフィールド名の主キー(オートナンバー)がありまして > >それをサブフォームの中にもフィールド名で、 同じ「バンドID」という >固有のデータで繋がっているです。 > >こんな説明で分かってもらえるんでしょうか・・・。 >すごく不安です。 ----- こんな感じの実データ付きの説明があると、わかりやすいですよね。 テーブルフォーマットは無かったけど、 2つの親子テーブルが存在して、 バンドIDでつなげた、フォーム・サブフォームが存在する。 そんな、イメージがつかめましたよね。 これが事務的に(SEのオレ様/自称DB設計5年のお偉いさんが清書した仕様書) みたいに、冷たく、テーブルの仕様書だけを渡されて、 親テーブル名:T_バンド名 バンドID オートナンバー バンド名称 テキスト 備考 メモ型 子テーブル名:T_メンバー 個人ID オートナンバー バンドID 長整数型(親テーブルとリンクする) 名前 文字型 楽器 文字型 出身地 文字型 生年月日 日付型 備考 文字型 T_メンバーの名前で検索し、データを移動させる機能をフォームに付ける。 なんて、言われても、?はてな?マークが付いてしまいますよね。 (※まぁ、画面仕様書がたぶんあるので、大丈夫だとは思うけど)

/* * 3.テストデータ作りのセンス */

テストデータ作りって意外と重要だったりします。 チョット前に書いた、メルマガの 都道府県のフィールドを Like "*京都*" を条件に検索、 *京都*と速度気にしないで前後に*を付けたから、 東京都を東(京都)ひがしきょうと(笑)と深夜ラジオのギャグみたいに拾ったんだ。 なんて事故(笑)を事前に防げるし。 三流PG 業務のグチ No.178 *京都*で検索 京都府/東京都を拾うバカ(笑) http://www.ken3.org/backno/backno_guchi35.html#178 詳細は↑を参照。 あとは、テストデータは1件じゃなくて複数件あると、 それだけでイメージや処理方法が沸きやすいし誤解を防げます。 >例えば・・・バンド名(BOOWY)−−−−−−−−−−親フォーム >      メンバー(氷室、布袋、松井、高橋)−−サブフォーム メンバーを検索して、バンド名を拾ってくる。 テストデータが1件だと重複値の落とし穴があったりします。 高橋で検索してBOOWYのバンドIDを返すのは、 'フォームの値を元に検索条件を作成する str検索条件 = "名前 = '" & Me!txt検索 & "'" 'str検索条件を条件にバンドIDをT_メンバーテーブルから検索する str検索されたID = "" & DLookup("バンドID", "T_メンバー", str検索条件) なんて感じで、簡単に作ったけど、 ほかにも高橋ってメンバーが在籍するバンドが存在したら? どうなるんだろう? と 作成後に気が付いたりして。 ~~~~~~~~~~~~~~~~~~~~~~~~~~ これが、テストデータで、 バンド名(BOOWY)−−−−−−−−−−親フォーム メンバー(氷室、布袋、松井、高橋)−−サブフォーム だけじゃなくて、 下記、読者とのメール(笑)から勝手に引用(また怒られるぞ・・・) ---- >>>私は高橋愛も分からなかったですから・・。(自爆) >>でも、新人はよくわからないし、何人居るの? >    ↑ >モーニング娘の人数調べてみました。(笑) >飯田圭織・安倍なつみ・矢口真里・石川梨華・吉沢ひとみ・辻希美・加護亜依 >高橋愛・紺野あさ美・小川麻琴・新垣理沙・藤本美貴 >亀井絵里・道重さゆみ・田中れいな ← この3人が6期メンバーらしいです。 >総勢15名・・。 >おそるべし、もー娘・・。 >師匠は何名ぐらい顔わかりますか・・?(笑) ---- なんて、モーニング娘わからなくなったおっさんトークをチョット前してたけど、 そんな話は置いといて。 違う高橋さんが子テーブルに存在するってことがテストデータで出てれば、 ~~~~~~~~~~~~~~ ・検索で複数該当するデータも考慮しなきゃ?   と作成するプログラマーへの注意を促す。 ・完全一致の氏名高橋愛だけ考慮かそれとも一部一致の*高橋*の複数もありか?   検索条件の入力方法を客先に確認してよ先輩・・・   なんて言われないで話や作業が進むよキット。 ※重複有り無しはテーブル仕様書に書いてある、  なんて逆切れする先輩は要注意ですね・・・・ テストデータ作りのセンスが良いプログラマーは、エラー率が少なかったりします。 自分に都合の良いデータしかテストできないプログラマーは、 そんなの聞いてないよ・・・とモメルシネ。

/* * 4.テスト仕様書いろいろ */

AAAAAとデータを入力するとBBBBBと結果が得られる。 CCCCCとデータを入力するとエラーが発生する(エラー画面へ遷移) など、 テストデータと得られる期待する結果(正常/異常)を書き、 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ こんなデータを使用して、このシステムのテストを行いました。 なんてのが、テスト仕様書の基本なんだけど。 プログラム作成後、テスト仕様書を作って、テスト。 意外と落とし穴があって、プログラムにあわせたテストデータを作成したり、 プログラマー自身が自分がテストで使用したデータ、 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 動作するのが当たり前のデータを使っていたり(笑) なんて話もアリだし、 意味無い厚さ稼ぎのチャントテストしてますよ私は・・・ 的な仕様書も必要なんですが、 テーブル仕様書・画面仕様書・テストデータ仕様書がそろっていると、 バグの発生や勘違いの処理、足りない処理が防げたりすると思います。 なんて偉そうに書いてるけど、 テスト仕様書を先に作ったこと、私はありません(自慢するなって?)

/* * 5.終わりの挨拶 */

今回は、テストデータのお話でした。 勘違いや危なそうな処理は、 テストデータを付けて、期待する動作を書くと、 そんなモメゴト、やり取りを回避できると思います。 ※些細な戦いが積み重なると大きな溝になったりするし・・・・  初めから溝を埋めたり、テストデータの架け橋を初めから用意したり。 関数仕様書の話 http://www.ken3.org/vba/doc_unit.html で、 モジュールのテストを兼ねた 上位の・テストルーチンを付けて渡すと、理解がハヤマルよ なんて書いてましたが、 それ+、複雑な処理は、はじめにテストデータを用意すると、 スムーズに作業が進むと思います。 えっ、そんなに詳しく各仕様書をコーディング前の開発時に用意できないって? ワープロ打つのが大変なんだって? まぁまぁ、そんなこと言わないで、 アナタはお偉い設計者様/自称スーパーSE様なんだから、 出来の悪いレベルの低いプログラマーさん達に オレ様の完璧な仕様書通りに作ってよお願いだから ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ なんて文句を言わないで、ラフでもいいから ・テスト用の上位ルーチン、接続用のテストルーチン ・流すデータ、テストデータと期待する結果 この2点を渡すだけでバグの発生率が違うと思いますよ。 ※そこまでやるなら自分で作るって? サスガ自称スーパーSEの皆様、がんばって一人で徹夜してね。  (ある意味、一人で作っちゃうから/できちゃうから彼らはスゴイんだけど・・・   意思の疎通なんて無視、自分でドリブル突破パスなんてしない、   そんなすごい人が居るのも事実な世界なんだけど・・・) お偉いシステム設計者がプログラマーへ依頼で話したけど、 何も知らない発注元の神様・夢のシステムを語るお客様 と 要望をなんとか聞き出しシステム化しなければならない設計者、 そんな場合も、テストデータじゃないけど、 流れる実データを把握することがまず大事だと思います。 ふざけて書いている部分もあるので、参考程度に。 (何も出来ない、何年経っても使えない手がかかる、  自分で作ったほうがホントにハヤイ、使えないプログラマーが居るのも事実だし、  逆に設計者の見落とし、ミスを温かくフォローしてくれる  人間ができてるプログラマーさん達も多数居るし  ※↑私が後輩プログラマーに助けられてた実例かなぁ、   よく、あんなカス設計書で作ってもらってた、迷惑かけてたなぁとフト思うよね) 何か読者の心に残れば、うれしいです。 *私の独り言をうまく消化してくださいね。 いつも失敗?のKen3でした。 ~~~~~~~(↑オイオイ)


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

リンクや広告など

項目別に本音?それとも建て前?的な記事をまとめました。

気になったジャンル↓を選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂

[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]



[三流君(TOP ken3.org へ戻る)] / [プログラマー業務の愚痴] / [バックナンバー 一覧]