Click here to load reader
Upload
indicthreads
View
1.349
Download
1
Embed Size (px)
DESCRIPTION
Session presented at the 6th IndicThreads.com Conference on Java held in Pune, India on 2-3 Dec. 2011. http://Java.IndicThreads.com
Citation preview
1
Sameer Arora
Xebia IT Architects.
Testing Concurrent Java programs
2
AGENDA
What makes Concurrent programs hard to test.
How concurrent application's design drives testability.
Testing asynchronous code - demo.
Testing Blocking operations and Resource Management - demo.
Testing Thread Safety - demo.
Complementary testing approaches.
Questions & Feedback
3
What makes concurrency hard to test
Tests for Concurrent Programs are themselves concurrent programs.
Failures are rare and probabilistic in nature.
Execution is Platform Dependent.
4
Encapsulating concurrent interactions .
Thread Delegation.
Effectively Immutability.
Figuring Single Thread Confinement.
Composition.
Design and Testability
5
Testing Asynchronous Method Calls
Asynchronous Job Signal Demo
6
Testing for Resource Management
7
Bounded Job Queue
Test for Blocking Operations - Demo
8
Testing for Thread Safety
Bounded Job Queue Thread Interleaving Test
9
Complementary Testing Approaches
Injecting Callbacks.
Static code Analysis Tools.
Code Review.
Profilers and Monitoring tools.
Frameworks for Multi-threaded Testing. ConcJunit Awaitility MultiThreadedTC
10
Questions
Questions/Comments/Feedback
11
Thank you