機能試験だけですべて表形式データの描画されるブラウザには、一つのDB?
質問
ようにテスト計画のためのウェブサイトの一部試験的には、以下のパス:
- ヒット要求されたURIのデータを取得します描画される内部テーブル(20列ります。
- データベースのクエリを取得しているデータが表示される。
- を比較し、2つのデータが一行ごと、彼らが一致している必要があります。
ここは正しい方向での機能の実験をしていますか?また、Ajaxの要求、どういう扱いになるのでしょうか答えます。その答えが異なるための統合の実験をしていますか?
しているのか教えてくださいこうと考えて間違ったか....が必要とのご意見を!
解決
はい、これは生産性テストである可能性があります。あなたは、固定されたデータセットを持っているか、あなたにはありませんどちらか。
あなたが固定されたデータセットを持っている場合は、あなたがやっているすべては、固定された出力と比較されている場合ので、、これは、テストする方がはるかに簡単です。
あなたが固定されたデータセットを持っていない場合は、、あなたは効果的にすでに開発者によって行われた作業を複製し、ビジネスロジックを複製する必要があります。その後、維持するためのロジックの2セットを持っています。
あなたが同じことをやっての二つの方法、仕様やコードの効果的ピアレビューを取得するため、二つ目は最善のアプローチです。これは、ほとんどの人は、固定データセットを持っていることを選択する理由である、時間とリソースの面でも非常に高価です。
、あなたの質問に答えるために、クエリ内のビジネスロジックがシンプルであれば、あなたは非常に簡単にテストを得ることができます。あなたは非常に多くのテストされていないので、しかし、テストがもたらす価値は、素晴らしいではありません。
ビジネス・ロジックが複雑な場合、あなたはテストからより多くの価値を得ているが、長期的に維持することが難しいことになるだろう。
私にとっては、どのようなテストがもたらすないと、システムは、データベースから正確に読み取り、データを正しく表示することを証明シンプルな統合テストです。これは、それが自動化されていても良くならば、良いテストです。
他のヒント
これは、機能テストのための罰金です。私の心の中で統合テストは、機能テストよりも、一般的に広いである一緒に動作するようになっている異なる技術やコンポーネントのテストに関係しています。しかし、もちろん、テストのこの種はまた、アプリケーションが一緒に入れて、どこでテストが開発のライフサイクルで起こっているかに応じて、統合テストと考えられます。例えば、それは、このサイトが動作するためには、あなたが一緒に独立して開発されたいくつかのコンポーネントを配置する必要があることであってもよく、これは、統合が動作することを検証する試験の一つかもしれません。
このことアヤックスかどうかは、答えは異なる作りとは何かを持っているかを確認しないでください。
まるで反対意見がんを考えることは生産的なテストです。うな複製のコードを生み出すと、ページがめくれます。当時を導入している重複コードも全部門)きを見る欠陥を促す長期にわたります。
でよりもはるかに優れておりへの負荷のDB知られるデータのいずれかによって、アプリ、または直接トレージエンジンはインデックスの出力に合うります。プロフェッショナルを育てることをおDB層又はDBでもなを変更したデータはない。
るには:
- 負荷知られるデータ(好ましくは、アプリ自体)
- 荷重要求されたURI
- チェック表示データマッチすることに
試験のこの種の比較的少ないテスター労力で大きなデータセットをテストするために良いかもしれません。私たちのチームは多くの機会でこれを行っている、それは予想通り、実際のシナリオが扱われていることを確認するために我々のテストを通じて、実際の生産大量のデータを実行するために特に便利です。 null値、特殊文字、およびその他の奇妙 - あなたはDBで、ウェブページ上の異なる方法で処理することは特にそうかもしれない稀なシナリオのための少なくとも少し固定入力テストを行うことを確認してください。
あなたは、「機能テスト」DBの統合とウェブサイトをテストし、されていないので、個人的に、私は、この「統合テスト」を呼ぶだろう。 「機能テスト」について、私はおそらくあなたが期待する形式のデータの事前書かれたセットを提供しますデータソース(例えば、データベース)のモックを作りたいと思います。
私はDBのデータの妥当性で高い信頼性を持っていたし、DBのクエリやウェブページ表示間のロジックは非常に小さく、低リスクだった場合、私はおそらくモックを気にしないだろうとした場合、そのと述べました統合テストは、同様の機能をカバーしてみましょう。私は別に機能との統合をテストすると、この場合には大きな品質の勝利になることを知っていない、とあなたが利用できるテスト時間で行うことができそうな、より良いものがあります。このデータの周りのロジックがたくさんある場合は、おそらく機能とは別に統合をテストする必要があります。 「データベースに到達できない場合はどう?」追加の統合テストは、おそらく、のようなものが含まれるであろうそして「データベースが遅い場合は、どうしたら?」ます。
この技術はアヤックスで動作しますが、、あなたのテストツールは、アヤックスで動作することを確認してください。具体的には、データベースのクエリ結果をキャプチャしますし、どのようにWebページに表示される結果を収集する方法を考えます。
私はあなたがこのテスト計画におけるテストのちょうど1種類であったことを述べたので、クエリ内のデータの有効性は、他の場所でテストされていると仮定しています。私もちょうどのデータベースとこのレポートのではなく、他の機能や構成部品ではなく、テストの他の側面との統合を議論しています(パフォーマンス、セキュリティ。など)、以来、それは、あなたの質問の範囲だった。