SOFTWARE TESTING
Presented By
M.SINDHU
Assistant Professor,
Kongu Engineering College,
Perundurai.
M.SINDHU,Assistant Professor, Kongu Engineering College.
M.SINDHU,Assistant Professor, Kongu Engineering College.
UNIT-I
Fundamentals of Software Testing
Software testing is the process of
checking the quality, functionality, and
performance of a software product before
launching. To do software testing, testers
either interact with the software manually or
execute test scripts to find bugs and errors,
ensuring that the software works as
expected.
SOFTWARE TESTING
M.SINDHU,Assistant Professor, Kongu Engineering College.
M.SINDHU,Assistant Professor, Kongu Engineering College.
 Testing shows presence of defects
 Exhaustive testing is impossible
 Early testing
 Defect clustering
 Pesticide paradox
 Testing is context dependent
 Absence of errors fallacy
 Early testing saves time and money
 The testing process must be planned and documented
 Defects must be removed
 Testing is a continuous process
PRINCIPLES OF TESTING
M.SINDHU,Assistant Professor, Kongu Engineering College.
Types of Software Testing
 Unit Testing
 Integration Testing
 Regression Testing
 Smoke Testing
 System Testing
 Alpha Testing
 Beta Testing
 Performance Testing
M.SINDHU,Assistant Professor, Kongu Engineering College.
Phases of
Software Development Life Cycle
Requirement Phase
Design Phase
Build /Development Phase
Testing Phase
Deployment/ Deliver Phase
Maintenance
M.SINDHU,Assistant Professor, Kongu Engineering College.
Quality Assurance & Quality Control
 Quality Assurance : Software quality assurance is (also
known as QA) a sequence of tasks to prevent defects
and ensure that the techniques, methods,
approaches, and processes are designed for a
specific application must be implemented correctly.
This is an ongoing process within the development of a
software system.
 Quality Control : Quality Control also known as QC is a
sequence of tasks to ensure the quality of software by
identifying defects and correction of defects in the
developed software. It is a reactive process, and the
main purpose of this process is to correct all types of
defects before releasing the software. The process is
done by eliminating sources of problems (which cause
to low the quality) through the corrective tools so that
software can meet customer's requirements and high
quality.
M.SINDHU,Assistant Professor, Kongu Engineering College.
Difference between Quality Assurance and Quality Control
Points Quality Assurance Quality Control
Definition QA is a group of activities which ensures that
the quality of processes which is used during
the development of the software always be
maintained.
QC is a group of activities to detect the
defects in the developed software.
Focus The focus of QA is to prevent defects in the
developing software by paying attention to
processes.
The focus of QC is to identify defects in
the developed software by paying
attention to testing processes.
How Establishment of the high-quality management
system and periodic audits for conformance of
the operations of the developing software.
Detecting and eliminating the quality
problem elements by using testing
techniques and tools in the developed
software.
What QA ensures prevention of quality problem
elements by using systematic activities
including documentation.
QC ensures identification and elimination
of defects by using processes and
techniques to achieve and maintain high
quality of the software.
Orientation QA is process oriented. QC is product oriented.
Type of process QA is a proactive process. It concerns to
improve development so; defects do not arise
in the testing period.
QC is a reactive process because it
concerns to identify defects after the
development of product and before its
release.
Responsibility Each and every member of the development
team is responsible for QA
Only the specific testing team is
responsible for QC
Example Verification is the example of QA Validation is the example of QC
M.SINDHU,Assistant Professor, Kongu Engineering College.
What is Verification?
 Verification is the process of checking that software
achieves its goal without any bugs. It is the process to
ensure whether the product that is developed is right or
not. It verifies whether the developed product fulfills the
requirements that we have. Verification is static testing.
Verification means Are we building the product right?
What is Validation?
 Validation is the process of checking whether the
software product is up to the mark or in other words
product has high-level requirements. It is the process of
checking the validation of the product i.e. it checks what
we are developing is the right product. It is validation of
the actual and expected products. Validation is dynamic
testing.
Validation means Are we building the right product?
M.SINDHU,Assistant Professor, Kongu Engineering College.
White Box Testing
 white box testing which also known as glass
box is testing, structural testing, clear box
testing, open box testing and transparent box
testing. It tests internal coding and
infrastructure of a software focus on checking
of predefined inputs against expected and
desired outputs. It is based on inner workings
of an application and revolves around
internal structure testing. In this type of testing
programming skills are required to design test
cases. The primary goal of white box testing is
to focus on the flow of inputs and outputs
through the software and strengthening the
security of the software.
M.SINDHU,Assistant Professor, Kongu Engineering College.
Static Testing
 Static testing is a verification process used to test
the application without implementing the code of
the application. And it is a cost-effective process.
 To avoid the errors, we will execute Static testing in
the initial stage of development because it is
easier to identify the sources of errors, and it can fix
easily.
 In other words, we can say that Static testing can
be done manually or with the help of tools to
improve the quality of the application by finding
the error at the early stage of development; that is
also called the verification process.
M.SINDHU,Assistant Professor, Kongu Engineering College.
Structural Testing
 Another type of Software Testing technique is Structural
testing, which is used to test the internal design of the
software or structure of the coding for the particular
software.
 In this testing, the development team members are
included in the testing team to execute the software's
internal design. The working of structural testing is opposite
to Behavioral testing.
 Structural testing is also known as white-box testing, glass
box testing, and clear-box testing. Developers mostly
implement it to identify the issue and fix them quickly.
 The structural testing process requires an in-depth
knowledge of the programming language and is opposite
to Functional Testing.
 The knowledge of the code's internal executions and how
the software is implemented is a necessity for the test
engineer to implement the structural testing.

Software Testing- Unit -1(Fundamentals of Software Testing)

  • 1.
    SOFTWARE TESTING Presented By M.SINDHU AssistantProfessor, Kongu Engineering College, Perundurai. M.SINDHU,Assistant Professor, Kongu Engineering College.
  • 2.
    M.SINDHU,Assistant Professor, KonguEngineering College. UNIT-I Fundamentals of Software Testing
  • 3.
    Software testing isthe process of checking the quality, functionality, and performance of a software product before launching. To do software testing, testers either interact with the software manually or execute test scripts to find bugs and errors, ensuring that the software works as expected. SOFTWARE TESTING M.SINDHU,Assistant Professor, Kongu Engineering College.
  • 4.
    M.SINDHU,Assistant Professor, KonguEngineering College.  Testing shows presence of defects  Exhaustive testing is impossible  Early testing  Defect clustering  Pesticide paradox  Testing is context dependent  Absence of errors fallacy  Early testing saves time and money  The testing process must be planned and documented  Defects must be removed  Testing is a continuous process PRINCIPLES OF TESTING
  • 5.
    M.SINDHU,Assistant Professor, KonguEngineering College. Types of Software Testing  Unit Testing  Integration Testing  Regression Testing  Smoke Testing  System Testing  Alpha Testing  Beta Testing  Performance Testing
  • 6.
    M.SINDHU,Assistant Professor, KonguEngineering College. Phases of Software Development Life Cycle Requirement Phase Design Phase Build /Development Phase Testing Phase Deployment/ Deliver Phase Maintenance
  • 7.
    M.SINDHU,Assistant Professor, KonguEngineering College. Quality Assurance & Quality Control  Quality Assurance : Software quality assurance is (also known as QA) a sequence of tasks to prevent defects and ensure that the techniques, methods, approaches, and processes are designed for a specific application must be implemented correctly. This is an ongoing process within the development of a software system.  Quality Control : Quality Control also known as QC is a sequence of tasks to ensure the quality of software by identifying defects and correction of defects in the developed software. It is a reactive process, and the main purpose of this process is to correct all types of defects before releasing the software. The process is done by eliminating sources of problems (which cause to low the quality) through the corrective tools so that software can meet customer's requirements and high quality.
  • 8.
    M.SINDHU,Assistant Professor, KonguEngineering College. Difference between Quality Assurance and Quality Control Points Quality Assurance Quality Control Definition QA is a group of activities which ensures that the quality of processes which is used during the development of the software always be maintained. QC is a group of activities to detect the defects in the developed software. Focus The focus of QA is to prevent defects in the developing software by paying attention to processes. The focus of QC is to identify defects in the developed software by paying attention to testing processes. How Establishment of the high-quality management system and periodic audits for conformance of the operations of the developing software. Detecting and eliminating the quality problem elements by using testing techniques and tools in the developed software. What QA ensures prevention of quality problem elements by using systematic activities including documentation. QC ensures identification and elimination of defects by using processes and techniques to achieve and maintain high quality of the software. Orientation QA is process oriented. QC is product oriented. Type of process QA is a proactive process. It concerns to improve development so; defects do not arise in the testing period. QC is a reactive process because it concerns to identify defects after the development of product and before its release. Responsibility Each and every member of the development team is responsible for QA Only the specific testing team is responsible for QC Example Verification is the example of QA Validation is the example of QC
  • 9.
    M.SINDHU,Assistant Professor, KonguEngineering College. What is Verification?  Verification is the process of checking that software achieves its goal without any bugs. It is the process to ensure whether the product that is developed is right or not. It verifies whether the developed product fulfills the requirements that we have. Verification is static testing. Verification means Are we building the product right? What is Validation?  Validation is the process of checking whether the software product is up to the mark or in other words product has high-level requirements. It is the process of checking the validation of the product i.e. it checks what we are developing is the right product. It is validation of the actual and expected products. Validation is dynamic testing. Validation means Are we building the right product?
  • 10.
    M.SINDHU,Assistant Professor, KonguEngineering College. White Box Testing  white box testing which also known as glass box is testing, structural testing, clear box testing, open box testing and transparent box testing. It tests internal coding and infrastructure of a software focus on checking of predefined inputs against expected and desired outputs. It is based on inner workings of an application and revolves around internal structure testing. In this type of testing programming skills are required to design test cases. The primary goal of white box testing is to focus on the flow of inputs and outputs through the software and strengthening the security of the software.
  • 11.
    M.SINDHU,Assistant Professor, KonguEngineering College. Static Testing  Static testing is a verification process used to test the application without implementing the code of the application. And it is a cost-effective process.  To avoid the errors, we will execute Static testing in the initial stage of development because it is easier to identify the sources of errors, and it can fix easily.  In other words, we can say that Static testing can be done manually or with the help of tools to improve the quality of the application by finding the error at the early stage of development; that is also called the verification process.
  • 12.
    M.SINDHU,Assistant Professor, KonguEngineering College. Structural Testing  Another type of Software Testing technique is Structural testing, which is used to test the internal design of the software or structure of the coding for the particular software.  In this testing, the development team members are included in the testing team to execute the software's internal design. The working of structural testing is opposite to Behavioral testing.  Structural testing is also known as white-box testing, glass box testing, and clear-box testing. Developers mostly implement it to identify the issue and fix them quickly.  The structural testing process requires an in-depth knowledge of the programming language and is opposite to Functional Testing.  The knowledge of the code's internal executions and how the software is implemented is a necessity for the test engineer to implement the structural testing.