#testing ## Unit testing - Testing of single components - Automated (regression) checks ## Integration testing - Testing of interactions between components and even systems - Examples: Database integration testing, component integration testing, system integration testing ## System testing - Testing performed against the whole working system or product in an "[[End-to-end testing|end-to-end]]" fashion - Find out whether the software is ready to be used by customers, establish confidence, validate that the system is complete, verify that functional/non-functional behavior is as specified - Test environment should correspond to the production environment - Performed by the vendor, assisted by automated smoke tests ## Acceptance testing - Quite similar to system testing, but the distinction here is who performs the testing: Acceptance testing is usually performed by people outside the vendor, i.e. by customers and end users, or by business stakeholders - Forms of acceptance tests: User acceptance testing, operational testing, regulatory testing, alpha/beta testing - I would say that acceptance tests can only be performed with an [[Exploratory testing|exploratory approach]] and cannot be automated