質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

Q&A

解決済

1回答

1722閲覧

単体テスト仕様書に書かれているテスト項目が理解できない

ypk

総合スコア83

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

0グッド

0クリップ

投稿2020/06/02 12:13

初めまして。
現在Javaの学習をしているものです。

単体テスト仕様書にて、下記試験内容の実行確認を行おうとしています。
その試験内容にて、下記のような記述があり、何をしなければならないのかの見当がつかないため質問しました。

selectMembers()メソッドを作成し、Sessionセットデータの情報をどのようにセットすればよいのでしょうか?

上記について、これが意味していることや私が行わなければならないことなどといったことについて、ご存じの方いらっしゃいましたらご教授いただけたら幸いです。どうぞよろしくお願いいたします。

<試験内容>
1.スタブ1(MemberBean.java)にselectMembers()メソッドを作成し、以下の情報をセットする
値:Sessionセットデータ No.1
2.ドライバ(memberServDriver.jsp)からMemberServを実行する

<確認項目>
1.スタブ2(memberDisp.jsp)に遷移し、以下の値が表示されること
値:Sessionセットデータ No.1

#MemberBean.java

package exam; import java.io.Serializable; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class MemberBean implements Serializable { //アクセサメソッド private int _memberNo; private String _memberName; public void setMemberNo(int memberNo) { this._memberNo = memberNo; } public int getMemberNo() { return this._memberNo; } public void setMemberName(String memberName) { this._memberName = memberName; } public String getMemberName() { return this._memberName; } //テーブルに登録されているデータを全件取得 public ArrayList<MemberBean> selectMembers() throws ClassNotFoundException,SQLException{ //DB接続情報の準備 final String DB_DRIVER = "com.mysql.jdbc.Driver"; final String DB_URL = "jdbc:mysql://localhost:3306/××××"; final String DB_USER = "root"; final String DB_PASSWORD = "××××"; Connection con = null; String sql = null; PreparedStatement ps = null; ResultSet rs = null; // DB情報の取得 Class.forName(DB_DRIVER); con = DriverManager.getConnection(DB_URL,DB_USER,DB_PASSWORD); sql = "SELECT * FROM session ORDER BY memberNo"; ps = con.prepareStatement(sql); rs = ps.executeQuery( ); ArrayList<MemberBean> memberList = new ArrayList<MemberBean>(); //実行結果をセット while(rs.next()) { MemberBean info = new MemberBean(); info.setMemberNo(rs.getInt("memberNo")); info.setMemberName(rs.getString("memberName")); memberList.add(info); } // close処理 rs.close(); ps.close(); con.close(); // 戻り値の設定 return memberList; } }

#memberDisp.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.ArrayList" %> <%@ page import="exam.LoggerTester" %> <%@ page import="exam.MemberBean" %> <% request.setCharacterEncoding("UTF-8"); %> <% String message = (String)request.getAttribute("message"); %> <!DOCTYPE html> <html> <head> <title>memberDisp</title> </head> <body> <% LoggerTester lt = new LoggerTester(); lt.outActionLog("memberDisp.jsp", "処理開始"); if(message != null){ %> メッセージの受け渡し確認 <p><%= message %></p> <% } %> 社員情報の受け渡し確認<br> <% ArrayList<MemberBean> memberList = (ArrayList<MemberBean>)session.getAttribute("memberList"); for (int i=0;i<memberList.size();++i) { MemberBean memberInfo = memberList.get(i); %> <br> <%= memberInfo.getMemberNo() %> <%= memberInfo.getMemberName() %> <br> <% } %> </body> </html>

#memberServDriver.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>memberServDriver</title> </head> <body> <form method="POST" action="/Prac/MemberServ"> <input type="submit" value="MemberServへ"> </form> </body> </html>

#Sessionセットデータ No.1

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/06/02 12:48

その単体テスト仕様書を書いた人に聞けば良いのでは。 意図は書いた人にしかわかりませんよ。
ypk

2020/06/02 12:50

なるほど、そうなのですね。ありがとうございます。
m.ts10806

2020/06/02 12:54

出所の分からない資料を出されても赤の他人は質問者本人よりサッパリです。 想像することは出来ても、制作者の意図を正確に組むのは無理でしょう。 元のアプリケーションを設計し、仕様を理解している必要があります。それは赤の他人ではなく、実際に作った人です。
guest

回答1

0

ベストアンサー

他のかたの指摘がある通り、作業依頼者に確認するべきものです
ただ手ぶらで質問するのも・・・というのであれば
以下、想像とアドバイスを。

私が行わなければならないこと

まずは、単体テストとは?を理解して知らない用語を確認してください。
スタブ、ドライバは、わかりますか?
今回のテスト対象のモジュールはソースが提示されていないと想像しています。

以下に想像を書きますが、やらなければいけないことは、この前段階の
テストについて勉強してテスト仕様書の意味を理解する下地の知識を得てください。
まったく意味もわからずに作業が進む方が、ヤバいですよ!!

繰り返しになりますが、以下は想像です。

<試験内容>

1.スタブ1(MemberBean.java)にselectMembers()メソッドを作成し、以下の情報をセットする
値:Sessionセットデータ No.1

MemberBean#selectMembersは、本来DB検索の結果を返すものですが、
スタブとして使うため、DBの内容に関係なく「Sessionセットデータ No.1」を設定します

java

1public ArrayList<MemberBean> selectMembers() throws ClassNotFoundException,SQLException{ 2 ArrayList<MemberBean> memberList = new ArrayList<MemberBean>(); 3 4 // Sessionセットデータ No.1 を設定 5 MemberBean info = new MemberBean(); 6 info.setMemberNo(111); 7 info.setMemberName("あいうえおあいうえお"); 8 9 memberList.add(info); 10 11 // 戻り値の設定 12 return memberList; 13 }

※ Sessionセットデータ No.2であれば、上記の要領で記載されている5件のデータを追加します。

2.ドライバ(memberServDriver.jsp)からMemberServを実行する

ドライバはテスト対象を起動するもので、今回はmemberServDriver.jspの画面を開いて
”MemberServへ”のボタンを押すだけのはずです。

<確認項目>

1.スタブ2(memberDisp.jsp)に遷移し、以下の値が表示されること
値:Sessionセットデータ No.1

ボタンを押すとスタブが呼ばれて、memberDisp.jspに遷移すると思います(エラーなどなければ)
「社員情報の受け渡し確認」のところに、memberNoとmemberName、スタブで設定した値が表示されることを
確認します。

予想ではセッションへの格納キー名が違うように思えるので
何も表示されずにテストはNGになるんじゃないかと思われます。
※MemberServの実装が無いので推測ですが。

投稿2020/06/02 13:32

momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ypk

2020/06/02 23:36

ご回答ありがとうございました。 >やらなければいけないことは、この前段階のテストについて勉強してテスト仕様書の意味を理解する下地の知識を得てください。 具体的なアドバイスもありがとうございます。 今後ともよろしくお願いいたします。
ypk

2020/06/03 00:59

すみません、追加で質問がございます。 >MemberBean#selectMembersは、本来DB検索の結果を返すものですが、 スタブとして使うため、DBの内容に関係なく「Sessionセットデータ No.1」を設定します とあるのですが、スタブとしてMemberBean.javaを使用する場合はDBに接続をする必要はないという認識で大丈夫でしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問