I\'ve seen other people mention several types of testing on Stack Overflow.
The ones I can recall are unit testing and integration testing. Especially unit testing i
The other important technique is regression testing. In this technique, you maintain a suite of tests (called the regression suite), which are usually run nightly as well as before every checkin. Every time you have a bug fix you add one or more tests to the suite. The purpose is to stop you from re-introducing old bugs that have already been fixed. (The problem is surprisingly common!)
Start accumulating your regression suite early, before your project gets big, or you'll regret it. I surely have!
MSDN: Unit Testing
The primary goal of unit testing is to take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as you expect. Each unit is tested separately before integrating them into modules to test the interfaces between modules. Unit testing has proven its value in that a large percentage of defects are identified during its use.
MSDN: Integration Testing
Integration testing is a logical extension of unit testing. In its simplest form, two units that have already been tested are combined into a component and the interface between them is tested. A component, in this sense, refers to an integrated aggregate of more than one unit. In a realistic scenario, many units are combined into components, which are in turn aggregated into even larger parts of the program. The idea is to test combinations of pieces and eventually expand the process to test your modules with those of other groups. Eventually all the modules making up a process are tested together. Beyond that, if the program is composed of more than one process, they should be tested in pairs rather than all at once.
Check sites for more information. There is plenty of information out there as well from sources other than Microsoft.
There are different levels of testing corresponding to what stage you are at in the software development life cycle. The highest level is requirements analysis and the lowest level is implementation of the solution.
What is unit testing?
There are many unit testing tools, one of the most popular one is JUnit.
When performing unit testing we want to construct a test set (set of test cases) that satisfy a certain coverage criteria. This could be some structural coverage criteria (NC, EC, PPC etc.) or data flow criteria (ADC, AUC, ADUPC etc.)
What is integration testing?
Other levels of testing include:
Regression Testing
Acceptance Testing
Unit testing is simply the idea of writing (hopefully) small blocks of code to test independent parts of your application.
For example, you might have a calculator application and you need to make sure the addition function works. To do this you write a separate application that calls the addition function directly. Then your test function will evaluate the result to see if it jives with what you expected.
It's basically calling your functions with known inputs and verifying the output is exactly what you expected.
First two search results on google for 'types of testing' look comprehensive
The ones I think are most relevant. See here.
This was an entry I wrote: Different Types of Automated Tests.