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
Post a Comment