web-dev-qa-db-ja.com

Webサイトのユニットテスト

他の開発者が自分のWebサイトをどのようにテストしているのか知りたいです。 PHP特に私の場合、これはおそらく複数の言語にまたがっています。私は1年以上サイトで作業しており、多くの回帰テストを自動化したいと思っています。私はバージョン間で行います。

この特定のサイトはCodeIgniterにあるので、モデルのテストをいくつか行っています。しかし、私はそれらをテストするだけではありません。ただし、これは、MVC以外の開発者でも対処しなければならなかった問題です。

編集:私のテストの欲求の多くを満たす機能は、スクリプト処理の最後にパラメーターが特定の値を持っていることを表明する機能だと思います。私の場合、多くのロジックがコントローラーにあり、それが私がテストしたい主要な領域です。

32
Parrots

UIをテストせずに実際の単体テストを行うには、モデル内の関数をテストするだけです。とにかく、ほとんどの機能はそこにあるはずです。

サイトのUIをテストするために、 Selenium を確認することをお勧めします。アクションを記録して再生することも、スクリプトを直接編集することもできます。 alt text
(ソース: seleniumhq.org

25
ryeguy

試しましたか Fitnesse

受け入れテストの作成に役立ちます。これらは、この種のテストを行うのが面倒なWebサイトに特に役立ちます。

ウェブページ内にもunclebobからのビデオがいくつかあります。良い点は、FitnesseがWebサイトのテストに制限されていないため、Fitnessの使用に関する知識を他のアプリでも使用できることです。

私が取り組んでいるプロジェクトは、Fitnessテストを使用するc ++で記述されたデスクトップアプリです。

ただし、モデルの単体テストを意図している場合(私はそうしなかったと思います)、phpunitlibを使用してモデルを作成できます。 ZENDフレームワークにも同様のライブラリがあると思います。

PHPUnitをチェックアウトすることをお勧めします http://www.phpunit.de/manual/current/en/

私はPHPプロジェクトでそれを使い始めました、そしてそれは非常に扱いやすくそして非常に強力です。特に、モックを学びそして使う: http://www.phpunit.de /manual/3.0/en/mock-objects.html

データベース操作を行うアプリケーションを単体テストする場合、モックは特に重要です。

2
OverloadUT

[〜#〜]トースト[〜#〜] を見てください。これはCodeIgniterのために特別に構築されています。 CIインフラストラクチャを使用しているため、ブラウザを介してすべてのテストテストを実行でき、結果はWebページ(HTML)として表示されます。使い方はとても簡単です。

コントローラもテストすることをお勧めします。テストモデルは問題ありませんが、モデルは単なるDBストレージです。コントローラにはすべての「ビジネスロジック」が含まれており、ほとんどの問題が発生する場所です。

1
Milan Babuškov

私が聞いた中で最高のアイデアの1つは、Webアプリのテストに関する限り、サイト内のすべてのページを調べて、前回のスキャンとの違いを確認するスクリプトを作成し、変更を受け入れて修正できるようにすることでした。回帰。

一般的に、GUIアプリケーション(WebサイトはGUIアプリ)の自動テストは難しく、通常は不要です。単体テストは、単純なライブラリで最適に機能します。

CanooWebTestを使用しています。それはそこにある最高の無料のウェブサイトユニットテストフレームワークです。 XMLで完全にスクリプト化可能であり、ビルドサーバーから実行できるようにブラウザーを必要としません。

0
Otávio Décio

ウェイター(ルビー)を改造しました。 URLとフォーム入力の「スクリプト」をIEに再生し、スクリーンキャプチャを取得するためのスクリプト「コマンド」を追加しました。スクリーンキャプチャ画像はKnown-Good-Imageと比較されます。 (つまり、マスターイメージ)そしてそのイメージが異なる場合はログに記録され(基本的にそのような結果のWebページが作成されます)、「人間」がマスター/テストイメージのレビューを行います。明らかに、その時点で2つの結果があります- 「違いは意図的なものです」または「誤った変更があります」最初の例ではマスターイメージが新しいイメージに置き換えられ、2番目の例ではバグが修正され、変更は次のテスト実行に含まれます

0
Kristen