Many kinds of testing exist. Brian Marick came up with the Agile Testing Quadrant as shown below.
In this diagram, he categorized tests according to whether they are business facing or technology facing and whether they support the development process or are used to critique the project.
Q1-Technology Facing Tests that Support the Development Process
These automated tests are written and maintained exclusively by developers. There are three kinds of tests that falls into this category : Unit tests, Component tests and Deployment tests.
Q2-Business-Facing tests that support the Development Process
The tests in this quadrant are more commonly known as functional or acceptance tests. Acceptance testing ensures that the acceptance criteria for a story are met. Acceptance tests should be written and ideally automated before development starts on a story. Acceptance tests, like acceptance criteria, can test all kinds of attributes of the system being built, including functionality, capacity, usability, security, modifiability, availability and so on.
Q3-Business Facing Tests that Critique the Project
These manual tests verify that the application will in fact deliver to the users the value they are expecting. This is not just a matter of verifying that the application meets its specifications, it is also about checking that the specifications are correct.
Q4- Technology-Facing Tests that critique the Product
Acceptance testing comes in two categories : Functional and Non-Functional tests. By Non-Functional tests, it means that all the qualities of the system other than its functionality, such as capacity, availability, security and so forth. This quadrant covers the Non-Functional tests which are equally important for the success of the product.