Application Testing
On the one hand, testing procedures are an important component in making quality software and if a software product must comply with quality
requirements, these requirements must be clearly defined. Absence of full-scale testing during product development is a serious risk factor. This can
not only make the project unprofitable due to eliminating defects during commercial operation of the product or refunding money to buyers (if this is a
commercial off-the-shelf product), but this can also ruin the company's reputation.
On the other hand, the process of <em>full-functional testing</em> is usually very resource-consuming. For example, functional testing of commercial
off-the-shelf products should include checking its ability to work under different editions of the target operating system, as well as under different
language versions of this OS, verifying stability of the product during installation and removal of various updates for this OS and office applications,
investigating the product's work with different options set and under different user rights, sometimes also testing how it works on different hardware
configurations. Also, usually the developing company does not have at their disposal the whole range of the necessary hardware and OS versions. Load
testing of server-based software (as well as some other kinds of testing) normally require appropriate allocation of equipment and quite expensive
software (for example, there are testing tools that cost more than the total budget of many software development projects), also specialists are needed
who can create test procedures that ensure completeness of testing and the product's compliance with the requirements. Some large software developers
have these resources, but for small and medium companies it is too expensive.
It should be noted that today in Russia there are companies that specialize in providing software testing
services. Such companies usually have at their disposal a wide range of hardware and software, as well as special testing tools.
Let us remember that in the field of software development there are also some other outsourcing practices apart from creation of standard code, testing
and compilation of documents. For example, web and intranet developers quite often order design for their applications with specialized studios that
have professional artists on staff.
According to the poll conducted by AMR Research, the domestic outsourcing industry has an annual turnover of about 750 million dollars, which is
significantly less than the turnover of this industry in India. At the same time, in Russia, there is a number of companies, providing services in the field of software development outsourcing, which have the turnover of more than 20 million dollars. According to the AMR Research, Russian companies
have certain advantages; the most important of them are high qualification of their specialists and a low rate of staff turnover. Besides, unlike Indian
service providers, Russian companies can be characterized by a more balanced approach to project management and due to this fact the analysts recommend
to contract Russian companies for the projects that involve high risks. Also, according to the analysts of AMR Research, it is advisable to outsource to
Russia for the companies, which need relatively inexpensive development or support of custom applications; or for those that need project support in the
Western Europe, especially in Germany and the Scandinavian countries; and also for the companies seeking an alternative to India in order to minimize
geopolitical risks and cultural differences.