人に聞けない痔の悩み、これでスッキリ >>

課題でDBへアクセスできるjavaプログラムを作成したのですが、提出の際、テストデータをもってくるように言われたのですが・・・テストデータの作り方がわかりません。
どなたか教えていただけないでしょうか?よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

下のアドバイス、少し訂正。



「totojimaさんが持参したデータを使って、

そのデータをデータベースにロード(格納)して、
totojimaさんが作ったプログラムを

テストしましょう」という意味でしょう。
    • good
    • 0
この回答へのお礼

遅くなりました。
恐らくそのようです。難しく考えすぎてました!

本当にどうもありがとうございました!

お礼日時:2008/11/20 01:07

>テストデータをロードしてプログラムの動作確認が行えれば良いということでした


>ので、DBの代わりにテストデータで登録、変更、削除の操作ができれば良いと
>いうことたど思います。

そういう意味ではなく、接続先サーバやデータベース名、データなどは本番業務で使用するようなものでなく、「totojimaさんが持参したデータを使ってテストしましょう」という意味でしょう。
実際に接続するサーバ、データベース名などは、作業依頼者に確認することになります。
    • good
    • 0

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ファイルにもプログラムからの命令で登録、変更、削除するように記述しないといけないですよね・・・かなりややこしそうです・・・

補足日時:2008/11/14 20:35
    • good
    • 0

追記。



メールでやり取りしているなら、

「テストデータの内容ですが、
xxxxx (←これまでのアドバイスを整理して)

といった内容(or 理解とか)でいいでしょうか?」

といった確認をメールで行えばいいと思いますよ!

この回答への補足

そうですね!思ってたより大分複雑になりそうなのでメール送っておきます!

こんなところにまで気を使っていただいて本当にありがとうございます!><

補足日時:2008/11/13 23:52
    • good
    • 0

なるほど。


プログラムを作成し、そのデモ(デモンストレーション)をやる訳ですね!

取りあえず、すぐにアドバイスできる範囲で回答します。

>そこに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文をあらかじめ用意したいと思っているのですが・・・・

補足日時:2008/11/13 23:36
    • good
    • 0

仕事としてやっているなら、具体的に何をやるように指示されたのでしょうか?


コンパイルまでやっているとのことですが、そのプログラムのテストは誰が行うのですか?

>「フラグ消し」という単語は初めて聞いたものなのでよくわかりませんが・・・・

コンパイル時に文法エラーが出ることを、大昔から「フラグが立つ」といいます。
そして、コンパイラで文法エラーが出ないように修正していく作業を、「フラグ消し」といいます。

>テストデータというものの形がよくわからなかった

「形」や「作成方法」は、様々です。
例えば、携帯電話や銀行ATMの「人が手で操作する部分」のテストを行うなら、テストデータは帳票類で記載されているかも知れません。データの内容は、どういう操作をテストするのかにより、異なってきます。
「手で操作する部分」でないなら、データはテキストファイルに作成しておき、一気にテスト対象のプログラムに渡すことも考えられます。
この場合も、データの内容は、テスト対象のプログラムが「何をするものか」により異なってきます。

今回は、「個人データの登録」ということなので、データの内容は、登録する個人の情報であり、登録できるケース、重複エラーで登録できないケース、入力した値が許容範囲か否か、数値か文字か・・・といったものが考えられます。

「テストデータ」とだけ聞くと、ここまで記述した「そのプログラムが仕様通り動くこと」を確認するためのデータと一般的に受け取れます。
しかし、これまでの質問・返答を見ていると、「どういうテストをしたか」をまとめた帳票の提出を求められているようにも思えます。この場合、テスト仕様書(チェックリスト)のこととも考えられます。

この辺のことは、totojimaさんが、作業を任せられた相手に確認するしかないと感じます。

なお、SQLのスクリプトファイルの実行ですが、pgAdminIIIを使えるのでしたよね?
pgAdminIII起動後、「SQL」というボタンをクリックすれば、SQLを入力したり、貼り付けたりできる状態になります。

この回答への補足

お返事ありがとうございます。

>仕事としてやっているなら、具体的に何をやるように指示されたのでしょうか?
>コンパイルまでやっているとのことですが、そのプログラムのテストは誰が行うのですか?

まだ、仕事としてはできていません。面接時にプログラムを作ったことがないということで適正検査を含めて作ってみてくれ、という形でここ2ヶ月ほど、メールでやりとりしています。作ったデータをメールで送り、それを確認していただいて次の課題をいただき、またできたらメールで送り確認してもらってます。今回、INSERTなどの機能を付けてメールをしたところテストデータとプログラムを持参してきてほしい、と言われました。テストデータを知らなかったのでできるまで延ばしていただいたのですが・・・

>コンパイラで文法エラーが出ないように修正していく作業を、「フラグ消し」といいます。

なるほど、ありがとうございます。これはやっていました。エラーがよく出たので・・・・


テストの内容ですが恐らくプログラムが問題なく動くか、だと思います。INSERTやDELETEなどを入れたボタンがありますので、それを押した時エラーなくデータの追加や削除ができているかなどをテストするのだと・・・・登録内容は20桁までの数字のみですので簡単なもだと思うのですが。
参考になるかわからないのですがInsert文でもdb形式でcopyでも良いと言われてるのですが・・・
今やってみているのがエクセルからCSV(テキストファイル)を作ってそこにSQLでCOPYをしようとしているのですがエラーが出てうまくいきません。なんの入力もしていないCSV(テキストファイル)はテストデータにはならないのでしょうか?

>pgAdminIII起動後、「SQL」というボタンをクリックすれば、SQLを入力したり、貼り付けたりできる状態になります。

なるほど・・・・もし、CSVテキストにテストデータとしてSQLを入れてないといけなかったのならぜひ参考にさせていただきたいと思います。

ここまでお相手いただき誠にありがとうございます。わからないところだらけなのですがよろしくお願いします。

補足日時:2008/11/13 18:41
    • good
    • 0

Yahoo!知恵袋にも、同じ質問をしていませんか?


どれが最新の状態なのか、アドバイスする側から見れば、分からなくなるのですけどね。

>javaプログラムを作成した

これは、「ソースコードを作っただけ」なのでしょうか?それとも、javaのコンパイル環境があり、フラグ消しは終わっているのですか?
Yahoo!知恵袋や#1さんへの質問・返事を見ていると、フラグ消しやテストは、「学校で行う」というように推察されるのですけど?

>プログラムは個人データの登録フォームなのです

個人データの登録を行うのですから、テストデータは、登録するデータそのものです。つまり、totojimaさんの情報や好きな芸能人、スポーツ選手などの情報を、そのままではまずいですから、適当に変えたものを「授業中に考えるのでなく、事前に整理」しておけばいいということではないでしょうか?

登録するデータには、データを一意に管理するための番号などがあるでしょう。そういったパターンをテストするために、重複データを用意したりします。
値に許される範囲がある場合、範囲外のデータを用意したりします。
数値しか入力できないところに、文字を入力したり。これもテストデータです。

こういった方法で考えたデータを、CSV形式(カンマ区切り)でテキストファイルにしたり、SQL(insert文)を予めテキストファイルに作成しておいてもいいでしょう。
CSV形式のファイルのPostgreSQLのDBへの格納方法、SQLを記述したファイルの実行方法は、ネット検索やネット上のマニュアル、書籍などでいくらでも調べられるし、先生に確認するのもいいでしょう。

この回答への補足

お返事ありがとうございます。

>Yahoo!知恵袋にも、同じ質問をしていませんか?

申し訳ありません、なるべく多くアドバイスをいただきたかったので・・

>どれが最新の状態なのか、アドバイスする側から見れば、分からなくなるのですけどね。

以後、気をつけます。ご指摘いただきありがとうございます。


学校には通っていませんのでプログラム作成に関しては、コンパイルまで全て自宅でやっています。「フラグ消し」という単語は初めて聞いたものなのでよくわかりませんが・・・・
回りに聞ける方がいないので書籍を借りたり、ネット上で調べたりはしているのですが、テストデータというものの形がよくわからなかったので質問させていただきました。
COPY ... TO ...;
という文でテーブルをテキストファイルへ出力できるということも聞けたのですが、SQLをテキストファイルで作成しておく等、テキストファイルを用意するのにやり方をわかりやすく載せてあるサイト等ありませんでしょうか?

補足日時:2008/11/12 22:58
    • good
    • 0

作成したプログラムの内容と質問の意図が不明ですね・・

この回答への補足

プログラムは個人データの登録フォームなのですがここに貼り付けるのは文字数制限の関係で無理でした。
質問の意図・・・・たしかにわからないだけでは何に対して質問しているかわからないですよね。すいません。
動作確認をするためにテストデータと作成したプログラムをいっしょにもってくるように言われたのですが、テストデータの作り方がわからないのです。psqlの基本的なコマンドの中にテストデータを作るものがある、と言われたのですがどのコマンドを使ってどのように作ればいいのか教えていただけないでしょうか?

補足日時:2008/11/12 15:53
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード


人気Q&Aランキング