Smoke Test A very simple test. "Can I switch it on without smoke showing up." For example, you can start the program without an exception being thrown or that you can see the web application's front page after deployment.
Performance Test Testing how fast a (part of a) program executes. This term is also often used to refer to load testing.
Load Test Testing how the system performs under different loads. For example, different number of simultaneous users.
Stress Test Testing how the system reacts to extreme conditions such as very high number of users, not enough memory, not enough disk space, etc.
Unit Test Testing a single method or class in isolation.
Object Test A synonym for unit test, stressing the fact that it's testing an instance of a class, i.e. an object.
Functional Test Testing a whole application performing a real task; often script-driven (automated), but can be done by hand (manual testing).
Integration Test While a component may work fine by itself, problems can show up if it is integrated with other components. Integration tests hook up various components to test whether they work together as planned.
Robert Baillie offers a nice reference for different kinds of tests that are commonly put under the "performance tests" umbrella:
Performance Test Given load X, how fast will the system perform function Y?
Load Test Given a certain load, how will the system behave?
Stress Test Under what load will the system fail, and in what way will it fail?
Benchmark Test Given this simplified/repeatable/measurable test, if I run it many times during the system development, how does the behaviour of the system change?
Scalability Test If I change characteristic X, (e.g. double the server's memory) how does the performance of the system change?
Reliability Test Under a particular load, how long will the system stay operational?
Availability Test When the system fails, how long will it take for the system to recover automatically?
Tick check! Okay, I guess that was just an itch. Oh wait! Just a tiny ad: