問題タブ [regression-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaベースの回帰テスト
Javaで回帰テストはどのように実行されますか?自動化された回帰テストフレームワークはありますか、それとも回帰を防ぐのに役立つ(JUnit)単体テストを作成するだけですか?
単体テストをコーディングして、回帰テストという2つの目的も果たす方法または一連のベストプラクティスはありますか、それとも回帰テストを単体テストとは別にしておく必要がありますか?
java - 回帰テスト スイートを自動的に生成できますか?
Zimbra 6 から Zimbra 7 へのアップグレードを検討しており、統合するために作成したアカウント ライフサイクル ソフトウェアのリグレッションを回避したいと考えています。ほとんどのことは WSDL ファイルによって文書化されているため、それを使用してテストすることだけを考えていました。
私が疑問に思っているのは、API 定義と 2 つのターゲット サーバーを使用してテスト スイートを作成する方法はあるのでしょうか?
unit-testing - 単体テスト?統合テスト?回帰テスト?検収試験?
TDDまたは単体テストを行うときに区別するのが難しいと思うので、これらのレベルのテストを明確に定義できる人はいますか?誰かがこれらをいつ、どのように実装するかを詳しく説明できるかどうか教えてください。
jenkins - VHDL テスト結果を jUnit (またはその他の Jenkins が認識する) 形式に変換
ここで説明されているように、FPGA プロジェクトの自動回帰テストをセットアップしています。
REPORT
ここで、( ModelSim シミュレーションの VHDL ステートメントから) テスト結果を取得して、Jenkins テスト レポートに表示したいと考えています。私の理解では、Jenkins は jUnit 形式のみをネイティブにサポートしており、非 XML 形式をサポートするプラグインを探しましたが、何も見つかりませんでした。
重大度によってはシミュレーションがすぐに終了する可能性があるため、VHDL REPORT ステートメントから有効な XML を生成することは非常に困難です。つまり、すべてのテストのすべての出口パスで終了タグを複製する必要があり、最も保守しやすいアプローチではありません。
では、プレーン テキストを jUnit (または Jenkins でサポートされている場合は別の形式) に変換する簡単な方法を知っていますか? まだ何かが存在しない場合、Jenkins プラグインを作成することと、単に perl スクリプトを一緒に投げることに利点はありますか? 他の提案はありますか?
c# - C#で変更されたメソッドを取得するにはどうすればよいですか?
ここ数週間、ビルド プロセスの回帰テストを実装する (または実装した人を見つける) 方法を見つけようとしましたが、これまでのところ、機能するものは見つかりませんでした。TFS2008 と VS2010 を使用しており、TFS2010 へのアップグレードはオプションではありません。NDepend を使用して、変更されたメソッドと型の依存関係のリストを取得しようとしましたが、ビルド スクリプトを使用してそれを実行すると、非常に信頼性が低いことがわかりました (何も変更せずに同じビルドを 2 回実行したとしても、1 つが完璧であっても驚かないでしょう)。 NDepend レポート、および NDepend が何らかの理由で実行できないという 1 つの例外)。
残念ながら、私は自分が持っているツール (TFS2008、VS2010、MSBuild、および MSTest) にかなりこだわっています。おそらく別のツールを入手できますが、既に持っているツールを変更する (MSTest から NUnit に、または TFS2008 から TFS2010 に移動するなど) ことはできません。
誰かがすでにこれを行っていますか?または、誰かが私を正しい方向に向けて、プログラムで2つのビルド間で変更されたメソッドとタイプを見つけることができますか?
javascript - QUnitモジュール内のすべてのテストが完了したことを検出する方法は?
テストの順序付けと、テストの中断を防ぐため。
また、モジュールまたはテストを途中で停止し、QUnit (すべての履歴結果を含む) をリセットする方法はありますか?
QUnit.moduleDone は、モジュールを完全にテストするために試した唯一のものでした。ただし、モジュール全体だけでなく、モジュール内のすべてのテストに適用されます。
java - Java での自動実行時パフォーマンス回帰テスト
コードの実行時パフォーマンスの変化を自動的に検出する方法を探しています。これは JUnit と同じように動作しますが、コードの機能をテストする代わりに、速度の急激な変化をテストします。私の知る限り、これを自動的に行うツールは現在ありません。
したがって、最初の質問は次のとおりです。これを実行できるツールはありますか?
次に 2 番目の質問は次のとおりです。使用できるツールがなく、自分で作成する必要がある場合、対処する必要がある問題は何ですか?
2 番目の質問が該当する場合、私が目にする問題は次のとおりです。
- 実行環境によって変動します。
- Java のマイクロ ベンチマークには大きなばらつきがあるため、変更を検出するにはどうすればよいですか。
- Caliper が結果を収集する場合、結果をカスタム形式で保存できるように Caliper から結果を取得する方法。キャリバーのドキュメントが不足しています。
python - Mercurial:コミットごとにリモート回帰テストを自動的に実行する
うまくいくと思う変更を加えるたびにコミットします。コミットする前に大規模なテストを行うことはありません。また、コミットはまもなく自動的にリモートリポジトリにプッシュされます。(私は唯一の開発者であり、機能を追加したり、コードの一部を1日に何度も書き直したりする必要があります。)
何かをコミットするたびに回帰テストを自動的に実行するようにリモートコンピューターをセットアップしたいと思います。その後、違いのレポートをメールで返信してください。
これを設定する最も簡単な方法は何ですか?
私のコードはすべてPython3です。私自身のシステムはWindows7、ActiveState Python、TortoiseHG、およびWingIDEです。リモートコンピューターをLinuxまたはWindowsとしてセットアップできます。アプリケーションはすべてコマンドラインであり、テキストの入力と出力があります。
python - Pythonでアプリ全体を回帰テストする
私は小さなコマンドラインアプリケーション(約6k行)を持っています。書き方がわからなかったので、単体テストはありません。しかし、私は今遡及的にいくつかを追加しています。このチュートリアルを読みましたが、このモジュールを使用してアプリケーション全体をテストする方法については戸惑いました。実際、私がやりたいことが「ユニットテスト」と呼ばれるかどうかさえわかりません。
具体的には、特定のパラメーターを使用してアプリケーションを実行すると、特定の出力ファイルが生成されることになっています。これらの出力ファイルが変更されていないことを確認したいと思います。
つまり、私のアプリケーションの次のコマンドライン呼び出し:
いくつかの小さな出力テキストファイル(それぞれ<10 MB)を作成し、次のような名前の個別のフォルダー(呼び出しごとに1つ)に配置します。
各フォルダには、いくつかの小さなテキストファイル(それぞれ<10MB)が含まれています。コードを変更するたびに、数十のコマンドラインパラメーターを使用してアプリケーションを実行し、出力ファイルが異なる場合に注意したいと思います。(理想的には、それ以上のことをしたいと思います。たとえば、一部の出力ファイルについては、特定の主キーを持つタブ区切りのテーブルとして比較し、行の順序が変更された場合でも同等と評価されるようにします。ただし、そうではありません。致命的)。
これを設定する良い方法は何ですか?
python - 「test oracle」が非公式の出力比較である場合の回帰テスト
私は、特定のトピックに関するアドバイスを提供する Python プログラムを維持しています。これは、複雑なアルゴリズムを入力データに適用することによって行われます。
プログラム コードは定期的に変更され、新たに発見されたバグを解決し、基礎となるアルゴリズムを変更します。
回帰テストを使用したい。問題は、プログラムを実行する以外に、特定の入力に対する「正しい」出力が何であるかを知る方法がないことです (それでも、バグがない場合のみ)。
以下に、現在のテスト プロセスについて説明します。私の質問は、このプロセスを自動化するのに役立つツールがあるかどうかです (もちろん、私が行っていることについて他のフィードバックがある場合)。
すべての入力ケースでプログラムが最初に正しく実行されたように見えたとき、「検証済み」出力用に指定したフォルダーに出力を保存しました。「検証済み」とは、出力が、私の知る限り、プログラムの特定のバージョンに対して正しいことを意味します。
バグを見つけたら、それを修正できると思われる変更を加えます。次に、すべての入力セットでプログラムを再実行し、手動で出力を比較します。出力が変更されるたびに、私はそれらの変更を非公式にレビューし、次のことを確認するように最善を尽くします。
- 変更がバグ修正のみによるものである、または
- 変更は、少なくとも部分的には、私が導入した新しいバグによるものです
ケース 1 では、内部バージョン カウンターをインクリメントします。出力ファイルにバージョン カウンターと同じサフィックスを付けて、「検証済み」フォルダーに移動します。次に、変更を Mercurial リポジトリにコミットします。
将来、このバージョンが最新ではなくなったときに分岐することにした場合、これらの検証済みの出力が、この特定のバージョンの「正しい」出力として必要になります。
ケース 2 の場合、もちろん、新たに導入されたバグを見つけて修正しようとします。このプロセスは、以前の検証済みバージョンに対する唯一の変更が意図したバグ修正によるものであると確信できるまで続きます。
コードを変更してアルゴリズムを変更する場合も、同様のプロセスに従います。