There are many different types and methods for testing software. Following are some brief definitions of the most common terminology you might find in developer circles or enterprise settings.
You should keep in mind that different types of testing don't necessarily compete with each other. They often simply address different aspects of the software and can therefore complement each other.
As the name suggests, this type of testing occurs at the most granular level of software development, typically right before and/or after coding time. It targets the basic building blocks of software or units. In PHP, these building blocks are classes and methods.
Usually, multiple test cases are written to test the functionality of a class or method. Individual test cases are then grouped together into test suites. Writing a test case commonly involves some form of coding—typically in the same programming language in which the main application is being written anyway. Later...