Concurrent Programs in Java are tougher to write than the sequential ones and especially harder to test.This is trivially true, following could be listed as few reasons why
1. Tests for concurrent programs are themselves concurrent programs.
2. The failure modes of concurrent programs are less predictable and repeatable than for sequential programs. A failed sequential program for a given set of input would fail each and every time put through the same test, whereas the concurrent version may not necessarily fail for the same test each time.
In the session I plan to talk about following points:
1. What makes it hard to test and write Multithreaded code.
2. Improving design and structure of Multithreaded code to enhance the testability.
3. Writing Effective Unit tests for concurrent programs.
4. Demo – build a small example application using concurrency and putting test safety net around it.
5. Share some interesting situations faced while developing a Multi-core application and remedies applied.