6

ソースコード (バイトコードではない) レベルで Java プログラム内でミューテーションを作成するために使用できるツールを提案できる人はいますか? ソース コードにエラーをシードする必要があります。存在する場合は、GUI を備えたアプリケーションを好みます。

4

7 に答える 7

4

PIT Mutation Testing ツールを見つけました。これは非常に気に入っています。MuJava では、@Override アノテーションが原因で例外が発生します。Java 5/6 をサポートしていないようです。

于 2011-06-27T17:40:31.147 に答える
3

これは、オープンソースのテストカバレッジツールであるJesterが使用する手法です。適切なツールが見つからず、自分で作成したい場合は、ソースを確認すると役立つ場合があります。

于 2011-06-27T02:01:06.733 に答える
3

あなたの要件が本当にソースコードの変更である場合、私が知っているオプションは

Jester - 非常に不安定な限られた数のミューテーション オペレータを提供します. Jeff Offutt は、ブランチ テストを適用するには非常に費用がかかる方法だと説明しました。ただし、独自の演算子を定義することは可能だと思うので、これはおそらく完全に公平ではありません。

Mu Java - Java 5 をサポートしていません

ジュディ - 存在すること以外はあまり知らない

Lava - かなり基本的な音で、Java 5 をサポートしているとは思わない

さらに下の回答から、あなたが現在PITを使用していることがわかります。それは本当に素晴らしい選択だと思います (私が書いたので、特定の偏りがあるかもしれません) が、これはバイト コードのミューテーション システムです。

于 2011-06-28T18:42:02.610 に答える
3

GMU でテストに関するソフトウェア エンジニアリングのクラスを受講したとき、章の 1 つでMu Java を使用しました。HTH

于 2011-06-27T01:11:10.353 に答える
2

「これは現実の世界ではほとんど適用されません」。私は英国の非常に大きなメディア会社と契約しており、PIT ( http://pitest.org/ ) は変異テストに非常に役立ちます。ほとんどの CI ビルドは、85% のカバレッジ PIT 変異テストなしで失敗するように設定されています。Re: 「いくつかのランダムな文字を置き換えています...」 突然変異は必ずしもそれを意味する必要はありません。PIT ミューテーションは、コンパイル可能な変更に制限されています。

于 2013-12-12T17:34:09.177 に答える
1

Major ミューテーション フレームワーク ( Major の Web サイト) は、コンパイラに統合されたミューテーターと、JUnit テスト用のミューテーション アナライザーを提供します。

Major の mutator は Java 7 コンパイラに統合されています。いくつかのミューテーション オペレータを提供し、ソース コードをミューテーションするための 2 つのオプションをサポートします。

  1. コンパイル中にすべてのミュータントを生成して埋め込む
  2. 変異体を生成し、変異したソース ファイルをエクスポートする
于 2014-06-18T09:00:46.220 に答える
1

ここにベンチマークがあります:

MμClipse は JUnit 3 のみをサポートしており、現在はメンテナンスされていません。Jester は手間がかかり、複雑な構成が必要です。plus はもう維持されていません。私が見つけることができる最高のツールは Javalanche です。これについては記事全体を書いています。

于 2012-03-10T10:57:08.033 に答える