The Development of finalized version of software involves series of activities. These activities are mainly:
Project Planning
Testing is one of important phase of software development life cycle. After development of software a set of activities are required to make the software suitable to use by the end user. Thus software testing techniques enter the picture to achieve the goal of providing error free software to the customers. Testing is phase in software development life cycle that comes into scene after the Coding and before maintenance. Testing is required to check the working of modules of software or software as a whole. Software testing is a critical element in software quality assurance and represents the ultimate review of specification, design and code generation. Generally organizations expend 30 to 40% of total project effort on testing. In case of human rated software like flight control, nuclear reactor monitoring etc. can cost 3 to 5 times as much as altogether software engineering steps combined.

Objectives of Testing:
Testing is undertaken by executing the program with the intent of finding uncovered error. A good and successful test is one that is able to uncover all hidden errors and which has high probability of success.

Verification and Validation: Software testing is often referred to as verification and validation. Verification is a set of activities that ensures the software is correctly able to perform its functions whereas validation are a set of activities that are able to find out whether the software is able to meet the customer requirements. Thus the only difference between verification and validation is that verification of checking of software internally whereas validation is process of external checking of software where output of software is able to meet the customer requirements or not.

Types of software testing strategies: Software Testing strategies are also of different types. These are broadly classified under verification testing and validation testing.

Verification testing includes Unit testing and Integration testing.
Unit testing:
When tests are conducted to check the functionality of each component or unit module software. It is Unit testing.
Integration Testing: When all the modules of software are tested together or the software is tested as a whole. It is Integration testing.

Validation testing includes system testing, alpha testing and beta or acceptance testing.
System Testing: Top level of Integration testing. At this level requirements are validated as in SRS.
Alpha Testing: When software is tested at developers site with the inputs supplied by application testers of Developer Company itself. This is Alpha Testing.
Beta Testing or Acceptance Testing: When the software tests are conducted at the customer site with the inputs supplied by application user. This is Beta testing. It is also called Acceptance testing because after this testing software is accepted by customer or this test is necessary just to make it acceptable to customer.