開発者の視点からテスト ケースにコードを一切書かずに Java コードをテストする自動テスト ツールまたはフレームワークはありますか?
3 に答える
javac
コードに対していくつかの基本的なテストを実行するというツールがあります。
たとえば、コードに が欠落している場合は}
、それが表示されます。また、間違った型の引数で関数を呼び出そうとしたり、存在しない関数を呼び出そうとしたときに検出します。
FindBugsは潜在的に危険なコードについて警告することができるので便利ですが、多くの誤検出があります。
それを超えて、あなたが求めているのは、ある種のプログラマー AI です。コードが正しく実装されていることをコンピュータが判断できるのであれば、コンピュータにコードを書かせてみませんか?
CovertyやFindBugsなどの静的コード分析ツールを検討できます。これらのツールは、ソース コードを実際に実行せずに、ソース コードだけに基づいて潜在的なバグを見つけようとします。
また、ランダムな JUnit テスト ケース (メソッド呼び出しのランダムなシーケンス) を自動的に生成してオブジェクト コントラクト違反を探すrandoopを試すこともできます。不正な引数の例外などを引き起こすメソッドシーケンスを破棄します。これは良いことです。また、複雑なオブジェクトを構築するメソッド シーケンスと、契約違反につながるシーケンスも記憶します。
コードに JML で記述された仕様がある場合、 Compaq のESC/Javaはそれらに対してコードを検証できます。
実際、いくつかのツールがあるようですが、私はそれらを使用したことがありません。さらに、いくつかのテストを作成する場合は、潜在的な落とし穴を見つけるためにPITに既存のコードを変更させることができます。