In this Quality Assurance Training session, you will learn about Testing Concepts and Manual Testing. Topic covered in this session are:
• Overview of Testing Life Cycle
• Testing Methodologies
• Static Testing
• Dynamic Testing
• Black Box Testing
• White Box Testing
• Gray Box Testing
• Levels of Testing
• Unit Testing
• Component Testing
• Integration Testing
• System/ Functional Testing
• Regression Testing
• UAT (User Acceptance Testing)
• Various Types of Testing
• Start And Stop Software Testing
• Class Assignment
For more information, about this quality assurance training, visit this link: https://www.mindsmapped.com/courses/quality-assurance/software-testing-training-with-hands-on-project-on-e-commerce-application/
4. Page 4Classification: Restricted
Overview of Testing Life Cycle
An Overview of Software testing
Software testing is an investigation conducted to identify defects and
provide stakeholders with information about the quality of a software
product under test.
It mainly serves two purposes:-
• identification of defects; and
• evaluating the quality of a product.
5. Page 5Classification: Restricted
Testing Methodologies
Static Testing
Static Testing, a software testing technique in which the software is tested
without executing the code. It has two parts as listed below:
Review - Typically used to find and eliminate errors or ambiguities in
documents such as requirements, design, test cases, etc.
Static analysis - The code written by developers are analyzed (usually by
tools) for structural defects that
may lead to defects.
6. Page 6Classification: Restricted
Dynamic Testing
Dynamic Testing is a kind of software testing technique using which the
dynamic behavior of the code is analyzed.
For Performing dynamic, testing the software should be compiled and
executed and parameters such as memory usage, CPU usage, response
time and overall performance of the software are analyzed.
Dynamic testing involves testing the software for the input values and
output values are analyzed. Dynamic testing is the Validation part of
Verification and Validation.
The Dynamic Testing Techniques are broadly classified into two
categories. They are:
• Functional Testing
• Non-Functional Testing
7. Page 7Classification: Restricted
Black Box Testing
No knowledge of internal design or code required.
Tests are based on requirements and functionality
OR
IT is a method of software testing that examines the functionality of an
application (e.g. what the software does) without peering into its internal
structures or workings
Examples:
• Incorrect or missing functions
• Interface errors
• Errors in data structures or external database access
• Performance errors
• Initialization and termination errors
8. Page 8Classification: Restricted
White Box Testing
Knowledge of the internal program design and code required. Tests are
based on coverage of code statements,branches,paths,conditions.
The tester needs to have a look inside the source code and find out which
unit/chunk of the code is behaving inappropriately.
Examples:
• All independent paths within a module have been exercised at least
once
• Exercise all logical decisions on their true and false sides
• Execute all loops at their boundaries and within their operational
bounds
• Exercise internal data structures to ensure their validity
9. Page 9Classification: Restricted
Gray Box Testing
Grey Box testing is a technique to test the application with limited
knowledge of the internal workings of an application. In software testing,
the term the more you know the better carries a lot of weight when
testing an application.
Gray box testing is commonly used in penetration tests.
10. Page 10Classification: Restricted
Levels of Testing
Unit Testing
This type of testing is performed by the developers before the setup is handed
over to the testing team to formally execute the test cases. Unit testing is
performed by the respective developers on the individual units of source code
assigned areas.
The goal of unit testing is to isolate each part of the program and show that
individual parts are correct in terms of requirements and functionality.
Component Testing
It is also called as module testing. The basic difference between the unit testing
and component testing is in unit testing the developers test their piece of code
but in component testing the whole component is tested.
For example, in a student record application there are two modules one which will
save the records of the students and other module is to upload the results of the
students. Both the modules are developed separately and when they are tested
one by one then we call this as a component or module testing
11. Page 11Classification: Restricted
Integration Testing
The testing of combined parts of an application to determine if they
function correctly together is Integration testing. There are two methods
of doing Integration Testing Bottom-up Integration testing and Top Down
Integration testing.
1 Bottom-up integration
This testing begins with unit testing, followed by tests of
progressively higher-level combinations of units called modules or
builds.
2 Top-Down integration
This testing, the highest-level modules are tested first and
progressively lower-level modules are tested after that. In a
comprehensive software development environment, bottom-up testing is
usually done first.
12. Page 12Classification: Restricted
System Testing
This is the next level in the testing and tests the system as a whole. Once all
the components are integrated, the application as a whole is tested
rigorously to see that it meets Quality Standards. This type of testing is
performed by a specialized testing team.
System testing is so important because of the following reasons:
• System Testing is the first step in the Software Development Life Cycle,
where the application is tested as a whole.
• The application is tested thoroughly to verify that it meets the functional
and technical specifications.
• The application is tested in an environment which is very close to the
production environment where the application will be deployed.
• System Testing enables us to test, verify and validate both the business
requirements as well as the Applications Architecture.
13. Page 13Classification: Restricted
Regression Testing
Whenever a change in a software application is made it is quite possible that
other areas within the application have been affected by this change. To
verify that a fixed bug hasn't resulted in another functionality or business
rule violation is Regression testing. The intent of Regression testing is to
ensure that a change, such as a bug fix did not result in another fault being
uncovered in the application.
Regression testing is so important because of the following reasons:
• Minimize the gaps in testing when an application with changes made has to
be tested.
• Testing the new changes to verify that the change made did not affect any
other area of the application.
• Mitigates Risks when regression testing is performed on the application.
• Test coverage is increased without compromising timelines.
• Increase speed to market the product.
14. Page 14Classification: Restricted
User Acceptance Testing (UAT)
UAT is the last phase of the software testing process. During UAT, actual
software users test the software to make sure it can handle required tasks
in real-world scenarios, according to specifications.
UAT is one of the final and critical software project procedures that must
occur before newly developed software is rolled out to the market.
UAT is also known as beta testing, application testing or end user testing.
UAT is important because it helps demonstrate that required business
functions are operating in a manner suited to real-world circumstances and
usage