問題タブ [functional-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
automated-tests - WaTiRを使っていますか?
Ruby Web テスト用のWaTiRより優れた単体テスト ツールはありますか? それともデファクトスタンダード?どの単体テスト ツールを使用していますか?
unit-testing - 機能テストでは不十分なのはなぜですか?ユニットテストは何を提供しますか?
ユニットテストがすべて必要であるか重要であることに同意しなかった私のリード開発者とちょうど会話をしました。彼の見解では、内部リファクタリング(インターフェースの変更など)によってテストを書き直したり、見直したりする必要がなくなるため、コードカバレッジが十分に高い機能テストで十分です。
説明してみましたが、あまり遠くまで行かなかったので、もっと上手くやれると思いました。;-) それで...
機能テストが提供しない単体テストコードのいくつかの正当な理由は何ですか?あなたが持っているのが機能テストだけだとしたら、どんな危険がありますか?
編集#1すべての素晴らしい答えをありがとう。機能テストとは、製品全体のテストだけでなく、製品内のモジュールのテストでもあり、必要に応じてモックを使用した単体テストの低レベルではないことを付け加えたいと思います。機能テストは自動で継続的に実行されますが、単体テストよりも時間がかかります(これは単体テストの大きな利点の1つです)。
私はレンガと家の例が好きです。私のリード開発者が言っているのは、家の壁をテストするだけで十分だと思います。個々のレンガをテストする必要はありません... :-)
asp.net-mvc - Asp.Net Web Apps をカバーする機能テスト ソフトウェア/フレームワーク?
私は最近、機能テストの自動化フレームワークであるNexusLightを使い始めました。同様の仕事をするフレームワークは他にありますか?
unit-testing - 典型的な Web アプリケーションにおける単体テストと機能テストの適切なバランスは?
単体テストは作成と保守のコストが低くなりますが、すべてのシナリオをカバーしているわけではありません。それらの間の正しいバランスは何ですか?
unit-testing - すでに機能テストを行っている場合、単体テストと統合テストを行う必要がありますか?
私の会社の人々は、単体テストを多くの余分な作業と見なしており、既存の機能テストよりもメリットが少ないと考えています。単体テストと統合テストは価値がありますか? テストを念頭に置いて設計されていない大規模な既存のコードベースに注意してください。
unit-testing - どのような種類の単体テストがビジネス価値で最も効果を発揮しますか?
私の質問は、ある種の単体テストは価値があると人々がすでに信じており、実際にそれらを現在のプロジェクトに書き込んでいることを前提としています。また、コードの一部の単体テストは、些細な機能をテストしているため、書く価値がないと仮定しましょう。例としては、ゲッター/セッター、および/またはコンパイラー/インタープリターがすぐにキャッチするものがあります。反対の仮定は、「興味深い」コードはテストする価値があるということです。
testing - プログラム全体のテスト。ベストプラクティス
私は現在、Pythonでライブラリとこのライブラリを使用する一連のプログラムを開発しています。単体テストでは、ライブラリから各モジュールをインポートし、その中のクラスとルーチンをテストする必要があります。それで問題ありません。すべてのテストを含み、開発中に実行するライブラリ モジュールをインポートする別のテスト ディレクトリがあります。
ただし、プログラムのテストに関しては、状況が変わります。テストするには、プログラム全体を実行する必要があります。プログラムは、ライブラリがインストールされていることを前提としています (以前のバージョンのライブラリを自分のマシンにインストールした場合、実際にはそうなる可能性がありますが、これはさらに問題を引き起こします)。現時点では、私のプログラムは、展開前に手動で実行する PYTHONPATH 定義を含むテストスイートによって実行されます (IOW、インストールは実行しません) が、正しく実行しているとは思いません。一般に、プログラムは完全に展開されたときに機能をテストする必要があると思いますが、これは、機能テストを実行するたびにプログラムをインストールする必要があることを意味します.
プログラム全体の機能テストに関するあなたの経験と提案は何ですか? 導入前または導入後にどのように行いますか?
ありがとう
意図的に python タグを含めていないことに注意してください。私の問題は python 固有のものであり、python 関連の回答を希望しますが、他の言語の専門家からも貢献できると思います。
編集:コメントで報告されているように、実際には、私のプログラムは、インストール時に、展開時にのみパスが見つかるモジュールをインポートする必要があります(依存関係をその場でダウンロードしてインストールしますが、マシンにはインストールされません)。テストから sys.path を操作することはできません。これは、プログラム (実行可能ファイル) の sys.path を別のプログラム (system() 呼び出しを実行して生成するテストスイート) から変更することを意味するためです。
言い換えれば、デプロイせずにプログラムをテストする唯一の方法は、PYTHONPATH を、make スクリプトによってインストールされた deps とプログラムが使用するライブラリを含むディレクトリに設定して実行することです (前述のように、ダウンロード、コンパイルします)。一時ディレクトリにすべてを「インストール」します)。
展開時に、dep と実行可能ファイルは、完全に実行可能で再配置可能な「OSX バンドル」のような構造にパッケージ化されます。
編集:
もう少しフィードバックが得られるかどうかを確認するために、150 のバウンティを追加しました。
編集:
私はすべての回答に感謝し、それらすべてに投票しました。この選択は私にとって難しい選択でしたが、LudoMC によって、私がずっと前に研究したテストへの V モデル アプローチが思い起こされました。非常に良い答えをありがとう。
integration-testing - WatiN テスト データのリセット/クリーンアップ
現在、人々はどのようにデータをリセットしたり、WatiN/Wartir テストの残りのテストをクリーンアップしたりしているのでしょうか?
たとえば、ユーザーをシステムに追加するテストがあり、ユーザー名が一意である必要があるとします。明らかに、ユーザーなしでの最初の実行は正常に動作するはずですが、2 回目の実行は手動の介入なしでは失敗します。
ruby-on-rails - RESTful 認証プラグインを使用した Ruby on Rails の機能テスト
今日、Rails アプリの機能テストを書き始めました。RESTful 認証プラグインを使用しています。私はいくつかの紛らわしいことに遭遇しました.誰かが私のために明確にしてくれることを願っています.
1) Rails アプリのほとんどの機能で認証が必要なため、クイック ログイン機能を作成しました。
この関数で見られる問題は、基本的に認証を偽造することです。これについて心配する必要がありますか?本当の認証方法をどこかでテストする限り、このルートに進んでも大丈夫かもしれません。あるいは、これはひどい習慣かもしれません。
2) 2 つ目の紛らわしい点は、機能テストのいくつかの場所で、完全な認証プロセスを実行する必要があることです。ユーザーがアクティブ化されると、do_activate メソッドでユーザーの初期オブジェクトをいくつか作成します。それが理にかなっている場合、これは学生アプリケーション用の空白のノートブック オブジェクトとペン オブジェクトの作成に類似しています。
したがって、アプリケーションを適切にテストするには、ユーザーがそのアクティブ化状態に到達して、それらのオブジェクトが作成されるようにする必要があります。現在、Factory Girl を使用してユーザーを作成し、上記の login_as 関数を呼び出して認証を偽装しています。
もう 1 つのオプションは、完全な認証シーケンスをスキップして、Factory Girl で空白のオブジェクトを作成することだと思います。適切な認証を別の場所でテストできます。
どう思いますか?適切な手順を実行する必要がある場合、以下のコードで do_activate 関数が呼び出されないのはなぜですか?
ありがとうございました!