Testing Types
1. Manual testing : Manual testing includes testing a software manually, i.e., without using any automated
tool or any script
2. Automation Testing: Automation testing, which is also known as Test Automation, is when the tester writes
scripts and uses another software to test the product. This process involves automation of a manual process.
Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and
repeatedly.
Levels Of Testing
1. Unit Testing : in unit testing individual component of software tested. The purpose of
this testing is that each module is working properly
It focuses on the smallest unit of software design
(done by developer by using sample input and observing its sample output)
2. Integration Testing: in integration Testing individual units are combined and tested as group (developer)
(i) Top-down
(ii) Bottom-up
(iii) Sandwich
(iv) Big-Bang
Main Purpose of Integration Testing :
To check moudules are communicating each other as DFD Data Flow Diagram which is specified in
TDD ( Technical Document Diagram )
3. System Testing : in this testing we can test whole application (complete / integrated software is tested)
done by tester
4. Acceptance Testing : a level of software Testing in which software is tested for user acceptance
UAT done at client location where software is actually used
→ Alpha Testing : done by tester in company in presence of customer
→ Beta Testing : done by customer to check software is ok , satisfy requirement
Testing Types
1. Functional Testing
2.Non-Functional Testing
Functional testing
Is the process through which QAs determine if a piece of software is acting in accordance with pre-
determined requirements. It uses black-box testing techniques, in which the tester has no knowledge of the
internal system logic. Functional testing is only concerned with validating if a system works.
White box testing >> |internal logic | developer
Black box testing → | no need code |only functional |tester
Functional Testing : Testing what system does
Functional testing is a type of black-box testing. “does this actually work?”
The ultimate goal of functional testing is to ensure that software works according to specifications and
user expectations
input values
test cases
Compare actual and expected output
1. Non Functional Testing :
• Load testing
• Reliability
• The readiness of a system
• Usability testing
Eg. A practical example would be: checking how many people can simultaneously check out of a shopping
basket
2. Black Box Testing : (without code) High level
Black box testing is that kind of software testing you can do when you do not have the source code,
just the executable code in hand
The testing is done without the internal knowledge of the products
3. White box testing : (with code) low level
Monitoring internal structure . check internal logic . done by developer
4. Smoke testing : (Testing on newly released build → compulsary requirement )
It is first testing on newly released build ... (Build Verification Testing)
Check → the deployed software build is stable or not.
Different Types of Testing:
• Black Box testing: Mainly perform by testers
• White box testing: Mainly perform by developers
• Unit testing: Part of White box testing
• Acceptance testing: This is the final testing done by Customer based on the agreements Load / stress
• Performance testing : Testing an application load capacity
• Usability testing: Testing to determine the user friendly ness of the application
• Install / Uninstall testing: Testing of full, partial, or upgrade install / uninstall processes.
• Recovery / failover testing: Testing to determine how well a system recovers from crashes, failures,
or other major problems.
• Incremental integration testing: Continuous testing of an application as new functionality is added
• Ad-hoc testing: Conducting testing without requirements
• Comparison testing: Comparing software weaknesses and strengths to competing products.
• Alpha testing: Part of UAT
• Beta testing: Part of UAT
• Integration testing: validating combined modules of an application
• Functional testing: part of black box testing
• System testing: part of black box testing and validating the system requirements
• End to End testing: similar to system testing
• Sanity testing or smoke testing: An initial validation of a New build or release
• Regression testing: validating the existing functionality of the application once new fixes added
• Compatibility testing: Testing an application in different environments.
White box testing
Is an approach that allows testers to inspect and verify the inner workings of a software system—its
code, infrastructure, and integrations with external systems
White box testing techniques
There are many ways you can analyze software with white box testing. Most testers will use a process called
code coverage analysis to eliminate gaps in the testing of the code. There are a variety of techniques you can
use to accomplish this, including:
Statement coverage:
This technique ensures that each line in the code is tested at least once to find faulty code more easily.
Branch coverage:
Using this technique, each possible path or decision point of a software application is checked for
accuracy.
Condition coverage:
All individual conditions are checked.
Multiple condition coverage:
All imaginable combinations of all the conceivable condition outcomes are tested at least once.
Basis path testing:
Control graphs are created from either flowcharts or code. Cyclomatic complexity is then calculated to
define the number of independent paths so that the minimum number of test cases can be designed for
each path.
Flow chart notation:
This technique uses a directed graph made up of nodes and edges, where each node represents a decision
point or sequence of statements.
Cyclomatic complexity:
This is the measure of a software's logical and cyclomatic complexity. It is used to define how many
independent paths are present.
Loop testing:
Loops are commonly used in white box testing and are fundamental to many algorithms. Problems are
often found at the beginning or the end of a loop. Loop testing can be divided into simple loops, nested
loops and concatenated loops.
Source: Google and SDET- QA Automation Techie
Comentários