When building a new website/application, Quality Assurance testing is an important step to ensure that you have developed a successful application.QA testing is to test the software whether specific requirements and expectations are being met. Performing these tests is an integral part of the software development process.
There are 2 types of testing: Functional and Automation Testing.
Automation testing is performed via code and test scripts. Functional testing is done by humans who can perform several different kinds of tests based on the desired results.
Types of Testing:
White Box Testing: White-box testing is a testing technique that checks the internal functioning of the system. In this method, testing is based on coverage of code statements, branches, paths, or conditions. White-Box testing is considered low-level testing.
Black Box Testing: A tester doesn't have any information about the internal working of the software system. Black box testing is a high level of testing that focuses on the behavior of the software. It involves testing from an external or end-user perspective. Black box testing can be applied to virtually every level of software testing. There are two types in it Functional Testing and Non-Functional Testing.
Functional Testing: Testing all the functionalities by providing appropriate input to verify whether the actual output matches the expected result or not.
Functional Testing Types:
Unit Testing: Unit Testing is a type of software testing where individual units or components of the software are tested. The purpose is to validate that each unit of the software code performs as expected. Unit Testing is done during the development (coding phase) of an application by the developers.
Integration Testing: Integration testing is a level of software testing where individual units/components are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.
Smoke Testing: smoke testing can be done during the build phase, to make sure that the received build is working as expected or not, here we can test major functionalities on an application to accept the build, if it is not working as expected we can reject the build.
Sanity Testing: sanity testing can be during the release phase here we can check the main functionalities of an application without going deeper. in sanity, we can check new functionalities and the bugs are fixed
Regression Testing: while doing testing if any changes have been made (modification has been made) the testers need to check whether the new changes don’t affect the existing functionality
Ad-hoc Testing: Ad-hoc testing is random testing here testers perform the testing without following any documentation and test design techniques, it is an informal testing type. can test the application without any test cases or business requirements.
Exploratory testing: the testers can test the application by exploring the functionality without having any knowledge of the application this testing activity is done by domain experts, they perform testing by exploring the functionality of an application without having the knowledge of an application.
User acceptance testing: it is nothing but pre-production testing, Business owners along with testers validate the functionality of an application, and it allows Business owners to accept or reject the application.
Non-Functional testing: Testing to check non-functional aspects (performance, usability, reliability, etc.) of a software application. It is designed to test the readiness of a system as per nonfunctional parameters, which are never addressed, by functional testing.
Non-Functional testing types:
Load Testing: Testing under a specific expected load. It determines how the software application behaves while being accessed by multiple users simultaneously. it ensures the stability of the application before deploying to production.
Stress Testing: Tested to measure software on its robustness and error-handling capabilities under hefty
load conditions and ensure that software doesn’t crash under those situations.
Volume Testing: to analyze the system performance by increasing the volume of data in the database, which shows the impact on response time and system behavior when exposed to a high volume of data.
Security Testing: tests the software for any vulnerabilities. It reveals the weaknesses and any potential exploitation in a system.
Endurance /soak testing: It is testing to verify the system with a significant load for a significant period to find out any system behavior under sustained use.
Grey Box Testing: Grey Box Testing is a software testing technique to test a software product or application with partial knowledge of the internal structure of the application. The purpose of grey box testing is to search and identify the defects due to improper code structure or improper use of applications.
Other Types of Testing to know:
Alpha Testing: Alpha Testing is a type of software testing performed to identify bugs before releasing the product to real users or to the public.
Beta Testing: Beta testing is performed by clients who are not part of the organization. Alpha testing is performed at the developer’s site. Beta testing is performed by the end-user of the product.
Static Testing: Static testing is a system of White Box testing where developers verify or check code to find faults.
Dynamic Testing: Dynamic Testing is a software testing method used to test the dynamic behavior of software code. The main purpose of dynamic testing is to test software behavior with dynamic variables or variables which are not constant and to find weak areas in the software runtime environment.
Difference between Static and Dynamic testing?
Static Testing | Dynamic Testing |
It’s done without executing the program. | Dynamic testing is done by executing the program. |
Static testing checks the code, requirement documents, and design documents to find errors | Dynamic testing checks the functional behavior of software system, memory/CPU usage and overall performance of the system |
Static testing is about the prevention of defects. | Dynamic testing is about finding and fixing defects. |
Static testing is the verification process. | Dynamic testing does the validation process. |
Static testing is performed before compilation | Dynamic testing is performed after compilation. |
Static testing techniques are structural and statement coverage | Dynamic testing techniques are Boundary Value Analysis & Equivalence Partitioning |
Conclusion: With all information, I hope you got a good knowledge of different types of testing to give error-free applications.