1

私は、UnixとWindowsの両方のオペレーティングシステムでさまざまなプログラミング言語で記述されたさまざまなアプリケーションを組み合わせたプロジェクトの最新メンバーです。これらのさまざまなアプリすべてに夜間の回帰ビルド/テストを実装する方法を理解するという「名誉」を得ることができます。

残念ながら、これらのアプリはTDDの原則に基づいて構築されておらず、重要な単体テストフレームワークはありません。私の本能は、車輪の再発明を避け、この夜間テストアーキテクチャで可能な限り多くのコードを再利用する方法を見つけるために「試みる」ことを叫んでいます。

複数のオペレーティングシステムで複数の言語に直面したときに、できるだけ多くのコードを共有するテストケースを作成するにはどうすればよいでしょうか。また、すべてのアプリがWebサービスまたはWebアプリであるとは限らないという事実が複雑になっています。

私の唯一の結論は、テストドライバーとテストケースは各アプリに固有である必要があり、コードを大幅に再利用することはできないということです。

この質問をするための迅速なキックインザヘッドを提供するための提案や提案は歓迎され、感謝されます:)

4

3 に答える 3

1

これは私が前に見たタフなものです。最終的にはこの点について決断を下さなければならないと思いますが、そもそも少し違うアプローチが役立つかもしれません。このアプリは出回っているようです。最も頻繁に発生するタイプのバグを見つけるために調査できるバグベースが1つ以上存在する必要があります。一般に、アプリには欠陥が最も発生しやすい側面があり、そこでいくつかのテストスクリプトから始めます。基本的に、最も生産性の高いバグレポートを古い方法でリグレッションし、これらのスクリプトを古い方法でつなぎ合わせます。

このアプリを知って、上記を実行した直後にそれを知ると、テストするためのより壮大で、保守が容易なハーネスまたはアプリを思い付くことができます。お役に立てれば。

于 2008-12-22T16:11:51.933 に答える
0

ちょうど私の2セントの価値...

私が理解している限り、全体規模の開発者テストを比較的うまく実装するには、開発全体がテスト コードの作成に関与する必要があります。

おそらく、さまざまなアプリやサービスへの共通のインターフェイスを容易にすることができれば、ある程度の前進が見込めます.

于 2008-12-22T16:14:32.287 に答える
0

あなたのケースでそれがどれほど実現可能かを伝えるのは難しいです...しかし、おそらくテキストファイルまたはXMLを使用して、パラメーター、期待される出力、期待される各種ケースのリターンコード等。このようにして、これらのテスト ケースが複数の OS/環境で有効な場合、環境ごとにテスト ケースを 1 回実行するコードを実装できますが、すべてのテスト ケースを再利用できます。

もちろん、テストする必要があるインターフェース/スクリプト/アプリの複雑さと、テスト ケースをデータで表現するのがどれほど簡単かによって、マイレージは異なる場合があります。

テスト ケースの作成に関しては、以前は、「テスト容易性」を考慮して作成されていない古い「レガシー」コードのテストを作成する責任も負っていました。私はアンドリューの提案が好きです。以前のバグ/リグレッション データを使用すると、費用対効果が最も高いテストを見つけるのに役立ちます。チームに新しいエンジニアリング プロセスを実装することもお勧めします。今後修正される新しいバグ/問題/リグレッションごとに、問題をキャッチしたテスト ケースを追加してみてください。これは、関連性が証明されている一連のテスト ケースを作成するのに役立ちます...

于 2008-12-25T04:44:05.690 に答える