In Software Product development projects testing is a separate process aimed at defining whether the developed Software Product product meets its requirements. Most Software Development software firms offer it as a part of the overall development process and include testing phase into the project lifecycle. However, some outsourcers prefer delegating testing, or its part, to a third-party Software Development provider or onshore company.
Today, very few companies start testing process after the whole product has been developed. With the spread of agile methods of Software Product development the activity is included into each iteration plan. This approach helps to test each requirement right after it is developed, and detect and fix bugs immediately. Most Software Development companies use this model.
In test-driven process, unit tests are written before the start of programming. The further process is based on these tests.
There are 3 kinds of testing classified by Tester’s point of view while testing a piece of Software Product. Black-box testing means that test cases are developed according to a general view to the system, and Tester checks only system’s outputs to Tester’s inputs. White-box testing provides internal view to the system or a piece of Software Product. Grey-box testing means that Tester can manipulate testing environment.
Depending on the size of system component which is tested, there are several levels of testing. The normal Software Product development process includes unit testing, integration testing, system testing (functional and non-functional), and acceptance testing. The first 3 levels are usually implemented by a provider’s team in Software Development projects. Such model is convenient for both Customer and Software Product development provider, as any bugs detected at early stages are immediately reported to programming team and fixed.
Acceptance testing is usually performed by Customer, a representative of Customer, or end-users. It is testing of the whole programming product, and it is normally based on the contracted acceptance criteria. Basing on its results Customer decides whether to accept the Software Product or not.
System testing and acceptance testing may be outsourced to a third-party testing provider.
In mature Software Product development companies test plan is created on the early stage of Custom Software Project lifecycle. Programming team participates in its creation, knows it and agrees with it. Unit tests are written before the Software Product construction starts. Testers and Test Engineer (or Test Analyst) are necessary people in any Software Product development Custom Software Project, especially in Software Development projects. This is the core activity within the Custom Software Project, and it must take not less than 30% of the overall efforts needed for the Custom Software Project.
Published on 7/30/2007

