We’ve classified types of software testing based on aims, automation and formalization levels, explained the essence of each, and provided practical tips on how to balance different types of testing.