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


14

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

xdebugもありますが、関連するかどうかはわかりません。


5
隅々にある複雑なアプリケーションを再チェックするのにどれくらい時間がかかりますか?

@ user1249、phpUnitはまだ自動機能テストを実行できません。自動化された単体テストのみを行います。
Pacerier

回答:


12

phpunitは私にとって便利ですか?はいの場合、どのように?

はい、間違いなく。

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

自動化されたテストのすべての理由を列挙すると、さまざまな種類と技術が多すぎます。以下についてのリンクをチェックしてください:


皮肉なことに、オライリー404'dからの最初のリンク
フェリックスガニ

6

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

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

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

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

ここで皮肉なのは、操作のリストを機械的にステップスルーすることで、あなたがコンピューティングしているということです。あなたは、例えばコンピューターがやるよりもゆっくりとそれをしているだけです。

これは、他の多くの正当な理由の中でも、ユニットテストを作成する理由です。コンピューターが計算を行うため、ユーザーはテストを行う必要がありません。

包括的な単体テストスイートは、展開する前に週に一度だけではなく、開発中に頻繁に使用するのに十分な速さで実行できます。これにより、エラーをより迅速に検出でき、時間と費用を節約できます。

私もシステムの挙動を予測し、テストを書くことができ、その後(私はちょうどそれをテストしたので、私はすでに知っている正しい)その振る舞い、テスト駆動開発と呼ばれるプロセスを記述します。


5

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

単体テストは、コードが期待どおりに動作しているかどうかをテストするために使用されます(たとえば、Webサービスがエラーを適切に処理するか、期待どおりの結果を返すかなど)。

アプリケーションをクリックすると、アプリケーションの機能テストしています。

phpunitは私にとって便利ですか?はいの場合、どのように?

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


単体テストは動作もテストします。あなたは間違った二分法を作り出しています。
ラインヘンリッヒ

@ReinHenrichs、機能テストはPHPUnitではなくSeleniumによって行われます。
パセリエ

1

はい!

はい。はいぜったいに。

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

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

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

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

私が働いている会社では、それらに合格するコードを書く前に単体テストを書いています。これにより、適切なテスト可能なデザインを作成するのに役立ちます(実行する前に何を書くかを考える必要があるためです!)。また、コードがユーザーの要件を満たしていると断言する簡単な方法を提供します。

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