web-dev-qa-db-ja.com

従来の手動テストを使用できるのにphpunitを使用する理由

Webアプリを作成するときは、ブラウザーで作業をテストして、エラーが発生するかどうかを確認し、修正します。私は複雑なアプリケーションを作成し、この方法でのテストは簡単かつ高速でした。私はphpunitに関してyoutubeで多くのビデオを見ました、そしてその目的を見つけることができません。このライブラリはなぜ便利なのですか? phpunitは、cakephpやzendのようなphp framworksの方が多いですか?私はコアphpだけのフレームワークを使用しません。 phpunitは私にとって便利でしょうか?はいの場合、どのように?

Xdebugもありますが、関連しているかどうかはわかりません。

14
Sarmen B.

Phpunitは私にとって便利でしょうか?はいの場合、どのように?

はい、間違いなく。

phpunitは xUnitテストライブラリ のファミリーに属しています。これらのライブラリを使用して、アプリケーションの動作を検証する自動的に実行可能なテストを作成します。これは、特に、変更によって既存の機能が損なわれないようにするために重要です。

自動テストのすべての理由を列挙すると、さまざまな種類とテクノロジーが多すぎます。以下のリンクをチェックして、読んでください。

12
BenR

デプロイするたびに手動でアプリケーションをテストしたいとします。どうやってそれをやりますか?

最初に、テストしたいものすべてのリストを作成して、後で何かをテストすることを忘れないようにすることができます。次に、各テストの手順を記述して、毎回同じ方法で実行したことを確認します。使用したテストプロセスが一貫していることを確認しなかった場合、結果は一貫していません。

これで、実行する必要のあるテストのリストが用意できたので、ブラウザーを開き、最初のテストの手順を読んで実行し、結果を書き留めます。リスト内のテストごとにこのプロセスを繰り返します。

実行するテストの数は、アプリケーションの増加や新しいバグの発見に伴って増加し続けます。もちろん、これらのテストは人間の速度で実行することに限定され、かなり遅くなります。

ここでの皮肉なのは、操作のリストを機械的にステップ実行するときに、計算しているということです。たとえば、コンピュータよりもゆっくりと実行しているだけです。

これが、他の多くの正当な理由の中でも特に、ユニットテストを作成する理由です。これにより、コンピュータにコンピューティングを実行させることができるため、ユーザーが実行する必要はありません。

包括的なユニットテストスイートは、展開前に週に1回だけでなく、開発中に頻繁に使用できるほど速く実行できます。これにより、エラーをより迅速に検出でき、時間と費用を節約できます。

システムの動作を予測するテストを作成して、テスト駆動開発と呼ばれるプロセスであるその後の動作を作成することもできます(これはテストしたばかりなので、既に正しいことです)。

6
Rein Henrichs

手動テスト(つまり、ブラウザーでアプリケーションをクリックする)は、実際には機能テストと呼ばれます。機能テストと単体テストは、QAで使用される2つの異なる方法です。なぜ両方を使用できないと思いますか?

nit Testingは、codeが期待どおりに機能するかどうかをテストするために使用されます(たとえば、Webサービスがエラーを適切に処理するか、期待どおりに結果を返すか)。

アプリケーションをクリックすると、あなたはtesting機能アプリケーションになります。

Phpunitは私にとって便利でしょうか?はいの場合、どのように?

ユニットテストには多くの利点があります。コードが期待どおりに機能していることを確認できるため、リファクタリングの際に非常に役立つツールです。また、誰かがあなたのコードを読んでいるとき、単体テストでコードの意図された使用法を確認することは非常に役に立ちます。

5
Christian P

はい!

はい。はいぜったいに。

実際には、資格が必要です。 PHPunitのようなユニットテストフレームワークは、他の人が使用することが予想されるアプリケーションを作成して保守している場合に役立ちます。

単体テストが役立つ理由には、

  • 公開した特定のバグの回帰テスト、および

  • 単体テストの実行は手動テストよりもはるかに高速であるため、はるかに徹底的に行うことができます。

私が働いている会社では、ユニットテストを記述してから、それらを渡すコードを記述しています。これにより、適切でテスト可能なデザインを作成することができ(作成する前に何を書くかについて考える必要があるため)、コードがユーザーの要件を満たしていることを簡単に表明する方法が提供されます。

1
user14609