Why do you need software testing and which type to choose?