Outsourcing Software Testing


It is hardly necessary to read you a lot about testing, especially the outsourcing of testing. Russian periodical press does not spoil the reader such information. The same can be said about the books - in an endless stream of literature on Windows, Linux, Ci + +, Java, struck readers in recent years, one can hardly find a few publications devoted to this vitally important phase in software development. 
This fact indicates that the issues of quality assurance in post-Soviet Russia have been overshadowed by more pressing problems. With the onset of maturity of the IT industry’s priorities are changing. Product quality begins to play a key role in sales, which makes managers pay attention to him.
 In addition, the surging interest in offshore software development has prompted developers to get ISO 9001, CMM, giving a "green light" for companies to enter the world market. However, the formation of new manufacturing processes that comply with quality standards, you may need several months to several years of continuous operation. 
Most of the standards say about what needs to be obtained, but does not describe how to do it. Given that the testing of products is one of the key components of any quality standard, in initiating the process of production-quality software appropriate to use the services of outsourcing testing. The question is: What is outsourcing and how to get from him the greatest effect? Consider this question in detail.
History of Independent testing
The term "outsourcing of testing" appeared in our lexicon, not so long ago, replacing the more familiar to us the words "independent testing". The latter implies that testing is carried out by the additional attraction of a company or group of people not directly involved in software development. Not so long ago (mid 80s), an independent testing was considered the only objective way to assess the quality of the product. The book Glendforda Myers’ The Art of Software Testing Services "is an example: The U.S. Air Force in the development of software put into practice the conclusion of individual contracts with the developer company and the company tester. Subsequently, the Air Force has established a separate company to conduct the test and test software. This approach was praised and was considered the only true when developing mission-critical applications.
Things began to change in the early 90s. At this time it is necessary flowering of object-oriented approach to software development. It was then established and gaining popularity ISO and CMM. Developers have the illusion that we can do without independent testing agency that the advanced development tools and management methods will give an unprecedented increase in quality. By the end of 90 passes euphoria, despite the fact that software quality really has improved. What is the cause mood changes? Apparently, the fact that the developers are faced with new challenges - rapidly developing, often changing requirements for software, browsing the Internet, lack of resources. Complexity of software systems increases many times. Standards and development practices lag behind the market. That is why starting the search for new solutions, thanks to the Internet is gaining momentum globalization of software development, outsourcing is actively used. Currently, independent testing has taken on new forms, adapted to the realities of the new century.
Test Agency
Modern testing outsourcing to form a separate IT industry. In the West it is called the Software Testing & Quality Assurance, which passed into Russian translate as "testing and quality assurance." At the North American and European markets are dozens of companies offering similar services. Solving the problem in 2000 has developed the industry as well in India.
It should be noted that each test agency specializes in one form or another service provider. As a rule, small firms learn quite a narrow area, such as checking the ergonomics software, while larger companies offer a full suite of test studies.
Types of studies testing
The area of quality assurance and testing, in particular - is very extensive. In the most general form of all the test makes sense to divide the study into two groups.
The first group includes functional tests, ie, related to the working functionality of the software embedded in the TOR. One kind of functional testing is acceptance testing, or acceptance tests. Functional tests are a priority to ensure the quality of the product, so the developers are paying special attention to them. Typically, companies conduct of the testing is such a test, so outsourcing is not a functional test is currently the most popular. However, statistics show that an additional independent tests to reduce the number of defects in 3-30 times, depending on the quality of the original system.
The second group of tests for everything that is not included in the basic functionality of the software: usability, performance, safety, reliability, etc. It’s no secret that during the development of TK, many aspects of the program leaves out of sight, means implicitly or requirements change during development, but not documented. And the more the software system, the more of such omissions. For example, a program designed to work in a local network, and then it added a module to access the Internet. Go to the original system does not meet high standards of security and resiliency, but as a result of expansion of functionality, these requirements were critical.
As a result, the most popular service by outsourcing testing is to study the performance, reliability, and load characteristics of the software. The reason is obvious - the development of client-server systems and Internet applications. Systems built in this architecture are a few bottlenecks. As a rule, database servers and applications, as well as means of communication. Client-server systems work in multiplayer mode, so the issues of reliability and load capacity for them to take on special significance. The cost of failure, the server program disproportionately higher cost of failure, the client application. Therefore, additional testing of the system reliability is economically justified.
With testing on the reliability of testing is closely linked to performance. Usually developers are trying to invest in the program a maximum capacity, which is not so bad as long as there is no need to connect to the system of hundreds or thousands of users. In this case, the program may be unworkable and would take at least optimize its work, and as a maximum - to redesign the whole system. Therefore, conducting performance tests is paramount both during the development of requirements and system architecture, and during the acceptance tests. As a rule, developers do not have the necessary skills and resources to conduct full-scale load testing, and in this case, testing outsourcing is not only more cost-effective, but often the only possible way to test the software.
What should I look for when outsourcing testing
Head about to conduct an independent test of a software product should be aware that the most successful results can be achieved only under certain conditions. The quality of the test depends on the amount of information about a product that the developer can pass the test agency. The more information given, the better you can prepare the testing requirements, the greater the number of defects can identify. It is clear that organizations with well-established manufacturing process, relevant, for example, ISO 9001, will receive the maximum benefit.
However, by outsourcing testing is often used by those companies in which the formalization of requirements to software is either absent or requirements are documented in a very general way. It should be remembered that in this case from the test agency will require additional time and effort to become familiar with the product, so plan to start work early testers needed, without waiting for the encoding of the last function in the program. For this reason, it is expedient to find out what methods are going to use the testers, what demands would be made to the product’s functionality. Vague answer to this question will cast doubt on the quality of testing.
Another important point with test agency is to establish procedures for cooperation and information exchange. You need to determine what should be the means of transmission of information describing the format of detected flaws, ways to import / export data between information systems and bug tracking software requirements, confidentiality, etc. No less important is the process control testing, regular reporting on the execution of works.
Unfortunately, this article will not review in detail all the issues and problems of interaction with the test agency, we can only give basic directions in which it makes sense to draw the attention of IT managers responsible for the quality of the software system.


Comments

Popular posts from this blog

Software Testing: How to start

Why should I automate?

Myths about Automated Testing