Understanding testing and the need to test code
Testing is a crucial process for ensuring that the code does what it’s meant to do. Quality production software is empirically correct. That means that for the enumerated cases that developers and testers have found, the application behaves as expected.
This lies in contrast with software that has been proven to be correct, which is a very time-consuming endeavor and is usually part of academic research projects. We are still at the point where correct software (proven) is still being built to show what kinds of systems are possible to build with this constraint of correctness.
Testing prevents the introduction of defects such as bugs and regressions (that is, when a feature stops working as expected). In the next section, we will learn about the various types of testing.
Different types of testing
The testing spectrum spans from end-to-end testing (by manipulating the user interface) to integration tests, and finally...