In Custom Software Product development projects testing is a separate process aimed at defining whether the developed Custom Software Product product meets its requirements. Most Offshore Outsourcing 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 Offshore Outsourcing 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 Custom 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 Offshore Outsourcing 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 Custom 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 Custom 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 Custom 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 Offshore Outsourcing projects. Such model is convenient for both Customer and Custom 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 Custom Software Product or not.
System testing and acceptance testing may be outsourced to a third-party testing provider.
In mature Custom Software Product development companies test plan is created on the early stage of Custom Software Development Project lifecycle. Programming team participates in its creation, knows it and agrees with it. Unit tests are written before the Custom Software Product construction starts. Testers and Test Engineer (or Test Analyst) are necessary people in any Custom Software Product development Custom Software Development Project, especially in Offshore Outsourcing projects. This is the core activity within the Custom Software Development Project, and it must take not less than 30% of the overall efforts needed for the Custom Software Development Project.
Published on 7/30/2007

