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

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

新規登録して質問してみよう
ただいま回答率
85.35%
ソフトウェアテスト

ソフトウェアテストは、プログラムを実行し、要求通りに正しく動作が行えているかどうか確認する作業です。プログラム中のバグをできる限り多く発見することを目標として行われます。

ドキュメント

ドキュメントは、IT用語では、ソフトウェアやハードウェアに関する情報であり、意図された目的、機能性、メインテナンスを含みます。ドキュメントは、多くの様々なフォームとフォーマットに存在しますが、その目的は常に教育することにあります。

ユニットテスト

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

Q&A

2回答

1597閲覧

テストコードを書いた場合の、テストドキュメントについて

potato_taro

総合スコア2

ソフトウェアテスト

ソフトウェアテストは、プログラムを実行し、要求通りに正しく動作が行えているかどうか確認する作業です。プログラム中のバグをできる限り多く発見することを目標として行われます。

ドキュメント

ドキュメントは、IT用語では、ソフトウェアやハードウェアに関する情報であり、意図された目的、機能性、メインテナンスを含みます。ドキュメントは、多くの様々なフォームとフォーマットに存在しますが、その目的は常に教育することにあります。

ユニットテスト

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

0グッド

0クリップ

投稿2020/07/10 00:15

前提

後輩へのプロジェクトの引継ぎが必要だと仮定します。

知りたいこと

テストコードを書いた場合に、テストドキュメントは作成すべきでしょうか。
また作成する場合、何を記述するべきなのでしょうか。

例としまして、簡単な会員登録フォームを出します。

  • メールアドレス (制約: メールアドレス形式)
  • パスワード (制約: 8桁の英数字)

このような会員登録フォームがあるとして、テストケースとして

  • 正しいメールアドレスを入力してメールアドレスに対してバリデーションエラーがでない
  • 不正なメールアドレスを入力してメールアドレスに対してバリデーションエラーがでる
  • 正しいパスワードを入力してパスワードに対してバリデーションエラーがでない
  • 不正なパスワードを入力してパスワードに対してバリデーションエラーがでる

の4パターン("不正な"には複数パターンあると思いますが簡略化しています)をテストすれば一通りテストケースは網羅できるのかなと思います。

この場合メソッド名を的確に記述することで、よく耳にする、テストコードが仕様書の役割を果たす状態になると私は思います。

ただ一般的にシステムの引継ぎというと、何かしらのドキュメントは残すものなのかなという気持ちがあります(引継ぎ相手がテストコードの実行方法を知らないとか、そういった場合にも何かしらのヒント/説明なりを残したり...というような)。

ググってみると、エクセルで表管理して、手動でテストするのが前提(?)なドキュメントが多数でてきたため、それと認識を混ぜてしまっている可能性もあります。

一般的にはテスト項目に関する引継ぎはどのように行われているのでしょうか?

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

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

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

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

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

dodox86

2020/07/10 00:58

ご質問に書かれている「テストコード」とは、実行することで自動的にテスト成功・失敗が分かる自動テストのことでしょうか。例えばJavaで言えばJUnit、C++で言えばCppUnitのような。
potato_taro

2020/07/10 01:04 編集

すみません、言葉の定義があいまいでした。 はい、その通りです。
momon-ga

2020/07/10 04:36

テストコードな何を元に作成されるのでしょうか? いわゆるテスト仕様書というものがあれば、それがテストドキュメントにあたります? 実装を解析して作るじゃないですよね・・・
potato_taro

2020/07/10 04:41

テストコードは仕様(仕様書)に基づいて作成します。 今回の場合でいうと、 ・メールアドレス (制約: メールアドレス形式) ・パスワード (制約: 8桁の英数字) こちらを仕様書とし、こちらに基づいてテストを作成します。 私の記述したテストドキュメント = テスト仕様書のことです。
momon-ga

2020/07/10 04:45

なるほど。仕様書とテスト仕様書、ソースコードとテストコードという対比があるわけじゃないんですね。 つまり、実装(ソース)を解析して、テストドキュメントを作るということなので、 実装に誤りがあった場合、テスト仕様書にも、それが反映される。で良い?
momon-ga

2020/07/10 04:52 編集

例であげると(そのままですが) 仕様書:パスワード (制約: 8桁の英数字) テストコード:パスワード (制約: 10桁の英字) テスト仕様書:パスワード (制約: 10桁の英字) 念のため。良い悪いとかの話でなく、やろうとしてることは、これでよい?って確認です。
potato_taro

2020/07/10 05:21 編集

違っています。実装を解析してテストコードを作成するわけではありません。 伝え方が下手で誤解を招いてしまったかもしれません。 私の意図を整理すると以下のようになります。 【仕様書】 ・メールアドレス (制約: メールアドレス形式) ・パスワード (制約: 8桁の英数字) 【仕様書】に基づきソースコードを実装。 【仕様書】に基づきテストコードを実装。 ここまでできている前提です。 その上で、 【仕様書】に基づいてテストコードを作成したにも関わらず、【テスト仕様書】は必要なのか? また必要であれば、何を記述すべきなのか? といった質問です。 分かりにくい説明で申し訳ありません。
guest

回答2

0

まず、その組織の決まりごと(必ずドキュメントを残せなど)が最大限優先されると思います。

また、テストモジュールの実行方法がわからない人が引き継がれた場合を想定するなら、最低限そこだけはドキュメント化するべきだと思います。

上記に当てはまらない、かつ自動テストでカバーしているケースをドキュメントに起こす想定をしているのであれば、それは二重管理になるので不要だと思います。

テストコードがメンテナンスされた時にドキュメントまでメンテナンスするのは、単純に生産性を落とすだけで誰も特しません。自動化されていない部分や、そのテストの実行に必要な手順をドキュメント化するべき、という認識です。

テストの実施結果は別途エビデンスとして残す必要はありますが、これはまた別の問題でしょう。

投稿2020/07/10 05:22

gentaro

総合スコア8947

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

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

0

テストコードの質(コメント量や可読性)しだいかなぁ。
私も不要でいいかなぁと思いつつも、

【仕様書】に基づきソースコードを実装。
【仕様書】に基づきテストコードを実装。

テストの仕様を確認するときに、テストコード見るのと、テスト仕様書見るのと、どっちが楽になりそう?
で作成してもらうか決めるかな。

gentaroさんの

組織の決まりごと(必ずドキュメントを残せなど)が最大限優先

は、まぁそりゃ前提でしょう。

あとは、引き継がれる側がテストコード見て、わかる?わからない?を判断してもらってもいいのじゃないかな。

投稿2020/07/10 05:57

momon-ga

総合スコア4826

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問