Parallel and Distributed Systems Testing and Debugging