プログラムのテストについて質問です。


最近よくテストについての記事を見かけます。
出来上がった成果物に対してテストを行うのはとても重要なことなのはよく理解しているつもりなのですが
テストの為のコードというのがいまいち理解できていません。

テストそのものを自動化することにより変更後のテストや修正などが容易になるといったことかと思いますが簡単な実例などはないでしょうか?


<form method="post" action="login.html">
<input type="text" name="id">
<input type="password" name="password">
<input type="submit" value="send">
</form>

上記に対して従来のテストであれば(かなり大雑把ですが)postされるidとpasswordの中身を見る
もしくは入力される値の制限や監視といった内容になると思います。

仮にこれに対するテストコードというのを書くとした場合(そもそもこのレベルの物にテストコードを用意する必要があるかの判断もあるかと思いますが)どういった内容になるのでしょうか?

サンプルもしくはこういったモノになる、そもそもテストコードはこういうものであるといったものでも構いませんので識者の方のアドバイスや解答などいただければと思います。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/12/19 18:25:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:tea_cup No.1

回答回数1071ベストアンサー獲得回数194

ポイント100pt

> こういったモノ
Webの自動テストは、ブラウザのフィールドに用意した文字列を挿入したりスクリーンショットを取ったり、指定した座標にクリックイベントを発生するものです。
いろいろあるので、気になるものがあったら、別質問で使い勝手を聞いてみてはいかがでしょうか。

【VERISIUM】Webアプリケーションのテスト自動化ツール -- VERISIUM --
Sahi を使用して Web アプリケーションのテストを自動化する
Seleniumとは - はてなキーワード
SmartBear - テスト自動化ツール、負荷テストツール、コードレビューツール、パフォーマンス プロファイラーなどを提供 : エクセルソフト

id:quocard

回答ありがとうございます。

こういったツールは知っているのですが、Web上の物に対してテストコードに関する記事を見ることがありましたので、もしそういったものがあるのであればどのようなものかと思い質問させていただきました。

こちらについて一つだけ知らないツールがありましたので参考にさせていただきます。
ありがとうございました。

2013/12/13 05:40:24
  • id:deep_one
    「プログラムのテスト」と言う観点からいうと、例に挙がっているものの場合テストするべきはそのフォームではなくフォームからのpostを処理するサーバー側のプログラムになります。おそらくエスケープ処理の漏れなどを確認するテストになるでしょう。どちらにしても関数一つをテストするような「単体テスト」みたいなテストにしかなりません。

    Webアプリケーションのテストというと普通は「一連の動作の整合性」などを見るものになるので、「ログインしてからログアウトするまで」などもうちょっと広い範囲を見ないといけないでしょうね。
  • id:ku__ra__ge
    自動テストの意味には、テスト対象のソリューション全体を自動操作するというものもありますが、「テストの為のコード」が指すのはユニットテストのことだと思います。

    ユニットテストは、プログラムの小さな単位(クラスやメソッド)ごとに入力と出力の振る舞いが想定通りであるかを調べるテストであるため、ユーザーインターフェースそのものに対するテストは行えません。(……と思います。)

    ただ、それはGUIに対してユニットテストが使えないことを指すわけではないようです。
    http://yasutech.blogspot.jp/2011/01/gui-unittest_23.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません