The main goal of QA Testing is to check the robustness of a software solution and its compliance with the requirements stated in the requirements specification. Realization of QA testing involves accomplishment of several major activities:
Capability testing assesses the level of realization of functional requirements for the software product being developed and discovers the major problems related to the operation of the software product.
Performance testing measures response times and system performance under varying conditions, including the system's ability to handle a large number of visitors to the web service.
Usability testing evaluates the level of user-friendliness of the software product interface from the point of view of a regular user.
Cross-browser testing ensures that the software product can operate across various web browsers, and finds and eliminates interface errors.
Installation testing verifies the quality of the software product's installation, setting up, updating, and removal processes.
Mobile devices testing measures the software's performance on smartphones, tablets, and other mobile devices.
Test automation refers to the development or adaptation of dedicated software tools that will run pre-defined test cases on your software in automatic mode.
Regression testing reveals regression bugs. Regression is a bug that was introduced to the software after the proper testing and subsequent fixing of bugs.
Manual testing is typically used to check an end user's capabilities with respect to the software product. It is performed without the use of any special testing tools; the tester simply takes over the role of a regular end user. Manual testing is particularly critical for large projects and multi-user systems.
Automated testing uses dedicated software tools and/or scripts written by the tester to check the performance of the software product and find errors in the software extensions that are being added.