Different Types of Software Testing
Different Types of Software Testing
1. Manual Testing
2. Automation Testing
1. Manual Testing: Manual testing is a technique to test the software that is carried out using the
functions and features of an application. Manual testing is time-consuming because it is done by
humans, and there is a chance of human errors.
Fast and accurate visual feedback: It detects almost every bug in the software application and is
used to test the dynamically changing GUI designs like layout, text, etc.
Less expensive: It is less expensive as it does not require any high-level skill or a specific type of tool.
No coding is required: No programming knowledge is required while using the black box testing
method. It is easy to learn for the new testers.
Efficient for unplanned changes: Manual testing is suitable in case of unplanned changes to the
application, as it can be adopted easily.
2. Automation Testing: Automated Testing is a technique where the Tester writes scripts on their
own and uses suitable Software or Automation Tool to test the software.
Advantages of Automation Testing:
Simplifies Test Case Execution: Automation testing can be left virtually unattended and thus
it allows monitoring of the results at the end of the process.
Improves Reliability of Tests: Automation testing ensures that there is equal focus on all the
areas of the testing, thus ensuring the best quality end product.
Increases amount of test coverage: Using automation testing, more test cases can be
created and executed for the application under test. Thus, resulting in higher test coverage
and the detection of more bugs.
Minimizing Human Interaction: In automation testing, everything is automated from test
case creation to execution thus there are no changes for human error due to neglect.
Types of Manual Testing
White box testing is also known as open box testing, glass box
testing, structural testing, clear box testing, and transparent box
testing.
Functional Testing
The test engineer will check all the components systematically against
requirement specifications is known as functional testing. Functional
testing is also known as Component testing.
In functional testing, all the components are tested by giving the value,
defining the output, and validating the actual output with the expected
value.
o Unit Testing
o Integration Testing
o System Testing
1. Unit Testing
Unit testing is the first level of functional testing in order to test any
software. In this, the test engineer will test the module of an application
independently or test all the module functionality is called unit testing.
2. Integration Testing
It is the second level of functional testing, where we test the data flow
between dependent modules or interface between two features is
called integration testing.
o Incremental Testing
o Non-Incremental Testing
Incremental integration testing can further classify into two parts, which
are as follows:
Whenever the data flow is complex and very difficult to classify a parent
and a child, we will go for the non-incremental integration approach. The
non-incremental method is also known as the Big Bang method.
3. System Testing
Non-function Testing
o Performance Testing
o Usability Testing
o Compatibility Testing
1. Performance Testing
the test engineer will only focus on several aspects, such as Response
time, Load, scalability, and Stability of the software or an application.
o Load Testing
o Stress Testing
o Scalability Testing
o Stability Testing
o Load Testing
While executing the performance testing, we will apply some load on the
particular application to check the application's performance, known
as load testing. Here, the load could be less than or equal to the desired
load.
o Stress Testing
Primarily, stress testing is used for critical software, but it can also be
used for all types of software applications.
o Scalability Testing
o Stability Testing
2. Usability Testing
usability testing is when the software also undergoes various testing
processes which is performed by potential users before launching into the
market. It is a part of the software development lifecycle (SDLC).
3. Compatibility Testing
Since, the grey box testing includes access to internal coding for
designing test cases. Grey box testing is performed by a person who
knows coding as well as testing.
In software testing, we also have some other types of testing that are not
part of any above discussed testing, but those testing are required while
testing any software or an application.
o Smoke Testing
o Sanity Testing
o Regression Testing
o User Acceptance Testing
o Exploratory Testing
o Adhoc Testing
o Security Testing
o Globalization Testing
Example:
Sanity Testing
Regression Testing
Exploratory Testing
Adhoc Testing
Security Testing
Globalization Testing
Alpha Testing
Validation Testing
Verification Testing
Verification testing ensures that the software is built correctly and meets
its specified requirements.
Validation testing ensures that the software meets the needs of end-users
and is fit for its intended purpose.
1. What is a Test Case?
Ans: Test Cases can be simply determined as conditions that a tester will check whether the
code runs perfectly or not.
Ans: Automation Testing is used to reduce the testing efforts, also testing faster delivering
capability.
Ans: Manual testing involves a human tester interacting with the software to find bugs.
Automated testing uses scripts or tools to automate repetitive test cases.
Ans: Use manual testing for exploratory testing, usability evaluation, and complex
scenarios. Use automated testing for repetitive tasks, regression testing, and performance
testing.
Answer: Many tools are available for software testing, including test management tools,
automation frameworks, and performance testing tools. The specific tools used depend on the
project and testing needs.