Learning Module I
Software Testing
By
Harsimrat Deo
(Assistant Professor, PG Department of Computer
Science, Mata Gujri College, Fatehgarh-Sahib)
Topics to be Covered
 Meaning of software testing
 Software testing lifecycle
 Principles of software testing
 Techniques of software testing
Learning Outcomes
 After going through this module the students will be
able to know the concept of software testing
 Understand the software testing lifecycle
 Learn principles of software testing and
 Know the techniques of software testing
Software testing refers to process of
evaluating the software with intention to find
out error in it.
Software testing is a technique aimed at
evaluating an attribute or capability of a
program or product and determining that it
meets its quality.
Software testing is also used to test the
software for other software quality factors
like reliability, usability, integrity, security,
capability, efficiency, portability,
maintainability, compatibility etc.
Software Testing
Software Testing
Principles of Software Testing
1. Testing shows the presence of bugs
Testing an application can only reveal that
one or more defects exist in the application,
however, testing alone cannot prove that the
application is error free. Therefore, it is
important to design test cases which find as
many defects as possible.
2. Exhaustive testing is impossible
Unless the application under test (AUT)
has a very simple logical structure and
limited input, it is not possible to test all
possible combinations of data and
scenarios. For this reason, risk and
priorities are used to concentrate on the
most important aspects to test.
3. Early testing
The sooner we start the testing activities the
better we can utilize the available time. As
soon as the initial products, such the
requirement or design documents are
available, we can start testing. It is common
for the testing phase to get squeezed at the
end of the development lifecycle, i.e. when
development has finished, so by starting
testing early, we can prepare testing for each
level of the development lifecycle.
How Much Testing Is Enough?
Another important point about early
testing is that when defects are found
earlier in the lifecycle, they are much
easier and cheaper to fix. It is much
cheaper to change an incorrect
requirement than having to change a
functionality in a large system that is
not working as requested or as
designed!
4. Defect clustering
During testing, it can be observed that most of
the reported defects are related to small number
of modules within a system. i.e. small number of
modules contain most of the defects in the
system. This is the application of the Pareto
Principle to software testing: approximately 80%
of the problems are found in 20% of the
modules.
5. The pesticide paradox
If you keep running the same set of tests over and over
again, chances are no more new defects will be discovered
by those test cases. Because as the system evolves, many
of the previously reported defects will have been fixed
and the old test cases do not apply anymore. Anytime a
fault is fixed or a new functionality added, we need to do
regression testing to make sure the new changed software
has not broken any other part of the software. However,
those regression test cases also need to change to reflect
the changes made in the software to be applicable and
hopefully fine new defects.
6. Testing is context dependent
Different methodologies, techniques and types of
testing is related to the type and nature of the
application. For example, a software application in a
medical device needs more testing than a games
software. More importantly a medical device software
requires risk based testing, be compliant with medical
industry regulators and possibly specific test design
techniques. By the same token, a very popular website,
needs to go through rigorous performance testing as
well as functionality testing to make sure the
performance is not affected by the load on the servers.
7. Absence of errors fallacy
Just because testing didn’t find any defects in
the software, it doesn’t mean that the software
is ready to be shipped. Were the executed tests
really designed to catch the most defects? or
where they designed to see if the software
matched the user’s requirements? There are
many other factors to be considered before
making a decision to ship the software
Techniques of software testing
1. Manual testing (static testing): It is a
slow process and laborious where testing is
done statically .It is done in early phase of
life cycle. It is also called static testing. It is
done by analyst, developer and testing team.
Different Manual testing Techniques are as
follows:-
A) walk through
B) Informal Review
C) Technical Review
D) Inspection
A) Walk through:
•It is not a formal process/review
•It is led by the authors
•Author guide the participants through the
document according to his or her thought
process to achieve a common understanding
and to gather feedback.
B) Informal Review:
Informal reviews are applied many times during
the early stages of the life cycle of the document.
A two person team can conduct an informal
review. In later stages these reviews often involve
more people and a meeting. The goal is to keep
the author and to improve the quality of the
document. The most important thing to keep in
mind about the informal reviews is that they are
not documented.
C) Technical Review:
A Technical review is a static white-box
testing technique which is conducted to
spot the defects early in the life cycle that
cannot be detected by black box testing
techniques.
•Technical Reviews are documented and use
a defect detection process that has peers and
technical specialist as part of the review
process.
•The Review process doesn't involve
management participation.
•It is usually led by trained moderator who is
NOT the author.
•The report is prepared with the list of issues
that needs to be addressed.
D) Inspection:
•It is the most formal review type
•It is led by the trained moderators
•During inspection the documents are prepared and
checked thoroughly by the reviewers before the
meeting
•A separate preparation is carried out during which the
product is examined and the defects are found
•The defects found are documented in a logging list or
issue log
•A formal follow-up is carried out by the moderator
applying exit criteria
•It involves peers to examine the product
2. Automated Testing (Dynamic testing):
In this tester runs the script on the testing tool
and testing is done. Automated testing is also
called dynamic testing.
Automated testing is classified into four Types:-
A) Correctness testing
B) Performance testing
C) Reliability testing
D) Security testing
A) Correctness Testing:
Correctness is the minimum requirement of
software. Correctness testing will need some
type of oracle, to tell the right behavior from the
wrong one. The tester may or may not know the
inside details of the software module under test.
Therefore either white box testing or black box
testing can be used.
B) Performance Testing :
Performance Testing involve all the phases as the
mainstream testing life cycle as an independent
discipline which involve strategy such as plan,
design, execution, analysis and reporting. Not all
software has specification on performance
explicitly. But every system will have implicit
performance requirements. Performance has
always been a great concern and driving force of
computer evolution.
C) RELIABILITY TESTING:
The purpose of reliability testing is to discover
potential problems with the design as early as
possible and, ultimately, provide confidence that
the system meets its reliability requirements.
Reliability testing is related to many aspects of
software in which testing process is included; this
testing process is an effective sampling method to
measure software reliability. In system after
software is developed reliability testing techniques
like analyze or fix techniques can be carried out to
check whether to use the software.
D) SECURITY TESTING :
Software quality, reliability and security are
tightly coupled. Flaws in software can be
exploited by intruders to opens security holes.
Security testing makes sure that only the
authorized personnel can access the program
and only the authorized personnel can access the
functions available to their security level. The
security testing is performed to check whether
there is any information leakage in the sense by
encrypting the application or using wide range of
software’s and hardware's and firewall etc.

More Related Content

PPTX
PDF
Validation & verification software engineering
PPTX
Software QA Fundamentals by Prabhath Darshana
PPTX
Software quality assurance
PPTX
Testing throughout the software life cycle - Testing & Implementation
PPTX
Software quality assurance
DOC
Chapter 8 software quality assurance and configuration audit
PDF
Software validation do's and dont's may 2013
Validation & verification software engineering
Software QA Fundamentals by Prabhath Darshana
Software quality assurance
Testing throughout the software life cycle - Testing & Implementation
Software quality assurance
Chapter 8 software quality assurance and configuration audit
Software validation do's and dont's may 2013

What's hot (20)

PPTX
Software Quality Analyst and Software Quality Management
PPT
Software quality assurance
PPT
Software Engineering (Software Quality Assurance)
PPT
Software Quality Assurance
PPT
Software quality assurance
PPTX
Software testing
PPTX
Software quality assurance
PPTX
Ch 10 cost of software quality
PPTX
Software engineering quality assurance and testing
PPTX
Software maintenance Unit5
PPTX
Software configuration management
PPT
Software Quality Management
PPTX
Software quality assurance
PPT
Software Testing
PPT
Introduction To Software Quality Assurance
PPT
PPT
Software Quality Framework Introduction
PDF
Sqa 2 marks
PDF
Software quality management standards
PPTX
Rhonda Software Quality Assurance Services
Software Quality Analyst and Software Quality Management
Software quality assurance
Software Engineering (Software Quality Assurance)
Software Quality Assurance
Software quality assurance
Software testing
Software quality assurance
Ch 10 cost of software quality
Software engineering quality assurance and testing
Software maintenance Unit5
Software configuration management
Software Quality Management
Software quality assurance
Software Testing
Introduction To Software Quality Assurance
Software Quality Framework Introduction
Sqa 2 marks
Software quality management standards
Rhonda Software Quality Assurance Services
Ad

Similar to Software Testing (20)

DOCX
Manual Testing guide by nagula sai kiran.docx
ODP
Importanc of softwaretesting
PPTX
Aim (A).pptx
PPTX
Software testing
PDF
What is software testing in software engineering?
PDF
What is Testing in Software Engineering?
PPTX
Software testing & Quality Assurance
PPSX
Introduction to software testing
ODP
Testing Software
PPTX
Role of Testing
PPTX
Software Quality Assurance
PPTX
Software Testing
PPTX
Software testing sengu
DOCX
Istqb v.1.2
PPTX
Software unit4
PPTX
SOFTWARE TESTING UNIT-4
PPTX
UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4
PPTX
SOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptx
PPTX
Software testing
PPS
ISTQB Foundation - Chapter 2
Manual Testing guide by nagula sai kiran.docx
Importanc of softwaretesting
Aim (A).pptx
Software testing
What is software testing in software engineering?
What is Testing in Software Engineering?
Software testing & Quality Assurance
Introduction to software testing
Testing Software
Role of Testing
Software Quality Assurance
Software Testing
Software testing sengu
Istqb v.1.2
Software unit4
SOFTWARE TESTING UNIT-4
UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4
SOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptx
Software testing
ISTQB Foundation - Chapter 2
Ad

Recently uploaded (20)

PPTX
Unit 4 Computer Architecture Multicore Processor.pptx
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PPTX
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
PDF
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
PPTX
TNA_Presentation-1-Final(SAVE)) (1).pptx
DOCX
Cambridge-Practice-Tests-for-IELTS-12.docx
PPTX
B.Sc. DS Unit 2 Software Engineering.pptx
PPTX
Computer Architecture Input Output Memory.pptx
PDF
HVAC Specification 2024 according to central public works department
PDF
My India Quiz Book_20210205121199924.pdf
PDF
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
Empowerment Technology for Senior High School Guide
PDF
IGGE1 Understanding the Self1234567891011
PDF
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
PDF
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
PPTX
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
PDF
Trump Administration's workforce development strategy
PDF
Hazard Identification & Risk Assessment .pdf
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
Unit 4 Computer Architecture Multicore Processor.pptx
Chinmaya Tiranga quiz Grand Finale.pdf
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
TNA_Presentation-1-Final(SAVE)) (1).pptx
Cambridge-Practice-Tests-for-IELTS-12.docx
B.Sc. DS Unit 2 Software Engineering.pptx
Computer Architecture Input Output Memory.pptx
HVAC Specification 2024 according to central public works department
My India Quiz Book_20210205121199924.pdf
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
Paper A Mock Exam 9_ Attempt review.pdf.
Empowerment Technology for Senior High School Guide
IGGE1 Understanding the Self1234567891011
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
Trump Administration's workforce development strategy
Hazard Identification & Risk Assessment .pdf
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc

Software Testing

  • 1. Learning Module I Software Testing By Harsimrat Deo (Assistant Professor, PG Department of Computer Science, Mata Gujri College, Fatehgarh-Sahib)
  • 2. Topics to be Covered  Meaning of software testing  Software testing lifecycle  Principles of software testing  Techniques of software testing
  • 3. Learning Outcomes  After going through this module the students will be able to know the concept of software testing  Understand the software testing lifecycle  Learn principles of software testing and  Know the techniques of software testing
  • 4. Software testing refers to process of evaluating the software with intention to find out error in it. Software testing is a technique aimed at evaluating an attribute or capability of a program or product and determining that it meets its quality. Software testing is also used to test the software for other software quality factors like reliability, usability, integrity, security, capability, efficiency, portability, maintainability, compatibility etc. Software Testing
  • 7. 1. Testing shows the presence of bugs Testing an application can only reveal that one or more defects exist in the application, however, testing alone cannot prove that the application is error free. Therefore, it is important to design test cases which find as many defects as possible.
  • 8. 2. Exhaustive testing is impossible Unless the application under test (AUT) has a very simple logical structure and limited input, it is not possible to test all possible combinations of data and scenarios. For this reason, risk and priorities are used to concentrate on the most important aspects to test.
  • 9. 3. Early testing The sooner we start the testing activities the better we can utilize the available time. As soon as the initial products, such the requirement or design documents are available, we can start testing. It is common for the testing phase to get squeezed at the end of the development lifecycle, i.e. when development has finished, so by starting testing early, we can prepare testing for each level of the development lifecycle.
  • 10. How Much Testing Is Enough? Another important point about early testing is that when defects are found earlier in the lifecycle, they are much easier and cheaper to fix. It is much cheaper to change an incorrect requirement than having to change a functionality in a large system that is not working as requested or as designed!
  • 11. 4. Defect clustering During testing, it can be observed that most of the reported defects are related to small number of modules within a system. i.e. small number of modules contain most of the defects in the system. This is the application of the Pareto Principle to software testing: approximately 80% of the problems are found in 20% of the modules.
  • 12. 5. The pesticide paradox If you keep running the same set of tests over and over again, chances are no more new defects will be discovered by those test cases. Because as the system evolves, many of the previously reported defects will have been fixed and the old test cases do not apply anymore. Anytime a fault is fixed or a new functionality added, we need to do regression testing to make sure the new changed software has not broken any other part of the software. However, those regression test cases also need to change to reflect the changes made in the software to be applicable and hopefully fine new defects.
  • 13. 6. Testing is context dependent Different methodologies, techniques and types of testing is related to the type and nature of the application. For example, a software application in a medical device needs more testing than a games software. More importantly a medical device software requires risk based testing, be compliant with medical industry regulators and possibly specific test design techniques. By the same token, a very popular website, needs to go through rigorous performance testing as well as functionality testing to make sure the performance is not affected by the load on the servers.
  • 14. 7. Absence of errors fallacy Just because testing didn’t find any defects in the software, it doesn’t mean that the software is ready to be shipped. Were the executed tests really designed to catch the most defects? or where they designed to see if the software matched the user’s requirements? There are many other factors to be considered before making a decision to ship the software
  • 16. 1. Manual testing (static testing): It is a slow process and laborious where testing is done statically .It is done in early phase of life cycle. It is also called static testing. It is done by analyst, developer and testing team. Different Manual testing Techniques are as follows:- A) walk through B) Informal Review C) Technical Review D) Inspection
  • 17. A) Walk through: •It is not a formal process/review •It is led by the authors •Author guide the participants through the document according to his or her thought process to achieve a common understanding and to gather feedback.
  • 18. B) Informal Review: Informal reviews are applied many times during the early stages of the life cycle of the document. A two person team can conduct an informal review. In later stages these reviews often involve more people and a meeting. The goal is to keep the author and to improve the quality of the document. The most important thing to keep in mind about the informal reviews is that they are not documented.
  • 19. C) Technical Review: A Technical review is a static white-box testing technique which is conducted to spot the defects early in the life cycle that cannot be detected by black box testing techniques.
  • 20. •Technical Reviews are documented and use a defect detection process that has peers and technical specialist as part of the review process. •The Review process doesn't involve management participation. •It is usually led by trained moderator who is NOT the author. •The report is prepared with the list of issues that needs to be addressed.
  • 21. D) Inspection: •It is the most formal review type •It is led by the trained moderators •During inspection the documents are prepared and checked thoroughly by the reviewers before the meeting •A separate preparation is carried out during which the product is examined and the defects are found •The defects found are documented in a logging list or issue log •A formal follow-up is carried out by the moderator applying exit criteria •It involves peers to examine the product
  • 22. 2. Automated Testing (Dynamic testing): In this tester runs the script on the testing tool and testing is done. Automated testing is also called dynamic testing. Automated testing is classified into four Types:- A) Correctness testing B) Performance testing C) Reliability testing D) Security testing
  • 23. A) Correctness Testing: Correctness is the minimum requirement of software. Correctness testing will need some type of oracle, to tell the right behavior from the wrong one. The tester may or may not know the inside details of the software module under test. Therefore either white box testing or black box testing can be used.
  • 24. B) Performance Testing : Performance Testing involve all the phases as the mainstream testing life cycle as an independent discipline which involve strategy such as plan, design, execution, analysis and reporting. Not all software has specification on performance explicitly. But every system will have implicit performance requirements. Performance has always been a great concern and driving force of computer evolution.
  • 25. C) RELIABILITY TESTING: The purpose of reliability testing is to discover potential problems with the design as early as possible and, ultimately, provide confidence that the system meets its reliability requirements. Reliability testing is related to many aspects of software in which testing process is included; this testing process is an effective sampling method to measure software reliability. In system after software is developed reliability testing techniques like analyze or fix techniques can be carried out to check whether to use the software.
  • 26. D) SECURITY TESTING : Software quality, reliability and security are tightly coupled. Flaws in software can be exploited by intruders to opens security holes. Security testing makes sure that only the authorized personnel can access the program and only the authorized personnel can access the functions available to their security level. The security testing is performed to check whether there is any information leakage in the sense by encrypting the application or using wide range of software’s and hardware's and firewall etc.