15
Testing
Testing is central to creating working software. Here’s the canonical statement describing the importance of testing:
”Any program feature without an automated test simply doesn’t exist”.
(Kent Beck, Extreme Programming Explained: Embrace Change)
We can distinguish several kinds of testing:
Unit testing:
This applies to independent units of software: functions, classes, or modules. The unit is tested in isolation to confirm that it works correctly.
Integration testing
: This combines units to be sure they integrate properly.
System testing
: This tests an entire application or a system of interrelated applications to be sure that the suite of software components works properly. This is also called end-to-end testing or functional testing. This is often used for acceptance testing to confirm that software is fit for use.
Performance testing
: This ensures that a unit, subsystem...