2016-09-14 10 views
2

私はC#で新しいプロジェクトを開始しています。私は突然変異検査を行うのに役立つツールを探しています。私は以前にpitestを使用してJavaで突然変異検査を行っており、とても好きでした。 私はこのようなC#用のツールを探していますが、唯一のものは過去数年間は更新されていないか、アルファベット/ベータでまだ (creamninjaTurtlesNester)です。C#の突然変異検査ツール

信頼性が高く、2010年以降にリリースされたツールで使用できるツールはありますか?

編集: この質問は、What mutation-testing frameworks exist? [closed]の重複であると言われることがあります。その質問のみが現在8歳であり、そこで論じられているツールのほとんどは、ほとんどが過去6〜8年間に更新されていないため、使用できません。

+0

ネストは、私が(必要なVisual Studio 2005の)話していたものでした。 VisualMutator.Netで必要な作業をすべて行えることを願っています。 –

+0

もう1つの質問が期限切れであっても、質問が重複してしまうことはありません。特に、あなたの質問がトピックではないので:_ "オントロジと迷惑メールを引き付ける傾向があるので、Stack Overflowのトピック、ツール、ソフトウェアライブラリ、チュートリアル、またはその他のオフサイトリソースを推奨するかどうかを質問する質問は、代わりに、問題を説明し、それを解決するために今まで何が行われているか」。 –

答えて

4

次のVisual Studio 2013拡張機能を使用して成功しました。VisualMutator.Net。これは、他の変異ツールがVisual Studio 2005を必要としていたか、あるいは他の古いソフトウェア/フレームワークなどが必要だったからです。ここ

より:

Tests that can be runned

TestingExample.Testsが変異されます。http://visualmutator.github.io/web/

あなたは基本的に以下のようなUIを取得します。おそらく、あなたはすでにあなたがミュータンスの次のリストへのアクセスを持って、あなたのプロジェクトがProject & Project.Tests を構造化があります。

ISD(ISK) - スーパー/ベースキーワード削除

演算子に属するメソッドをオーバーロードでは、基本クラスのメソッドの呼び出しを削除します継承メソッド。

DMC - 委任方法の変更

オペレーターは、同様のシグネチャを持つ別の一つに委任を処理する方法を変更します。

DEH - 変更

オペレータをイベント処理のための方法委任は、エラー処理からメソッドを追加または削除コールを変更します。 EAM、

EMM - アクセサ、モディファイ方法の変更

演算子は、同じタイプの別のプロパティの呼び出しにクラスのプロパティの呼び出しを変更します。 EHR - 最終的にはそこに別の漁獲量が存在する場合、または

例外ハンドラの削除

オペレータは、catchブロックを削除します。

EHC - 変更

演算子を例外処理は、キャッチした例外をスローにcatchブロックの本体を変更します。

EXS - 例外は、現在のメソッドを離れることができないように

演算子を飲み込む例外は、空のブロックキャッチ(例外e)を追加します。

JTI、JTD - このキーワードの挿入、削除

同じ名前のローカル変数が存在する場合オペレータは、このキーワードを追加または削除。

JID - メンバ変数の初期化削除(フィールドの初期設定削除)オペレータは、適切な値を持つクラスのフィールドの

初期化を削除します。

MCI - メンバーコール別のオブジェクトの同じメソッドを呼び出すにオブジェクトのメソッドの呼び出し別の継承クラス

オペレータの変化から。

PRV - その他の互換性のある型を有する参照割り当て別の互換性のあるオブジェクトを割り当てるに参照に特定のオブジェクトを割り当てる

オペレータ変化します。

標準演算子:

AOR - このグループから別のものに( - 、*、/、%+)算術演算子の交換

演算子算術演算を変更します。

LOR - 論理演算子の交換

演算子は論理演算(&、|など)を変更し、このグループから別のものに。

LCR - 論理コネクタの交換は

オペレータは別のものに論理式に(||、)コネクタを変更します。

ROR - 関係演算子の交換

オペレータが各関係演算子を変更する(>、<、< =、> =、==、=!)同じグループの別のものに変換します。

SOR - シフトオペレータの交換

オペレータは反対の一つに論理シフト(»、«)を変更します。

OODL - 一つは、それは、操作

と何その左側にあるを削除し、>、< =、%等 - オペレーター削除

演算子は、+、等の各操作の2つの変異体を作成しますもう1つは操作を削除し、右側は何かを削除します(y = a + b; y = a; y = b;の後に変異があります)。

SSDL - ステートメントブロック削除

オペレータ文および割り当てはなく、宣言除去(例えばINT Y = 15からの、変異体以下が存在するであろう:int型のY)。

結果は次のように探しています:

変異が Mutation score

を獲得変異変異 Killed mutant

を殺した Not killed mutant

を殺しません

以下の試験により

Killed mutant by the following

関連する問題