- ベストアンサー
テストデータの作成
課題でDBへアクセスできるjavaプログラムを作成したのですが、提出の際、テストデータをもってくるように言われたのですが・・・テストデータの作り方がわかりません。 どなたか教えていただけないでしょうか?よろしくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
下のアドバイス、少し訂正。 「totojimaさんが持参したデータを使って、 そのデータをデータベースにロード(格納)して、 totojimaさんが作ったプログラムを テストしましょう」という意味でしょう。
その他の回答 (7)
- chukenkenkou
- ベストアンサー率43% (833/1926)
>テストデータをロードしてプログラムの動作確認が行えれば良いということでした >ので、DBの代わりにテストデータで登録、変更、削除の操作ができれば良いと >いうことたど思います。 そういう意味ではなく、接続先サーバやデータベース名、データなどは本番業務で使用するようなものでなく、「totojimaさんが持参したデータを使ってテストしましょう」という意味でしょう。 実際に接続するサーバ、データベース名などは、作業依頼者に確認することになります。
- chukenkenkou
- ベストアンサー率43% (833/1926)
csvは「カンマ区切りの値」ですから、格納するデータを「,」で区切って入れておきます。主要なRDBMSでは、CSVファイルの各フィールドの値を、表を構成する列の順に対応させて格納してくれます。 insert文などのSQLは、テキストファイルに記述(=スクリプトファイル)しておくのが一般的です。
補足
ありがとうございます。記述(=スクリプトファイル)を元に調べてみます。 テストの内容を聞いてみたのですが テストデータをロードしてプログラムの動作確認が行えれば良いということでしたので、DBの代わりにテストデータで登録、変更、削除の操作ができれば良いということたど思います。 この返事からDBへはアクセスしなくても良いということでしょうか?もし、テストデータをDBの代わりとして使うのならDBへ接続して操作を行う用に作ったプログラムを書き直す必要があるのでしょうか? // btn1(削除ボタン)の設定 btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String s1 = String.valueOf(txt1.getText()); try{ // 接続情報 String drv = "org.postgresql.Driver"; String url = "jdbc:postgresql:postgres"; String usr = "postgres"; // DBへの接続 Class.forName(drv); Connection cn = DriverManager.getConnection(url, usr); Statement st = cn.createStatement(); String qry1 = "DELETE FROM getuji WHERE 年度 = '"+ s1 +"';"; st.executeUpdate( qry1 ); // DB切断 st.close(); cn.close(); } catch(Exception f){f.printStackTrace();} } }); 上記の形ではJDBCを通してpostgreのDBへアクセスし、getujiテーブルの中の条件内を削除する形になりますが、テストデータの内容を削除するのなら //接続情報 はテストデータへ変更しないといけないように思うのですが・・・・ また、CSVファイルにもプログラムからの命令で登録、変更、削除するように記述しないといけないですよね・・・かなりややこしそうです・・・
- chukenkenkou
- ベストアンサー率43% (833/1926)
追記。 メールでやり取りしているなら、 「テストデータの内容ですが、 xxxxx (←これまでのアドバイスを整理して) といった内容(or 理解とか)でいいでしょうか?」 といった確認をメールで行えばいいと思いますよ!
補足
そうですね!思ってたより大分複雑になりそうなのでメール送っておきます! こんなところにまで気を使っていただいて本当にありがとうございます!><
- chukenkenkou
- ベストアンサー率43% (833/1926)
なるほど。 プログラムを作成し、そのデモ(デモンストレーション)をやる訳ですね! 取りあえず、すぐにアドバイスできる範囲で回答します。 >そこにSQLでCOPYをしようとしているのですがエラーが出てうまくいきません。 「エラーが出てうまくいかない」というのは、これからプロを目指そうとしている人が使ってはいけない表現です。 具体的なエラーの内容(メッセージやコード類)を、必ず示してください。 >なんの入力もしていないCSV(テキストファイル)はテストデータにはならないのでしょうか? 「0件データ」など、例外処理のテストとしては成立しますが、それは本来の処理のテストをできた上でのことです。 >INSERTやDELETEなどを入れたボタンがありますので、それを押した時 >エラーなくデータの追加や削除ができているかなどをテストするのだと 「登録」のプログラムだったのでは? 更新や削除もある訳ですか? 今回、課題を出されたのが、「登録、更新、削除もある」という操作の内、「登録」部分ということでしょうかね? >登録内容は20桁までの数字のみ そういうことなら、 (1)1桁の数字 (2)20桁の数字 (3)21桁の数字 (4)数字以外を含む (5)何も入力せず (6)重複禁止のものなら、重複するデータの格納 といったことが、最低限、必要なテストすべきパターンになると思います。 これらのデータは、totojimaさんが作成した登録フォームで、手作業で入力してデモを行えばいいと思うのですが? そうであれば、入力するデータは事前に考えておき、テキストファイルでもMS-EXCELでも、MS-WORDでもいいので、いつでも参照しながらデストで使えるようにしておく。 デモをやる上で、初期データ(そのプログラムを実行する前に、予めデータが入っている)が必要なら、そのデータを格納するinsert文を作っておく。 create table文、drop table文と、操作結果を確認するためのselect文も準備しておくといいと思います。 といった感じでしょうかね。
補足
お早いお返事ありがとうございます! >「エラーが出てうまくいかない」というのは、これからプロを目指そうとしている人が使ってはいけない表現です。 >具体的なエラーの内容(メッセージやコード類)を、必ず示してください。 まったくその通りですね・・・・恥ずかしい限りです。 >「登録」のプログラムだったのでは? INSERTは登録ですね・・・間違ってばかりで申し訳ありません。 >今回、課題を出されたのが、「登録、更新、削除もある」という操作の内、「登録」部分ということでしょうかね? ボタンに関して登録、更新、削除と3つあるのですが、これをやる、と指定はされていないので全部やると思います・・・登録には登録用のテストデータを、更新には更新用、削除には削除用と作る必要があるのかな・・・・? デモか・・・目の前でやるのはすごく怖いですね。でも避けれない道ですのでなんとかがんばりたいです。 デモに向けてのアドバイスまでいただきまして本当に感謝しております。ありがとうございます。 テストの内容になるんですが、(1)~(5)までは登録フォーム上で桁数や数字などフォームに合わないものは弾かれるようになってるので大丈夫だと思います。だた(6)に関しては・・・なんとかしなくてはいけないかもしれません・・・。 insert文やcreate table文、drop table文はCSVファイルに書き込めばよいのですか?sql文をあらかじめ用意したいと思っているのですが・・・・
- chukenkenkou
- ベストアンサー率43% (833/1926)
仕事としてやっているなら、具体的に何をやるように指示されたのでしょうか? コンパイルまでやっているとのことですが、そのプログラムのテストは誰が行うのですか? >「フラグ消し」という単語は初めて聞いたものなのでよくわかりませんが・・・・ コンパイル時に文法エラーが出ることを、大昔から「フラグが立つ」といいます。 そして、コンパイラで文法エラーが出ないように修正していく作業を、「フラグ消し」といいます。 >テストデータというものの形がよくわからなかった 「形」や「作成方法」は、様々です。 例えば、携帯電話や銀行ATMの「人が手で操作する部分」のテストを行うなら、テストデータは帳票類で記載されているかも知れません。データの内容は、どういう操作をテストするのかにより、異なってきます。 「手で操作する部分」でないなら、データはテキストファイルに作成しておき、一気にテスト対象のプログラムに渡すことも考えられます。 この場合も、データの内容は、テスト対象のプログラムが「何をするものか」により異なってきます。 今回は、「個人データの登録」ということなので、データの内容は、登録する個人の情報であり、登録できるケース、重複エラーで登録できないケース、入力した値が許容範囲か否か、数値か文字か・・・といったものが考えられます。 「テストデータ」とだけ聞くと、ここまで記述した「そのプログラムが仕様通り動くこと」を確認するためのデータと一般的に受け取れます。 しかし、これまでの質問・返答を見ていると、「どういうテストをしたか」をまとめた帳票の提出を求められているようにも思えます。この場合、テスト仕様書(チェックリスト)のこととも考えられます。 この辺のことは、totojimaさんが、作業を任せられた相手に確認するしかないと感じます。 なお、SQLのスクリプトファイルの実行ですが、pgAdminIIIを使えるのでしたよね? pgAdminIII起動後、「SQL」というボタンをクリックすれば、SQLを入力したり、貼り付けたりできる状態になります。
補足
お返事ありがとうございます。 >仕事としてやっているなら、具体的に何をやるように指示されたのでしょうか? >コンパイルまでやっているとのことですが、そのプログラムのテストは誰が行うのですか? まだ、仕事としてはできていません。面接時にプログラムを作ったことがないということで適正検査を含めて作ってみてくれ、という形でここ2ヶ月ほど、メールでやりとりしています。作ったデータをメールで送り、それを確認していただいて次の課題をいただき、またできたらメールで送り確認してもらってます。今回、INSERTなどの機能を付けてメールをしたところテストデータとプログラムを持参してきてほしい、と言われました。テストデータを知らなかったのでできるまで延ばしていただいたのですが・・・ >コンパイラで文法エラーが出ないように修正していく作業を、「フラグ消し」といいます。 なるほど、ありがとうございます。これはやっていました。エラーがよく出たので・・・・ テストの内容ですが恐らくプログラムが問題なく動くか、だと思います。INSERTやDELETEなどを入れたボタンがありますので、それを押した時エラーなくデータの追加や削除ができているかなどをテストするのだと・・・・登録内容は20桁までの数字のみですので簡単なもだと思うのですが。 参考になるかわからないのですがInsert文でもdb形式でcopyでも良いと言われてるのですが・・・ 今やってみているのがエクセルからCSV(テキストファイル)を作ってそこにSQLでCOPYをしようとしているのですがエラーが出てうまくいきません。なんの入力もしていないCSV(テキストファイル)はテストデータにはならないのでしょうか? >pgAdminIII起動後、「SQL」というボタンをクリックすれば、SQLを入力したり、貼り付けたりできる状態になります。 なるほど・・・・もし、CSVテキストにテストデータとしてSQLを入れてないといけなかったのならぜひ参考にさせていただきたいと思います。 ここまでお相手いただき誠にありがとうございます。わからないところだらけなのですがよろしくお願いします。
- chukenkenkou
- ベストアンサー率43% (833/1926)
Yahoo!知恵袋にも、同じ質問をしていませんか? どれが最新の状態なのか、アドバイスする側から見れば、分からなくなるのですけどね。 >javaプログラムを作成した これは、「ソースコードを作っただけ」なのでしょうか?それとも、javaのコンパイル環境があり、フラグ消しは終わっているのですか? Yahoo!知恵袋や#1さんへの質問・返事を見ていると、フラグ消しやテストは、「学校で行う」というように推察されるのですけど? >プログラムは個人データの登録フォームなのです 個人データの登録を行うのですから、テストデータは、登録するデータそのものです。つまり、totojimaさんの情報や好きな芸能人、スポーツ選手などの情報を、そのままではまずいですから、適当に変えたものを「授業中に考えるのでなく、事前に整理」しておけばいいということではないでしょうか? 登録するデータには、データを一意に管理するための番号などがあるでしょう。そういったパターンをテストするために、重複データを用意したりします。 値に許される範囲がある場合、範囲外のデータを用意したりします。 数値しか入力できないところに、文字を入力したり。これもテストデータです。 こういった方法で考えたデータを、CSV形式(カンマ区切り)でテキストファイルにしたり、SQL(insert文)を予めテキストファイルに作成しておいてもいいでしょう。 CSV形式のファイルのPostgreSQLのDBへの格納方法、SQLを記述したファイルの実行方法は、ネット検索やネット上のマニュアル、書籍などでいくらでも調べられるし、先生に確認するのもいいでしょう。
補足
お返事ありがとうございます。 >Yahoo!知恵袋にも、同じ質問をしていませんか? 申し訳ありません、なるべく多くアドバイスをいただきたかったので・・ >どれが最新の状態なのか、アドバイスする側から見れば、分からなくなるのですけどね。 以後、気をつけます。ご指摘いただきありがとうございます。 学校には通っていませんのでプログラム作成に関しては、コンパイルまで全て自宅でやっています。「フラグ消し」という単語は初めて聞いたものなのでよくわかりませんが・・・・ 回りに聞ける方がいないので書籍を借りたり、ネット上で調べたりはしているのですが、テストデータというものの形がよくわからなかったので質問させていただきました。 COPY ... TO ...; という文でテーブルをテキストファイルへ出力できるということも聞けたのですが、SQLをテキストファイルで作成しておく等、テキストファイルを用意するのにやり方をわかりやすく載せてあるサイト等ありませんでしょうか?
- alte_6
- ベストアンサー率60% (9/15)
作成したプログラムの内容と質問の意図が不明ですね・・
補足
プログラムは個人データの登録フォームなのですがここに貼り付けるのは文字数制限の関係で無理でした。 質問の意図・・・・たしかにわからないだけでは何に対して質問しているかわからないですよね。すいません。 動作確認をするためにテストデータと作成したプログラムをいっしょにもってくるように言われたのですが、テストデータの作り方がわからないのです。psqlの基本的なコマンドの中にテストデータを作るものがある、と言われたのですがどのコマンドを使ってどのように作ればいいのか教えていただけないでしょうか?
お礼
遅くなりました。 恐らくそのようです。難しく考えすぎてました! 本当にどうもありがとうございました!