Saturday, January 06, 2007

Outsourcing Software Testing

I will start this blog with the Cem Kaner's explanation of testing which I recently encountered :
"Testing is a process of Technical, empirical investigation, done on behalf of stakeholders, with the intention of revealing quality-related information of the kind that they seek."
From the last couple of years, software testing is moving towards a new direction - OUTSOURCING. A company might consider outsourcing testing for several reasons :
1. The company may feel that most testing tasks can be relegated to a contractor.
2. The company may not have the resources - people, skills, software, hardware or time - to perform the testing themselves.
3. The project to be tested may be of such a short life span that the company doesn't need any long-term investment in testing processes for the project.
4. The company might want an independent third party to perform the testing, in order to get a more objective view of quality.
5. The company is under the process of cost cutting.
Now the question is "What are some of the most common mistakes that companies make when outsourcing software testing ?"
Answer - 1 . The biggest mistake is that many times companies outsource both testing and development to the same vendor - thus they have a fox guarding a henhouse. These two activities need to be done by independent groups. The testing team must be able to provide independent , objective feedback on the development process and output.
Answer - 2 . If feedback is to be useful, it's morally like to be helpful if it's rapid. If there is a problem, testing team probably wants to find it and to start solving it as soon as possible. Separating testers and developers, tends lengthen the time in which a problem can be detected, in which it can be discussed, in which it can be demonstrated, in which it can be understood, and in which it can be fixed or retested.
I agree with Answer - 2.
A general tendency is -- What's faster: making a remark to a person next to you, or writing up an email and/or a bug report ? Moreover, feedback based on understanding is typically more useful than the feedback based on oblivion. Knowing how the product is intended to work and how it actually works helps me to find the problems in it more quickly. Knowing the developers and working with them helps immensely in learning about the product.
I worked a lot for product based companies. There, all the developers and testers are under same roof. So it is quite good for the testers to verify the bugs instantly with the help of developers. There as a part of testing team, I was responsible for preventing the bugs as well as finding the bugs. I think this kind of environment is very good for companies also as both teams (testing and development) are working for quality product. I also worked in a company where testing and development part have been outsourced by a different company. But there are some differences in this scenario. When a company outsourced development and testing part to a different company, they are interested only in number of bugs that have been found by testing team and number of bugs fixed by the development team. In this type of scenario, testers and developers are interested only to file the bugs and resolving them. I was in the testing team as one of the major resource of testing. I noticed at that time that management was interested only in number of bugs filed by testing team and number of bugs fixed by development team. This was because the company, that have outsourced the project, was analyzing the work of the team by the number of bugs. This view might be good in terms of finance/funding for both the companies but testing team is not doing their work properly. But anyhow, we have to work according to the processes set by the company. This is something called Voice Of Business.
In one of my previous company that I worked, only testing part have been outsourced by a big MNC. Now since that was the first time that some testing task have been outsourced by that MNC to some other company, nothing was defined as such. My team was responsible for only executing test cases that have been provided by that company. Moreover, we have to automate those test cases and report the test matrix to higher management. If we found any bug while testing, its a long process to justify that issue in front of the management of that company. Besides this, I have to arrange the sessions for all the modules/features that we have to test. This is definitely a time consuming activity. Later we decided to work in their office premise itself. My team started working at their office and this way we tried to resolve the maximum issues and we succeeded.
You may be wondering if outsourcing the testing is right for any organization or not? Well, I would say that it depends on how you are managing the processes. I am not against the outsourcing of testing. Some of the benefits of outsourcing testing include -
1. Lower cost
2. Technological advancement
3. Greater efficiency
4. Staffing Flexibility
5. Improved time-to-market
6. Skill generation and training
7. Focus on Core business
8. Enhanced coverage and quality of delivery.
As a summary, I would like to say that Outsourcing Software Testing is worth only when there are some processes that have been defined and most important the scope of the testing should be clear. This is quite a difficult task but if you want a successful software testing outsourcing, you should think twice. If not, better to perform in-house testing.
-- Sanat Sharma

1 comment:

Software Testing Outsourcing said...

Hi, Your blog is really nice and informative. Thanks for sharing this wonderful article. Bye.