explain testing tools in software engineering