• ベストアンサー

テストデータの作成

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.8

下のアドバイス、少し訂正。 「totojimaさんが持参したデータを使って、 そのデータをデータベースにロード(格納)して、 totojimaさんが作ったプログラムを テストしましょう」という意味でしょう。

totojima
質問者

お礼

遅くなりました。 恐らくそのようです。難しく考えすぎてました! 本当にどうもありがとうございました!

その他の回答 (7)

回答No.7

>テストデータをロードしてプログラムの動作確認が行えれば良いということでした >ので、DBの代わりにテストデータで登録、変更、削除の操作ができれば良いと >いうことたど思います。 そういう意味ではなく、接続先サーバやデータベース名、データなどは本番業務で使用するようなものでなく、「totojimaさんが持参したデータを使ってテストしましょう」という意味でしょう。 実際に接続するサーバ、データベース名などは、作業依頼者に確認することになります。

回答No.6

csvは「カンマ区切りの値」ですから、格納するデータを「,」で区切って入れておきます。主要なRDBMSでは、CSVファイルの各フィールドの値を、表を構成する列の順に対応させて格納してくれます。 insert文などのSQLは、テキストファイルに記述(=スクリプトファイル)しておくのが一般的です。

totojima
質問者

補足

ありがとうございます。記述(=スクリプトファイル)を元に調べてみます。 テストの内容を聞いてみたのですが テストデータをロードしてプログラムの動作確認が行えれば良いということでしたので、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ファイルにもプログラムからの命令で登録、変更、削除するように記述しないといけないですよね・・・かなりややこしそうです・・・

回答No.5

追記。 メールでやり取りしているなら、 「テストデータの内容ですが、 xxxxx (←これまでのアドバイスを整理して) といった内容(or 理解とか)でいいでしょうか?」 といった確認をメールで行えばいいと思いますよ!

totojima
質問者

補足

そうですね!思ってたより大分複雑になりそうなのでメール送っておきます! こんなところにまで気を使っていただいて本当にありがとうございます!><

回答No.4

なるほど。 プログラムを作成し、そのデモ(デモンストレーション)をやる訳ですね! 取りあえず、すぐにアドバイスできる範囲で回答します。 >そこに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文も準備しておくといいと思います。 といった感じでしょうかね。

totojima
質問者

補足

お早いお返事ありがとうございます! >「エラーが出てうまくいかない」というのは、これからプロを目指そうとしている人が使ってはいけない表現です。 >具体的なエラーの内容(メッセージやコード類)を、必ず示してください。 まったくその通りですね・・・・恥ずかしい限りです。 >「登録」のプログラムだったのでは? INSERTは登録ですね・・・間違ってばかりで申し訳ありません。 >今回、課題を出されたのが、「登録、更新、削除もある」という操作の内、「登録」部分ということでしょうかね? ボタンに関して登録、更新、削除と3つあるのですが、これをやる、と指定はされていないので全部やると思います・・・登録には登録用のテストデータを、更新には更新用、削除には削除用と作る必要があるのかな・・・・? デモか・・・目の前でやるのはすごく怖いですね。でも避けれない道ですのでなんとかがんばりたいです。 デモに向けてのアドバイスまでいただきまして本当に感謝しております。ありがとうございます。 テストの内容になるんですが、(1)~(5)までは登録フォーム上で桁数や数字などフォームに合わないものは弾かれるようになってるので大丈夫だと思います。だた(6)に関しては・・・なんとかしなくてはいけないかもしれません・・・。 insert文やcreate table文、drop table文はCSVファイルに書き込めばよいのですか?sql文をあらかじめ用意したいと思っているのですが・・・・

回答No.3

仕事としてやっているなら、具体的に何をやるように指示されたのでしょうか? コンパイルまでやっているとのことですが、そのプログラムのテストは誰が行うのですか? >「フラグ消し」という単語は初めて聞いたものなのでよくわかりませんが・・・・ コンパイル時に文法エラーが出ることを、大昔から「フラグが立つ」といいます。 そして、コンパイラで文法エラーが出ないように修正していく作業を、「フラグ消し」といいます。 >テストデータというものの形がよくわからなかった 「形」や「作成方法」は、様々です。 例えば、携帯電話や銀行ATMの「人が手で操作する部分」のテストを行うなら、テストデータは帳票類で記載されているかも知れません。データの内容は、どういう操作をテストするのかにより、異なってきます。 「手で操作する部分」でないなら、データはテキストファイルに作成しておき、一気にテスト対象のプログラムに渡すことも考えられます。 この場合も、データの内容は、テスト対象のプログラムが「何をするものか」により異なってきます。 今回は、「個人データの登録」ということなので、データの内容は、登録する個人の情報であり、登録できるケース、重複エラーで登録できないケース、入力した値が許容範囲か否か、数値か文字か・・・といったものが考えられます。 「テストデータ」とだけ聞くと、ここまで記述した「そのプログラムが仕様通り動くこと」を確認するためのデータと一般的に受け取れます。 しかし、これまでの質問・返答を見ていると、「どういうテストをしたか」をまとめた帳票の提出を求められているようにも思えます。この場合、テスト仕様書(チェックリスト)のこととも考えられます。 この辺のことは、totojimaさんが、作業を任せられた相手に確認するしかないと感じます。 なお、SQLのスクリプトファイルの実行ですが、pgAdminIIIを使えるのでしたよね? pgAdminIII起動後、「SQL」というボタンをクリックすれば、SQLを入力したり、貼り付けたりできる状態になります。

totojima
質問者

補足

お返事ありがとうございます。 >仕事としてやっているなら、具体的に何をやるように指示されたのでしょうか? >コンパイルまでやっているとのことですが、そのプログラムのテストは誰が行うのですか? まだ、仕事としてはできていません。面接時にプログラムを作ったことがないということで適正検査を含めて作ってみてくれ、という形でここ2ヶ月ほど、メールでやりとりしています。作ったデータをメールで送り、それを確認していただいて次の課題をいただき、またできたらメールで送り確認してもらってます。今回、INSERTなどの機能を付けてメールをしたところテストデータとプログラムを持参してきてほしい、と言われました。テストデータを知らなかったのでできるまで延ばしていただいたのですが・・・ >コンパイラで文法エラーが出ないように修正していく作業を、「フラグ消し」といいます。 なるほど、ありがとうございます。これはやっていました。エラーがよく出たので・・・・ テストの内容ですが恐らくプログラムが問題なく動くか、だと思います。INSERTやDELETEなどを入れたボタンがありますので、それを押した時エラーなくデータの追加や削除ができているかなどをテストするのだと・・・・登録内容は20桁までの数字のみですので簡単なもだと思うのですが。 参考になるかわからないのですがInsert文でもdb形式でcopyでも良いと言われてるのですが・・・ 今やってみているのがエクセルからCSV(テキストファイル)を作ってそこにSQLでCOPYをしようとしているのですがエラーが出てうまくいきません。なんの入力もしていないCSV(テキストファイル)はテストデータにはならないのでしょうか? >pgAdminIII起動後、「SQL」というボタンをクリックすれば、SQLを入力したり、貼り付けたりできる状態になります。 なるほど・・・・もし、CSVテキストにテストデータとしてSQLを入れてないといけなかったのならぜひ参考にさせていただきたいと思います。 ここまでお相手いただき誠にありがとうございます。わからないところだらけなのですがよろしくお願いします。

回答No.2

Yahoo!知恵袋にも、同じ質問をしていませんか? どれが最新の状態なのか、アドバイスする側から見れば、分からなくなるのですけどね。 >javaプログラムを作成した これは、「ソースコードを作っただけ」なのでしょうか?それとも、javaのコンパイル環境があり、フラグ消しは終わっているのですか? Yahoo!知恵袋や#1さんへの質問・返事を見ていると、フラグ消しやテストは、「学校で行う」というように推察されるのですけど? >プログラムは個人データの登録フォームなのです 個人データの登録を行うのですから、テストデータは、登録するデータそのものです。つまり、totojimaさんの情報や好きな芸能人、スポーツ選手などの情報を、そのままではまずいですから、適当に変えたものを「授業中に考えるのでなく、事前に整理」しておけばいいということではないでしょうか? 登録するデータには、データを一意に管理するための番号などがあるでしょう。そういったパターンをテストするために、重複データを用意したりします。 値に許される範囲がある場合、範囲外のデータを用意したりします。 数値しか入力できないところに、文字を入力したり。これもテストデータです。 こういった方法で考えたデータを、CSV形式(カンマ区切り)でテキストファイルにしたり、SQL(insert文)を予めテキストファイルに作成しておいてもいいでしょう。 CSV形式のファイルのPostgreSQLのDBへの格納方法、SQLを記述したファイルの実行方法は、ネット検索やネット上のマニュアル、書籍などでいくらでも調べられるし、先生に確認するのもいいでしょう。

totojima
質問者

補足

お返事ありがとうございます。 >Yahoo!知恵袋にも、同じ質問をしていませんか? 申し訳ありません、なるべく多くアドバイスをいただきたかったので・・ >どれが最新の状態なのか、アドバイスする側から見れば、分からなくなるのですけどね。 以後、気をつけます。ご指摘いただきありがとうございます。 学校には通っていませんのでプログラム作成に関しては、コンパイルまで全て自宅でやっています。「フラグ消し」という単語は初めて聞いたものなのでよくわかりませんが・・・・ 回りに聞ける方がいないので書籍を借りたり、ネット上で調べたりはしているのですが、テストデータというものの形がよくわからなかったので質問させていただきました。 COPY ... TO ...; という文でテーブルをテキストファイルへ出力できるということも聞けたのですが、SQLをテキストファイルで作成しておく等、テキストファイルを用意するのにやり方をわかりやすく載せてあるサイト等ありませんでしょうか?

  • alte_6
  • ベストアンサー率60% (9/15)
回答No.1

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

totojima
質問者

補足

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

関連するQ&A

  • ファイル出力のテストについて

    お世話になります。 現在JAVAの開発に従事しております。 PCLの作成を行っているのですが一点悩みがあります。 以下の様なテスト仕様を考える際、どの粒度で考えればよいのでしょうか? (1)作成するプログラムは画面から抽出条件を指定するものである (2)画面から指定された条件でDBからデータを取得し、データの出力を行う (3)出力されるデータはエクセルで各種集計値が数千件出力される …以上のデータの出力のテストを行う際、出力されるレポートのデータ 確認テストはどの粒度で行うのが適切でしょうか? いくつかのデータにテスト用のデータを設定しておき、その項目のみを 確認する方法でテストを行えばいいのかな?っとは思うのですが、皆様はどのような形式でデータ出力のテストを行うのでしょうか? 私は、ブラウザ上でのテストしか今まで行ったことがないので、判断が出来かねています。 何卒よろしくお願いいたします。

  • 不規則なデータのテストについて

    お世話になります。 JAVAのプログラムのテストについて質問があります。 現在、データベースを利用したファイルの入出力をプログラムを作成中です。そのなかで、MAX70000件ほどのデータの取り込み機能を作成しなければならない要件があり、テストデータの作成について悩んでいます。 っというのもデータの並びが不規則で、テストデータの作成がとても難しいと感じているからです。 以下に入力用ファイルの特徴を記述します。 (1)入力用ファイルの形式はTSV形式のテキストファイルです。 (2)入力用ファイルは毎月更新されます。 (3)入力用ファイルは20社分存在します。(形式はすべて同じ) (4)入力用ファイルは、毎月更新され情報は列に追加されていきます。 (5)入力用ファイルは4つのカテゴリに分けられファイルの先頭のカテゴリ情報を元に取り込み対象か否かを判断する必要がります。 例えば、ファイルの一例が以下の通りです。 -------------------------------------------------------------- 代理店:集計日(ファイルの先頭) -------------------------------------------------------------- //今月データなので右から三番目が取り込み対象 TCEAS PJY-N 2008/04/05 2008/06/08 2008/09/08   //今月データなので右から二番目が取り込み対象 TCEAS PUC-N 2008/06/08 2008/09/08 //今月データではないので取り込み対象外 TCEAS PUC-N 2008/06/08  -------------------------------------------------------------- 代理店:集計結果 -------------------------------------------------------------- //上記にて今月データなので右から三番目が取り込み対象 TCEAS PJY-N 0 0 1 //上記にて今月データなので右から二番目が取り込み対象 TCEAS PUC-N 0 0 //上記にて今月データではないので取り込み対象外 TCEAS PUC-X 0 …以上のようなデータが1ファイルMAX70000件存在します。 プログラムのテストとして、どの程度(何パターン)位テストデータ を用意すればいいのでしょうか? また、テストの観点としてどのような観点でテストを行えばいいのでしょうか?(データ量、横に伸びるデータのカラム数の値等・・・あげればきりが無い・・・) 長々と長文失礼いたしました。どうかよろしくお願いいたします。

  • 過負荷テストはどのようにしていますか?

    始めまして。私、WEBでの開発をしています。開発内容は某会社の業務日報を WEBにおこして、その入力された内容をデータベースに登録するシステムです。 言語はJAVAで、DBサーバーはUNIXにオラクルが乗っています。WEBサーバーは WIN2000サーバーでweblogic6.1が乗ります。WEBサーバーからDBサーバーへ コネクションを張っていてクライアントはサーバー経由でデータを引っ張ってきます。(簡単な説明で申し訳ございません。あまり公開できないものでして...。) さて、 同時にアクセスしたときの過負荷テストを検討中です。現在の環境では 少人数でのアクセスしかテストできないので大人数(240人くらい) がアクセスしたときの動作を検証するのは難しい状況です。大人数が同時に アクセスした場合での擬似的なテスト手法を知っている方は教えてはいただけないでしょうか?別に過負荷テストを行うためのツールのご紹介でもかまいません。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • テストデータを作成したい

    Oracle9iです。テストデータを作成したいです。 カラムが200くらいあるテーブルに対して、既に登録済みの1レコードの主キーだけ変更したものを10万件登録したいのですが、何かいい方法はないでしょうか?

  • 一意のデータを取得

    現在、ASPを利用して DBへ登録するプログラムを組んでいます。 そこで、DBへ登録時に主キーとして使う一意のデータを 作りたいのです。 DB(例えばaccess)のオートナンバー型式を使えば、できますが、これをASPプログラムのほうで作成したいのです。 宜しくお願いします。

  • AccessとOracleのデータ連携について

    お世話になります。 AccessのデータとOracleのデータ連携について悩んでいます。 Javaのアプリケーションを通して、AccessのデータをOracleに 取り込むシステムを作成しようとしています。 自分で考えた方法としては、 【実装方法1】 出力時 : Accessに【csv出力メニュー】を作成する。データ出力担当者      は、【csv出力メニュー】からFTPにデータの出力を行う。   データ出力時に、企業型DBから通知メールが入力担当者に自 動で送信される。 入力時 : データ入力担当者はメールを受け取り次第、Javaシステ ムのデータ取り込み機能を利用して、FTPから入力対象       データの取り込みJavaシステムを利用して行う。 …です。 ただ、この場合Accessにcsvデータ出力機能を新たに作成しなければなりません。仮にAccessからcsvデータを出力できないといった場合に、 AccessのテーブルをJavaプログラムから直接参照してOracleにデータ登録することは可能なのでしょうか? 若輩者の為、仕様を考えることは初めての経験なのでどなたかご教授いただけませんか?よろしく御願いいたします。

  • テストデータ作成に苦労しています

    テストデータ作成のための良いツールはないでしょうか。 今のところ、Oracle SQL Developer や Visual Studio のサーバーエクスプローラー、OSqlGridなど を使って、手作業でテストデータを作っています。 いずれも、グリッド編集的な機能によって、手作業でそれぞれのテーブルに対してデータを入力 しています。 (一度作ったデータは、再度クリーンな状態から再現するために、最終的に SQLのINSERT文に して保存しています) 1テーブルあたりのテストデータ件数は10件から50件程度なのですが、 つらいなあ、と思うのは、例えば「テーブルA」の明細レコードとして「テーブルA-1」のような テーブルがあり、テーブルA-1のさらなる明細レコードとして「テーブルA-2」がありまして、 そういった場合、上記のツールを使っている場合、それぞれに紐付くレコードを把握しつつ管理 するのが大変です。 テーブル構成を管理しているのは客先なのですが、カラムが増えたり移動(別のテーブルに移動) したりして、末端の人間としては、既に作成したテストデータを変更するのが大変だ、という 悩みもあります。 テストデータ作成及び管理に良いツールはないでしょうか。 あるいは当該プロジェクトのための専用ツールを作った方が良いでしょうか。

  • データセットの違いにつきまして

    VB(2003)でADOアクセスのプログラムを作成しています。 データセットにつきまして、質問したき件ありまして 書き込みました。 私には、VBにデータセットが2種類あるように思われるのですが、 質問を以下に記述させていただきます。 質問が少し変かもしれませんが、どなたかアドバイス いただけるとありがたいです。 (1)ひとつめのデータセット DBのアクセスとかで下記の定義で定義して使う データセット Dim ds As New DataSet と (2)ふたつめのデータセット ソリューションエクスプローラの 追加ー>新規項目の追加で選択した[データセット] で追加されるデータセット dataset1.xsd が ありますが、この2つの関係はどのように捕らえたら よいのでしょうか? 質問がおかしいかもしれませんが、どなたか教えて いただけるとありがたいです。 ちなみに、私が作成したDBのアクセスのプログラムは (2)を使用しています。((1)は使用していないです)

  • MDBファイルのデータ移行

    ACCESSでDB環境を作成してmdbファイルで使っていました。 プログラム変更時にDBにもテーブルの項目をいくつか追加しました。 旧mdbファイルのデータを新mdbに移行したいのですが、ACCESSの無い状態で移行するのは可能でしょうか。 ACCESSは初心者で職場にACCESSが無いため困っています。 何か良い方法は無いでしょうか?

  • バッチ処理hhhhについて

    お世話になります。自動バッチについて質問があります。 Accessからオラクルへのデータ移行を自動バッチ(日時)で行おうと 考えています。 環境: アプリケーションサーバー:apach tomcat 言語:java1.6 サーバー:fedoracore8 取得先DB:Access 入力先DB:oracle11g IDE:eclipse3.3 自分で考えた方法としては、 ----------ここまでは手動------------------- (1)手動でFTPに圧縮したAccessをアップロード ----------ここから自動バッチ------------------- (2)夜間、サーバー上にFTPからAccessを取得(自動) crontabとか? (3)取得したAccessを解凍し、全データの中から更新データのデータをjavaプログラムで取得・加工→csv出力 (3)出力したcsvをjavaプログラムで参照し、oracleに更新する。 ※補足 Accessのデータは毎日更新されます。毎日、前回更新からの差分を javaプログラムで取得、加工しOracleに更新します。 …といった感じでプログラムを作成できないかなっと思っています。 ただ、上記の方法が可能なのかどうかが自分自身判断できかねています。 インターネットで調べて、javaからAccessのデータを取得できるのは 分かったのですが、それ以外の部分が実際に可能なのかどうかの判断 がつきません。 また、データ加工用のjavaプログラムとデータ更新用のjavaプログラムは 別プロジェクトで作成したほうがよろしいのでしょうか? 長々とすみません。 どなたか教えていただけませんでしょうか? よろしく御願いいたします。