The software testing is done at all the levels of software development with specific objectives at each level. The software project documents are reviewed at each level to identify the errors i.e. static testing. The developers test the programs and interfaces in white box testing.The QA team performs the system testing after white box testing. There is a huge list of software testing types defined in system testing. The software testing types can have synonyms or slightly varying types can be given different names.
The system testing can be either functional testing or a non functional testing. In functional testing, the QA team tests “what the system does?” and in non functional testing, “how the system works?”. Usually the software testing begins with functional testing that includes build acceptance testing or initial level testing, detailed testing of software functionalities, retesting and regression testing. The software testing types also include testing the software for browser compatibility, interfaces between the independent software. The non functional software testing types can be testing security and performance of the software.
Build acceptance testing or initial level testing: A build, in simple terms is a complied code packaged as a single file i.e. .exe file. A build is tested for initial steps to check the readiness of the software for the detailed testing. e.g.: testing URL, page links, buttons etc.
Functional testing: The QA team tests all the functionalities of software in depth with different data sets which could be either manual testing or automation testing. The QA team identifies the defects and reports to developers.
Retesting: In the retesting, QA team tests if the defects are fixed appropriately by the developer.
Regression testing: The QA team tests the software to check if new defects are introduced into software due to changes in the software and its environment. Due to changes in the programs, there are possibilities of new defects in the related functionalities.
Cross browser testing: It is to test the compatibility of the software with different browsers of different versions using cross browser testing tools.
External interface testing: It is also called system interface testing. The interface between two independent software is tested. e.g.: payment interface between flight reservation software and payment gateway.
Security testing: Security testing is about testing the security features of the software. The software should be secured from malicious attacks and hackers.
Performance testing: The speed or the efficiency of the software is tested in the performance testing which depends on various factors like number of users, volume of data in server, resources and usage.
Database testing: Database testing is to view and validate the data in the database.
There are several other software testing types like robustness testing, usability testing, high availability testing, adhoc testing, compatibility testing, configuration testing, penetration testing, and the list goes on.
Software Testing Types:Check your understanding
1. Describe the different software testing types not listed in above article.