advanced testing techniques