types of testing tools