Webアプリケーションでのテスト駆動開発のリソースですか?[閉まっている]


15

WebアプリケーションにTDDを実装して、リグレッションを減らし、リリースの品質を向上させたいと思いますが、Webアプリケーションのようにふわふわしたもので自動化されたテストをどれだけうまく実行できるか確信がありません。

TDDと単体テストについて読んで試しましたが、例は「堅実」で、通貨コンバーターなどの単純な機能です。

コンテンツ管理および公開システムの単体テストに役立つリソースはありますか?ショッピングカート/ストア(物理製品およびオンライン製品)の単体テストはどうですか?AJAX?

「Web Test Driven Development」のグーグル検索では、数年前の古い記事で、計算機のような機能の同じ例や、TDDが何よりも優れている理由(例なし)について説明しています。


1
利用可能なツールは言語によって異なります。どの言語を使用していますか?
-Alb

私はそれを理解しています-しかし、私は特定のツールよりも議論の記事やエッセイをもっと探していました。どのツールが利用できるかは知っていますが、それらをフロントエンド駆動型アプリケーションに最適に使用する方法を学びたいです。
ホルスコル

回答:


2

大きな免責事項:Webアプリケーションを作成したことも、Webアプリケーションをテストしたこともありません。以下は、情報圏内のランダムウォークで吸収した情報のほんの一部です。

ビジネスルールを単独でテストできるように、Webアプリケーションを構築します。ユーザーインターフェイスを使用してビジネスルールをテストしている場合は、再設計を検討するときが来ます。

UIのテストに関しては、ビジネスルールを、予測可能な方法で応答する模擬実装に置き換えてください。

上記の2つのルールは、RailsConf 2010でのBob Martinの講演から引用されています。話はTDDについてではなく、彼がテストについて言及しているセクションは短く、途中のどこかにあります。

JavaScriptをテストするためのJsUnitJSSpecYUI Test、UIをテストするためのSeleniumWatirなどのツールがあります。

実用的な本棚は、 Webアプリケーションのテストをカバーする数冊の本を持っています。Testingでタグ付けされた本のリストはhttp://www.pragprog.com/categories/designにあります。Pragmatic Bookshelf Webアプリのテストブックは、主にRubyとRailsに焦点を当てていますが、一般的に適用できるはずです。


Webデザインの1つの大きな問題はCSSテストです。新しいCSSルールは意図しない結果をもたらす可能性がありますが、特定のコンテンツを含むページでのみ可能です。それを単体テストできますか?
ホルスコル

良い質問。これはUIテストの一部であることをお勧めします。テストを開発して、予想するさまざまなページコンテンツ(および予想しないいくつかのコンテンツ)を含め、適切に受け入れを記述します。次に、新しいCSSルールを導入すると、UIテストでリグレッションが強調されるはずです。このプロセスには時間がかかりすぎている可能性があり、サイトでQAテストを行い、問題を報告するだけで、あなたはより良いサービスを受けることができます。
アンソニークランプ

3

テスト駆動型JavaScript開発は、Sinon.jsおよびBuster.jsの開発者であるChristian Johansenの非常に素晴らしい本です(Webサイトから引用)。

  • 単体テストとTDDを理解する
  • 適切な単体テストフレームワークの選択
  • よりクリーンなAPI、モジュール化された堅牢なJavaScriptの構築
  • リファクタリングによるコードの継続的な改善
  • 5つの実用的なTDDセッション:Ajax、DOM操作、Node.jsなど
  • 言語に詳しくない開発者向けのJavaScriptのテスト駆動ツアー

現在、MochaでSinon.jsを使用していますが、Buster.jsに切り替える準備ができています。


1

私が最近取り組んだプロジェクトで、主任開発者はUnityを使用することを決定しました。そのため、大規模なWebアプリケーションでモックとTDDが簡素化されました。

CMSの単体テストの調査は、単純にモックするのに妥当なものがないため、行き詰まりにつながる可能性があります。httpトラフィックをページにモックせずにテストできるものがわかりません。その時点では、テストの価値はほとんどありません。

Webアプリケーションの経験則として、モックを使用して複雑さを軽減できる場合は、おそらく単体テストを行うことができます。

したがって、Webアプリケーションでは、データベースをモックして、データアクセスレイヤーまたはモデルのさまざまな部分を単体テストできます。ユーザー入力をモックして、ビューやUIなどを単体テストできます。


0

Python + Djangoを使用したWeb開発用のTDDに関する本を執筆しました。エンドツーエンド/機能テスト(セレン)と下位レベルの「ユニット」テストの両方を含むTDDをカバーしています。また、gitをワークフローに統合する方法、サーバーに展開して自動化およびテストする方法、継続的統合、モックおよびテスト分離など、最新の開発プラクティスについても説明します。

http://www.obeythetestinggoat.com/

(またはhttp://shop.oreilly.com/product/0636920051091.do


リンクが壊れています
ケルドンアレイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.