QA@IT

Webプログラムのtestってどうしてますか??

2358 PV

Web画面を作った際のテストってどうしてますか??
例えばsymfonyですと

テストケース作って

phpunit -c app/

で一通り出来るっぽいです。

何が聞きたいかって言いますと、seleniumのwebdriverも使ってテストするのか
まずは、上記コマンドで動くことを確認した後、webdriverのテストに移る感じでしょうか??
か、画面のテストは企画にお任せ!みたいなこともあるのかなと

いかがでしょうか
よろしくお願いします

回答

phpUnitにしてもSeleniumやその他UIテスト自動化ツールにしてもテストにあたっての補助ツールですので、それ以上のテストが必要かどうか(そのテストで求めていたテストがカバーできているか)は品質基準や要件に従ってプロジェクト毎に判断する必要があると思います。
画面のテストを他者にまかせるかどうかはプロジェクトの方針でしょうから何とも言えません。

symfony+phpunitでもテスト用のWebクライアントを使って出力されたHTML(というかDOM)を元に要素が存在するかといったテストは可能だと思いますが、実際のブラウザを用いてレンダリングされた訳ではありません。しかし、パーツでテストできるのでアプリケーションがまだ完成しておらずブラウザから動作確認できない段階から個別にテストできるというメリットがあります。

Seleniumで実際のブラウザ上でテストを行えればより実際の環境に近いテストが可能ですが、自動化するには作成やメンテナンスのコストの高いテストもあるでしょう(ユーザー体験、文字がきちんと収まっているか、「もうちょっと赤っぽく」の様な色味の善し悪しやアニメーションの速度など曖昧さが絡むものなど)。
逆に画面上に現れない要素に対して要素が存在するかを確認したり、人間が監視するには短すぎるタイミングのテストにはテストコードなどで自動化できた方が速くて楽な場面も多々あります。

すべてが低コストに自動化できるならすべて自動化したいところですが、上に一例をあげた様に自動化に適している部分、適さない部分はあると思います。
ですので、向き不向きを考慮しながらテストを自動化した方が楽になる部分を自動化し、自動化するのは大変な部分、自動化したテストだけでは不安が残る部分は手動で行うといった観点で見てみてはどうでしょうか。

一度作れば同じテストが即座に何度でも実行可能な点はテスト自動化における一般的なメリットとしてあげられますので、テストコードの作成のコストを考える場合はその辺りも差し引いてみてください。

編集 履歴 (0)
  • ありがとうございます!参考になりました! -
ウォッチ

この質問への回答やコメントをメールでお知らせします。