Advanced testing with Java