Chapter :1
What is Software Testing ?
● Software Testing ≠ Test Execution
● It is a process that includes many different
levels
● Execution is one these activities
Dynamic Testing
● Dynamic Testing is a software testing method used to test the
dynamic behaviour of software code.
● The main purpose of dynamic testing is to test software behaviour
with dynamic variables or variables which are not constant and
finding weak areas in software runtime environment.
● The code must be executed in order to test the dynamic behavior.
Dynamic Testing Example
Suppose we are testing a Login Page where we have two fields say “Username” and
“Password” and the Username is restricted to Alphanumeric.
When the user enters Username as “Abc99”, the system accepts the same. Where as
when the user enters as Abc99@123 then the application throws an error message. This
result shows that the code is acting dynamically based on the user input.
Static Testing
● Static Testing is a software testing technique which is used to
check defects in software application without executing the code.
● Static testing is done to avoid errors at an early stage of
development as it is easier to identify the errors and solve the
errors.
● It also helps finding errors that may not be found by Dynamic
Testing.
Static Testing
● Manual examinations: Manual examinations include
analysis of code done manually, also known as
REVIEWS.
● Automated analysis using tools: Automated analysis are
basically static analysis which is done using tools.
Objectives of Software Testing
Relationship Between Testing & Debugging
Test Process
Test Process Activities
Test Levels
● Test levels are groups of test activities that are organized and
managed together.
● Each test level is an instance of the test process
● Test levels are related to other activities within the software
development lifecycle.
Test Levels
Unit/Component Testing
Focuses on
components that are
separately testable
Integration Testing
Integration testing focuses
on interactions between
components or systems
Integration Testing
● Component integration ● System integration
testing is often the testing is generally the
responsibility of responsibility of
developers. testers.
System Testing
● System testing
focuses on the
behavior and
capabilities of a
whole system or
product
System Testing
● System testing often produces information that is used
by stakeholders to make release decisions
● The test environment should ideally correspond to the
final target or production environment
● It should focus on the overall, end-to-end behavior of
the system as a whole
● Independent testers typically carry out system testing .
Acceptance Testing
Acceptance testing, like
system testing, typically
focuses on the behavior and
capabilities of a whole
system or product
Testing Types
● Functional Testing ● Static Testing
● Non Functional Testing
● Retesting
● Black Box Testing
● White Box Testing ● Regression Testing
● Dynamic Testing ● Smoke Testing
Software Quality Assurance(SQA)
● SQA is a means & practice of monitoring the software
engineering process
● It is used to ensure the proper quality of the software
● It is simply a way to assure the quality of the software
● It works parallely with the development of the software
● It focuses on improving the process of development of
software
SQA Activities
● SQA Management Plan
● Set the Checkpoints
● Multi-testing Strategy
● Measure Change Impact
● Manage Good Relations
Project vs Product
● Way of executing a plan ● Way of answering a specific
● Has a beginning and an end need
date ● Permanent (until
● Short term project team decommissioned)
● Predictive planning ● Long term feature team
● One-off delivery ● Adaptive planning (Iterative)
● Continuous Process
● It has project requirements
● Evolving Customer Need