Imagine a situation where you are working on testing a project and you have completed testing of the project. You got a new assignment and you are going to test a Product this time.
Now, what kind of shift you need to make in your approach, scope, areas of importance between testing a project and product is what is going to be discussed in this whitepaper.
Normally Project will be specific to single client's requirement. Everything in a project revolves around a single client, his requirements, pain points etc.
A Project can be executed using any of the SDLC models. But the most preferred models for executing a project are
If you observe Waterfall model is not the most preferred SDLC for executing a project. This is because, clients requirements will keep on changing as time passes and these changes need to be absorbed by the project team and final delivery should be made as per the changed requirements.
Below listed are the various types of testing to be given importance and should be taken into consideration when testing a Project.
Functionality Testing:
Functionality of the application is of utmost importance in case of project. Also the functionality should exactly match with the project specifications or requirements.
User Interface Testing:
User interface has to be tested for boundary, tab order, any limitations on data to be entered, punctuations, formats to be followed for data entry, ease of use, Spelling and grammar etc.
Security Testing: Now a day's more emphasis is given on security due to the various security threats a project has to deal with after it is live in production. So the application has to be tested for any existence of security loop holes, un-authorized accesses in both front-end and back-end. Some Examples of security checks are cross site scripting, SQL injection etc.
Performance and Load Testing:
These are to be given due importance while testing a project. Performance and benchmarks and expected user Load along with mix of users should be clearly identified and defined before starting the testing, Load and performance test tools are best suited for doing this kind of testing.
Concurrency Testing: Concurrency play vital role in case of financial domain related applications. Even this is important for non-financial domain applications. This testing is little difficult to perform manually. So using automation tools is a good option to do this testing. Concurrency scenarios should be clearly defined and automation tool should be configured properly for getting best results.
When we talk about Product the requirements will be a common pool of requirements gathered from several clients/end users and prioritized and frozen for a release/version.
The most preferred SDLC models for executing a product are
Below listed are the various types of testing to be taken into consideration when testing a Product besides normal functional, UI, load and performance testing.
Installation Testing:
We should test a product for proper installation and this testing focus on the proper installation of the product based on the instructions provided in the installation guide. The installation should be simple and should involve minimal human intervention for greater customer satisfaction.
Fail Over/Recovery Testing: Every product should handle failures gracefully and recover from the failures with no or minimum loss of data. The main focus in this testing is to simulate the possible failure scenario and observe how the failure is handled. Once the system is back to normal situation how the recovery is made and whether there is any data loss in the failure and recovery process.
Help/User Guide:
For any product Help document or the User Guide is heart as the product can be purchased and used by any one. And the first this user will refer to is Help or User guide for using the product or solving any problem while using the product. So these documents should be tested thoroughly for completeness, clarity. All navigations, re-directions, links should be checked for proper functioning in the Help or User Guide.
Portability Testing: In this testing we need to test whether the product works correctly on various configurations, Operating Systems, Hardware etc.
User Friendliness/Usability: In this testing we need to check how easy/difficult for the user to use the product. Can people with disabilities use this product easily? Any tools or options provided for disabled users to use the application easily without any problems?
Copyright Information and Packaging: Good packaging of a product attracts interest of more number of users. And in case of a product Copyright information is of utmost importance. The organization can land into legal problems if copyright information is not proper.
Privacy and Confidentiality: In these days a lot of emphasis given on privacy and Confidentiality of the information handled using a product. So this aspect should be given due importance when testing a product.
Parallel Testing:
This type of testing comes into picture and should be given due importance when a product developed in one technology is re-developed or migrated into a new technology. In this testing we will compare the functional output of the new product with output of the old product. We have to compare the functional scenarios and we should get the same output in both versions.
Below is a snapshot of some differences between a project and product
Project Product Requirements will be specific to a single client Requirements will be derived from a common pool of several clients/end users Iterative, Prototype and Agile SDLC models are most preferred Waterfall and Incremental SDLC model are most preferred Requirements will be dynamic and may change very frequently Requirements will be constant most of the times Project will be delivered to the client directly Product will be released in the market and can be purchased by any one Test Automation is not encouraged in case of a project where the requirements change very frequently Test Automation will help immensely in case of testing a product Projects will be planned for the immediate use with less focus on future extendibility or versions Products will be planned and will have several newer versions and covers several years to come Project durations will be shorter in comparison with products (Maintenance/ Sustenance are exceptions) Product durations will be longer generally in comparison with Projects The conclusions we can derive from the above discussion are
Project Testing
Product Testing
Project Vs Product Testing
Conclusion
Monday, April 13, 2009
Project Vs Product Testing
Subscribe to:
Posts (Atom)