online marketing Prabakar's blog on Software Testing: Product Testing
Lead Gen Banner

Total Pageviews

Tuesday, March 1, 2011

Product Testing

Product would be developed as a project first and would undergo all the tests that a project normally undergoes, namely, unit, integration, and system testing. System testing is carried out more rigorously and on multiple systems. In addition, it needs some more
rigorous tests. These are:

1. Load Testing – in web applications and multi-user applications, large numbers of users are logged in and try to use the software in a random manner. The
objective is to see if the software is managing multiple requests and serving up accurate results or mixing them up. . This unearths the issues connected with the bandwidth, database, sufficiency of RAM, hard disk etc

2. Volume Testing – subject the software to a high volume of data and see the performance, whether it degrades.

3. Functional Testing – test that all functions expected of the software are functioning correctly.

4. End-to-End Testing – in this type of testing, one entity is tracked from birth to death in the application. For example, in a payroll application, an employee joins the system; then is promoted; then is demoted; salary increases are effected, salary decreases are effected; kept in abeyance; transferred, then retired, dismissed, terminated and so on to ensure that the state transitions designed in the applications happen as desired

5. Parallel Testing – a number of users using the same function and are either inputting or requesting same data. This brings out the system’s ability to handle requests at the same time and preserving the data integrity.

6. Concurrent Testing – Concurrent testing is carried out to unearth issues when two or more users use the same functionality and update or modify same data
with different values at the same time – normally using a testing tool. For example, take ticket reservation scenario, there is only one seat and it is shown
as available to two people. When both confirm purchase, the system should give to only one and reject the other request. It should not happen that money is
collected from both credit cards and reserve for only one – the credit card transaction must be reversed for the rejected party. Scenarios like this will be
tested.

7. Stress Testing – cause stress to the software by making expected resources unavailable or causing deadlock like scenarios or not releasing resources and so on to ensure that the software has routines built in to handle such stress. This will bring out software responses for events like machine-rest, Internet disconnection, server timeouts etc.

8. Positive Testing – test the software as specified and not trying any negative acts – to ensure that all defined functions are performing. Used mostly for
customer / end user acceptance testing.

9. Negative Testing – using the software in a manner that is not expected to be used – this will bring out all hidden defects in the software. This is to ensure even malicious usage would not affect the software or data integrity.

10. User Manual Testing – use the software conforming to the user manual to ensure that they both are in synch with each other

11. Deployment Testing – Simulate the target environment and deploy the software and ensure that deployment specified is appropriate.

12. Sanity Testing – this cursory testing to ensure that the components, of software package, are complete and are of appropriate versions, carried out before delivery or before making a software-build.

13. Regression Testing – testing carried out after unearthed defects are fixed

14. Security Testing – testing to determine that an information system protects data and maintains functionality as intended.

15. Performance Testing – testing to ensure that the response times are in acceptable range

16. Usability Testing – testing the software for different types of usage to ensure that it satisfactorily fulfills the requirements of specified functional areas

17. Install / uninstall Testing – test the software on all target platforms to ensure that install and uninstall operations are satisfactorily performed

18. Comparison Testing – testing the product with competing products to contrast the differences for determining the relative position of the product

19. Intuitive Testing – testing without reference to user manuals to see if the product can be used without much reference to user guides

Source: SQA Forum

No comments: