What is Software Testing?
|
| Software testing 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. |
|
Types of Software Testing
|
|
| Alpha testing is the testers and model customers together test the software in development site. |
|
| Beta Testing is the testers and real customers together test the software in customer site. |
|
| Unit testing refers to tests that verify the functionality of a specific section of code, usually at the function level. These type of tests are usually written by developers as they work on code (white-box style), to ensure that the specific function is working as expected. One function might have multiple tests, to catch corner cases or other branches in the code. |
|
| Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. It works to expose defects in the interfaces and interaction between integrated components (modules). Progressively larger groups of tested software components corresponding to elements of the architectural design are integrated and tested until the software works as a system. |
|
| System Testing tests a completely integrated system to verify that it meets its requirements. |
|
| Performance testing can be applied to understand the application scalability. This sort of testing is particularly useful to identify performance bottlenecks in high use applications. Performance testing generally involves an automated test suite as this allows easy simulation of a variety of normal, peak, and exceptional load conditions. |
|
| Regression testing focuses on finding defects after a major code change has occurred. Specifically, it seeks to uncover software regressions, or old bugs that have come back. Such regressions occur whenever software functionality that was previously working correctly stops working as intended. |
|
| Stability testing checks to see if the software can continuously function well in or above an acceptable period. This activity of Non Functional Software Testing is oftentimes referred to as load (or endurance) testing. |
|
| Usability testing is needed to check if the user interface is easy to use and understand. |
|
| Security testing is a process to determine that an information system protects data and maintains functionality as intended. |
|
| Destructive testing attempts to cause the software or a sub-system to fail, in order to test its robustness. |
|
Benefits of Software QA
|
| Quality is critical for the success of software, customers demand quality. Quality essentially means satisfying customer. A software product is considered to be of good quality if it has very few defects when used by the customer. |