Software testing consists of three main types: Functional Testing, Non-functional Testing, and Maintenance Testing. Within each of the three main types of testing are several more specific testing types.
♿ Link to "Types of Software Testing" graphic description
Software Testing Pyramid [1]
For software development to go successfully it is important to have a test strategy in place, one way to do that is through the use of the Testing Pyramid. A testing pyramid is a pyramid where all the different types of tests fit.