2010-12-14 8 views
5

マルチスレッドコードをテストするためのガイドラインはありますか?(問題でスレッドを投げたり、マルチスレッドコードをテストする、またはコードがスレッドセーフであることを確認するためのガイドライン

私は基本的に、データの破損、デッドロック、およびその他の並行性の問題をテストするための良い方法を探しています。基本的には、コードがテストを通じてスレッドセーフであることを証明できるようにしたいと考えています。

マルチスレッドシナリオ用のテストを簡単に作成できるフレームワークはJavaにはありますか?

+4

コードレビューはどうしますか?多くの一般的な間違いは、あなたがそれらを仮定した場合に比較的簡単に見つけることができます。そこにいる。 –

+0

これはガイドラインではなく、テストツールに関するものですが、おそらくそれはあなたを助けるでしょう:http://stackoverflow.com/questions/3256064/how-to-write-multi-threaded-unit-tests – Todd

+0

以下の関連記事質問:http://stackoverflow.com/questions/1634378/is-there-a-tool-for-java-similar-to-microsoftschess – Guy

答えて

3

私は多くのマルチスレッドコードを書いており、予測していない並行性の正確さの問題を簡単にテストできるものはこれまでにないほど多く見つかりませんでした。ほとんどの場合、私はそれが壊れているかもしれないシナリオを考えなければならないし、それが極端なバージョンの正しさを証明する方法(CountDownLatchesなどを使用して、それが壊れるかもしれないと思う方法でそれを曲げることがよくある)

FindBugsなどの静的解析ツールを使用して潜在的な問題を発見し、並行性の問題をできるだけ単純に保つことができます。あなたのコードを見直してみてください。

関連する問題