私は現在、ウェブサイトを維持するために多くの頭痛の種を抱えています。ほとんどの場合、数回の更新後に問題が発生します。このウェブサイトは、私たちのチームの 2 人の開発者によって開始され、その後私に引き継がれました。プロジェクトが中途半端なのを考えると、単体テストと受け入れテストを行ってもよいかどうか疑問に思っていました。
今テストを書くのに長い時間がかかりますか? それは実用的でしょうか、それとも他のテスト方法はありますか?
私は現在、ウェブサイトを維持するために多くの頭痛の種を抱えています。ほとんどの場合、数回の更新後に問題が発生します。このウェブサイトは、私たちのチームの 2 人の開発者によって開始され、その後私に引き継がれました。プロジェクトが中途半端なのを考えると、単体テストと受け入れテストを行ってもよいかどうか疑問に思っていました。
今テストを書くのに長い時間がかかりますか? それは実用的でしょうか、それとも他のテスト方法はありますか?
テストを導入するのは早すぎることはなく、テストを開始するのが早ければ早いほど、バグを見つけ始めるのも早くなります。
まず、2つの異なる観点からテストを行います。まず、ビジネスロジックやデータ処理などに使用されているかなりスタンドアロンのJavaクラスがある場合は、内部コードの問題を解決するために、それらのJUnitテストの作成を開始します。
次に、ビジネスで指定されたユースケースのテストを作成することを検討しています。ユースケースで指定されているように、テストでWebサイトとの相互作用を追跡する必要があるため、これらはSeleniumのようなもので実行される可能性があります。核心をJUnitテストの舞台裏に任せてください。これらは、機能の高レベルの確認です。
これらすべてには時間がかかり、管理者が数週間または数週間以上のテスト以外に何もできないことはありそうにありません。代わりに、それを処理するための最も可能性の高い方法は、あなたが行くようにそれを行うことです。テストを作成できるように、修正と新機能の見積もりを埋めてください。テストの作成には、特に記入を開始するときに50%以上の時間がかかる可能性があることに注意してください。さまざまなスイートを使用できるようになると、時間は少し遅れますが、それでも一部のテストはコードよりも記述が困難です。しかし、彼らはそれだけの価値があります。
私はデレクに同意します。遅すぎることはありません。テストのフレームワークを作成します。おそらく、統合テスト用に 1 つのプロジェクト、単体テスト用に 1 つのプロジェクトです。一日が遅いので、展開前にソリューションの健全性をテストできるようにする統合テストに集中してください。あなたはそれからすぐに利益を得るでしょう。バグが発生すると、これにより、バグをより簡単に再現し、修正をより迅速に作成するためのインフラストラクチャも提供されます。