Friday, March 5, 2010

Software Application Testing

Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs.

Software Testing can also be stated as the process of validating and verifying that a software program/application/product:

1.To meets the business and technical requirements that guided its design and development;
2.Works as expected; and
3.Can be implemented with the same characteristics.

Software Testing, depending on the testing method employed, can be implemented at any time in the software development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the Software Development methodology adopted.

Testing methods

The box approach

Software testing methods are traditionally divided into black box testing and white box testing. These two approaches are used to describe the point of view that a test engineer takes when designing test cases.

White box and black box testing are terms used to describe the point of view a test engineer takes when designing test cases. Black box being an external view of the test object and white box being an internal view. Software testing is partly intuitive, but largely systematic. Good testing involves much more than just running the program a few times to see whether it works. Thorough analysis of the program under test, backed by a broad knowledge of testing techniques and tools are prerequisites to systematic testing. Software Testing is the process of executing software in a controlled manner; in order to answer the question “Does this software behave as specified?” Software testing is used in association with Verification and Validation. Verification is the checking of or testing of items, including software, for conformance and consistency with an associated specification.
There are a number of types of software testing, categorized by what is being tested and the purpose, or objective, of the test. The objectives range from usability to disaster recovery. For many organizations the most common testing types are: functionality testing, compatibility testing, performance testing, scalability testing, usability testing, application security testing, accessibility testing, and regulatory-compliance testing.

1.QA Testing - QA Testing is loosely defined vernacular for a combination of requirements-based, regression and feature level testing performed during post code-delivered phases such as the system, integration and final test phase, to assess and assure the quality of the product.

2.Functionality, or feature-level, testing - Functionality, or feature-level, testing is performed to verify the proper functionality of the software. It may include testing of the mathematical and algorithm correctness of scientific and financial software, as well as testing of GUI functionality.

3.Compatibility testing - Compatibility testing ensures that the software is compatible with the hardware, operating systems, and other software packages that it will be working with.

4.Performance testing - Performance testing determines how well the software performs in terms of the speed of computations or responsiveness to the user.

5.Scalability testing - Scalability testing is performed to ensure that the software will function well as the number of users, size of data sets, or other factors change from small to large values.

6.Usability testing - Usability testing ensures that the software has a good level of ease of use.

7.Application security testing - Application security testing determines how well the software can defend against attacks, such as firewall software securing a computer against Internet viruses and worms.

8.Accessibility testing - Accessibility testing is performed to ensure that the software will be accessible under various scenarios by the intended users.

9.Regulatory-compliance testing - Regulatory-compliance testing is performed to ensure that the software is in compliance with all applicable regulations.

Conclusion

Understanding the various types of software testing from the point of view of the intrinsic nature of the tests themselves helps an individual to better understand the testing process. This helps them to understand the complexity of the testing task, and the interrelation of the components of software testing.