2009-08-05 4 views
4

アーキテクチャをテストするにはどうすればよいですか?アーキテクチャがまだ形になっている間に実行できるテスト関連のことはありますか?アーキテクチャをテストするにはどうすればよいですか?

私は繰り返しを予定していますが、テストを考え始める前に、アーキテクチャ全体を完了させるのが待っていません。

更新: で使用されている方法でアーキテクチャという言葉を使用しています。

言い換えれば、このアーキテクチャでは、私のアーキテクチャは、さまざまなブロブがどのように相互作用するかを示す紙の山です(たとえば、1枚の紙には、解析/スライスアンドダイスを行うファサード主要なウェブサイトのアプリケーションと交渉する)。

後で、私はそれを公共のクラス/メソッドの点まで肉付けします。その後、私はプライベートメソッドシグネチャを書き出し、アルゴリズムで突き刺しますが、私は既にテキストの分類などの高レベルのものを探しています。

+1

"アーキテクチャ"の意味を明確にすることはできますか? –

答えて

2

通常、「アーキテクチャをテストする」テスト手段applicative and technical architecture(ビジネスとそれほどではない機能的なもの、とは対照的に、「試験」と「検証します」)。
これは「ユニットテスト」または「継続的統合」またはTDDのどちらかではなく、最初から最後まですべてのシステム(多くのモジュールで構成されています)をテストするブラックボックスアプローチです。

「アーキテクチャ」に関係する場合、専用のインフラストラクチャ(ネットワーク、展開対象に近いサーバー)を意味する「システム全体」のテストであることがよくあります。

あなたの最初の「建築」のテストを設計するときに、あなたが考慮に入れることができます。

  • あなたが最初に(回帰、ストレステスト、UATしたいテストの種類 - ユーザー受け入れテストを - - )?
  • これらのテストと最初の一連の要件の間で、どのようなトレーサビリティが必要ですか?
  • テストプラットフォームを簡単かつ迅速にセットアップまたは更新するために、どのようなデプロイメントプロセスを自動化する必要がありますか(特に、ベースが関与している場合、スキーマのアップグレードをどのように扱い、データをテストするか)。

これらのトピックはすべて、アーキテクチャが洗練されている間に、開始するとすぐに効率的に開発作業をサポートするために対処することができます。

0

反復処理を行う場合は、反復処理に必要な量だけ設計する必要があります。 Architectureは、ほとんどがdesignより1つ上のレイヤーと見なされます。つまり、クラス構造を設計する方法を決定するために、階層化されたMVCアーキテクチャを使用します。

テストすることができる機能やものを追加せずに最初の反復の全体的なプログラム構造を構築する場合は、何か問題があります。反復的なプロセスを進めることによるメリットの1つは、必要以上に多くの方向を設計しすぎることではないということです。

ビルドしたいプログラムを用意し、3つの最も重要な機能を実行します。それらを実装する方法とそのためのクラス構造を設計する方法について考えてみましょう。変化する可能性があることを考え、デザインで変更可能にする。その後、最初の反復を開始します。 最初の繰り返しを開始する前に、アーキテクチャーの選択について考えてください。クライアントサーバーベースのアーキテクチャーであるMVCを使用していますか?それらは、後の設計選択の影響を受ける選択肢です。

私は、http://en.wikipedia.org/wiki/Iterative_and_incremental_developmentとプランニングXP-Programmingケントベックからお勧めします。

0

ソフトウェアアーキテクチャベースのテスト技術

この論文は、アーキテクチャレベルでのアーキテクチャの関係をテストするため、実用的で効果的な、および自動化技術を提示します。また、テスト要件を生成する概念実証ツールを提供します。

http://cs.gmu.edu/~offutt/rsrch/JinDiss.pdf

1

あなたのアーキテクチャは正しいデザインドキュメントですか?

検査はあなたが望むものです。

検査では、テストだけでなくバグも検出できます。検査は「バグ」を早く見つけます。

知識のある人のグループの前にドキュメントを配置します。彼らにそれを読んで、問題がどこにあるか教えてもらうように依頼してください。文書を再作成して元に戻します。あなたが何をしているのかがあなたの知識豊かな聴衆に完全に明らかになるまで、このプロセスを続行し、すべてがそれがうまくいくと確信しています。

あなたのドキュメントは、読者がインタラクションを理解し、抽象的であってもその動作を見ることができる方法で書かれていることを望みます。

+0

ええ、私のアーキテクチャは、フォルダ内の紙の山です。 :) –

0

ATAMあなたが見なければならないものです。評価アーキテクチャのための方法です。重要なステップは、「シナリオ」、すなわち、システムが将来必要とされることがある基本的な事柄、変更または拡張された要件である。たとえば、システムを別のOSで実行しているとします。次に、これらのシナリオにアーキテクチャがどのように対応するかを評価します。

+0

これは、ATAMのものの一部のようなものですが、要件を収集し、今後のユーザーとの一定のコミュニケーションにとどまらず、オフィスを訪れて仕事を見ているなどの自然な結果です。 –

1

デザインルール#1:何かが簡単だとは考えないでください。システムが容易になると考えているのは、通常、コード化されるべきものの要件または範囲がまだ考えられていないことを意味します。

デザインルール#2:何かを設計してから、開発者に渡して、実際にコードを作成していない、またはまだそのテクノロジで作業していないときは簡単だと教えてください。

デザインルール#3:新技術は、すべての問題を解消する銀色の弾丸ではありません。新技術にはすべて統合の課題があり、多くのバグはベンダーによってまだ解決されていません。心の中でこれらのルールをベアリング

次の手順に従ってください。

は、技術的な仮定、未知の、および導入または検討されている新しい技術を定義します。

証明されていない、つまりあなたやチームがこれまでに働いていなかったものを検証します。白書やベンダーのプレスリリースを読むことはカウントされません。これまでに行われていなかったことや新しい方法で使用されていることがあれば、システムを構築する前に動作することを確認してください。

ハードコードされたスローアウェイプロトタイプを構築して、システムのやりとりを検証し、未知数を最小限の回避策で解決できるかどうかを確認します。あなたのアーキテクチャーを消費するブラックホールになる前に、動作していないプランを削除し、それを行う別の方法を見つけてください。

+0

完全一致。関連する唯一の銀色の弾丸は本のタイトルのものです。 –

関連する問題