Tuesday, January 26, 2010

Product vs. Project Testing

Hi, being in the field of software testing, I want to share some of my experiences and knowledge in this domain.
I have the experience of working on software products, and on custom software projects. I have seen some shrewd testers thinking on the differences between a project testing and product testing.

Before we delve into the differences, for a better clarity, I would like to explain what is a software product and a software project.

Software product: A software application that is developed by a company with its own budget. The requirements are driven by market surveys. The developed product is then sold to different customers with licenses.
Example for software products: Tally (by TCS), Acrobad reader/writer (Adobe), Internet Explorer (MS), Finnacle (Infosys), Windows (MS), QTP (HP) etc.

Software project: A software application that is developed by a company with the budget from a customer. In fact, the customer gives order to develop some software that helps him in his business. Here, the requirements come from the customer.
Exampl for software projects: A separate application ordered by a manufacturing company to maintain its office inventory etc. This application is used only by this company and no one else.

With the above insights, we will now discuss the differences.

As an end tester, there will not be much difference in testing either a product or a project. It is test scenarios and test cases, and requirements everywhere.However, here below are some differences between a product and a project, and differences from a testing perspective:

1.For a project, test plan is a must. All the documents related to that are to be prepared. For a product, test plan would have been made long time back. It is at max updated.

2.In project, client has to approve the test plan and test cases, and sign them off. In product it is not necessary.

3.In project, tester directly interacts with the client. In a product, tester interacts with the FD team or business analysts.

4.In project, the dead lines are not flexible. In product testing, dead lines are flexible.

5.In project client hold the authority on the developed code. In product, client doesn't hold the ultimate authority on the code.

6. The budget for development of the project is given by the customer in case of project development. In case of product, the budget is given by the own company.

7.The features in a project are always new. However, in Product, the basic features remain same, and only a few new features will be added, or few existing features will be modified.

8.Because of point #6, more regression testing needs to be done in case of a product, and less in case of a project.

9.Since a product runs for years, test automation saves lot of effort, where as in case of projects, it depends on the duration of the project.

10.Usually, a project complies to a small environment, as specified by the client. So, testing only on the specified environment is sufficient. A product can be installed on a number of OS and other environment parameters, depending on the end user. So, usually, more compatibility testing needs to be done in case of product.

11.A project is used by the specific client for the specific purpose only. Hence tester needs to test only in that end user’s perspective. In case of a product, the same product can be used by a variety of clients. (For example, the same Enterprise Incentive Management application can be used by Pharma clients, Insurance clients etc). So, tester needs to consider all types of potential users and their usage and needs to test accordingly.

12. Licensing comes into picture in case of a product. Thus scenarios related types of license, their registration and expiry etc needs to be tested for a product. Licensing does not exist for a project.

13.Test planning depends on the software development life cycle. Usually, it will be different for a project and a product.

14.Chances are very high to get onsite opportunities for the tester working in a project. Changes are very less in case of a tester working on a product.

15.Economic recession badly hits a software project. The customer may halt or stop the project, in which case, the test engineer may lose the job sometimes. In case of a product, a short term (0-1year) recession may not hit the engineer, as the company keeps adding the new requirements. In fact, the test engineer may get more work, if the company tries to add some innovative requirements to lure the customers into buying their product.

16.In case of a project, competitors do not come into picture, except at the senior level management. In case of a product, the tester also should consider the competitive products while testing. Sometimes, the tester needs to evaluate the performance against competitors' products. Behaviour of the product with the competitors' products coexisting on the same machine needs to be considered. Also, tester needs to check any violation the copyrights.

With the above points, I feel I have given ample information for one to get an idea the differences, though the list is not limited to the above points.

Ravi Landu

3 comments:

  1. Raghu- Nice to read the differeces. Good coverage and explanation.

    ReplyDelete
  2. its really nice post to understand basic difference between product and project based testing.

    ReplyDelete