問題タブ [mutation-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.
ruby - ミュータントはテスト例を見つけられません
「hexx-null」gemにはファイルがあります:
RSpec 仕様ファイルは次のとおりです。
次に、gem ルートからミュータントを実行します。
結果は次のとおりです。
ミュータントは例を見つけられないようですが、なぜですか?
java - コマンドラインから Pitest を実行する
Pitest のドキュメントによると、これは単純なはずですが、問題が発生しています。持てるはず
しかし、「<your classpath>」など、私のプロジェクトにとってこれらのいくつかがどうあるべきかわかりません。
私のプロジェクトのファイル構造は次のようになります。
最終的には、これを .bat ファイルに入れて、CI の TeamCity で実行したいと考えています。
どんな助けでも大歓迎です!
java - 自動注入されたフィールドを持つメソッドを使用する必要がある場合に、ミューテーションが強制終了されない
私は次のものを持っています:
そして次のテスト:
予想通り、テストはパスします。PITで実行すると、次の結果が得られます
クラス コードの 33 行目が強調表示されています。
調べた検査は以下の通りです。
my.package.UnsetPropertyTest.testCallsSetPropertyWithCorrectParameters(my.package.UnsetPropertyTest)
(32ミリ秒)my.package.UnsetPropertyTest.testUnsetThrowsForIncorrectNumberOfParameters(my.package.UnsetPropertyTest)
(3 ミリ秒)
今:
- テスト呼び出しパラメーター (
args
) を変更すると、テストが失敗します。予想通り - アサーション (
verify(setProperty).setProperty(...)
) 引数を変更すると、テストが失敗します。予想通り。 - 最初のコード ブロックで強調表示されている関数呼び出しを手動でコメント アウトすると、テストが失敗します。
なぜ突然変異は生き残るのですか?
Java 8、Mockito 1.9.5、および PIT 1.1.4 を使用しています。
ruby-on-rails - ミュータント障害について
次の ActiveRecord モデル クラス メソッドがあります。
このメソッドに対して Mutant を実行すると、17 個のミューテーションがあり、テストの実行後も 16 個がまだ「生きている」と言われます。
「ライブ」ミューテーションの 1 つを次に示します。
これと同じ変更を手動で行うと、テストは失敗します-予想どおりです。
だから私の質問は、この突然変異を「殺す」単体テストをどのように書くのですか?
java - カバレッジではなく、テスト機能を示す JUnit レポート
チーム リーダーの問題の 1 つは、チームのメンバー (時には私自身も含む) が、テスト機能なしで JUnit テストを作成することがよくあることです。
開発者は JUnit テストをハーネスとして使用して、コーディングしているアプリケーションの一部を起動し、意図的または忘れてアサート テストやモック検証なしでチェックインするだけなので、簡単に実行できます。
その後、テストが不完全であることを忘れてしまいますが、テストは成功し、優れたコード カバレッジが生成されます。アプリケーションを実行してデータをフィードすると、Cobertura または Jacoco から高いコード カバレッジ統計が作成されますが、爆発せずに実行する機能以外は何もテストされていません。テスト。
テストコードを頻繁にレビューする必要がないように、テストをテストするレポートツールはありますか?
テスト中のコード (if 句など) を変更してテストを再実行し、テストが中断されるかどうかを確認することでテストをテストするJesterを見つけて、一時的に興奮しました。
ただし、これは CI サーバーで実行するように設定できるものではありません。コマンド ラインで設定する必要があり、GUI を表示せずに実行することはできず、GUI に結果を出力するだけで、実行には時間がかかります。
java - JUnit テストはパスするが、PIT はスイートがグリーンではないと言う
PIT ミューテーション テストを実行しようとすると、次のエラーが表示されます。
MutationCoverage が失敗しました: ライン カバレッジを計算するときに、すべてのテストが突然変異なしではパスしませんでした。ミューテーション テストにはグリーン スイートが必要です。
通常のテスト ビルドを実行するとテストは正常に実行されますが、ミューテーション テスト フェーズを実行すると失敗する可能性がありますが、その理由についての詳細は提供されていません。PIT テストの FAQに記載されている理由を確認しましたが、何が問題なのかまだわかりません。
私は試した:
- -Dthreads=1 オプションを追加して、マルチスレッドの問題を解決する
- 失敗しているいくつかのテストに固有のシステム プロパティを見つけることができませんでした
- テストは通常の実行では無視されません
他に試してみるべきことは何ですか?または、ここで何が起こっているのかをデバッグする他の方法はありますか?
java - µJava はミュータントを殺しませんか?
Java プログラムの突然変異テストにµJavaを使用しています。私は突然変異テストを学んでいるので。
私は2つのクラスを持っています
1 : 親
および 2 : 子
そして、muJavaのIOD操作を適用しています。`したがって、それは変異体を生成しています。子クラスのオーバーライドされたメソッド printTemp を削除しています。
私のテストケースは:
しかし、 Mutation Testing を実行していると、変異体が生きていることがわかりました。殺したい!私に何ができる ??
gruntjs - NodeJS の gulp を使用した変異テスト
grunt-mutation-testing に似た gulp を使用したミューテーション テストに使用できるノード モジュールはありますか?
gulp タスクを使用してミューテーション カバレッジを報告していますが、資料が見つかりません。