Quality Assurance (QA) is often the last stage in the software development process. QA needs to be last because each change to the product mandates extensive testing to insure that not only did the change accomplish what it was supposed to do, but that the change did not have any unintended side effects.   

Last but not least

My Software Development Philosophy

   Testing can also be an important part of the design phase, one of the first stages in the software deveopment process. Software is always designed to produce some results.  The word result implies that there is some test can be devised to produce that result. A collection of these tests can be used to help define the design. Later these tests can be used to make sure that software correctly implements the design.

Testing should also be a important part of the implementation phase. Some development philosophies insist that no code should be written until a test has first been written which will test the code.  A test that test a single block of code is called a unit test.  An integration test is used to verify the result of multiple blocks of code that work together. Both types of tests are essential to verify that the software works correctly.

Testing only works if tests are actually run and the results are verified. Using an automatic testing solution will allow the tests to be run a regular intervals thereby maximzing their value in the development process.