Professional Documents
Culture Documents
Program: B. Tech
Course Code:BTCS3502
Course Name: Software Engineering &
Testing Methodologies
School of Computing Science and Engineering
Course Code :BCSE3032 Course Name: Software Engineering
& Testing
Methodologies
Course Outcomes :
CO’S
TITLE
CO1
Understand the key concerns that are common to all software
development processes.
CO2
Select appropriate process models, approaches and techniques
to manage a given software development process.
CO3
Able to elicit requirements for a software product and translate
these into a documented design.
CO4
Recognize the importance of software reliability and how we
can design dependable software, and what measures are used.
CO5
Understand the principles and techniques underlying the
process of inspecting and testing software and making it free of
errors and tolerable.
CO6
Understand the Software Quality Assurance (SQA) architecture
and identify Software quality management standards and
procedures
Syllabus
I-Introduction to Software Engineering
SOFTWARE TESTING
• is the process of verifying and validating that a software is
bug free
• should meets the technical requirements as guided by it’s
design and development
• should meets the user requirements effectively and efficiently
with handling all the exceptional and boundary cases.
Importance of Software Testing
• Testing is important because software bugs could be
expensive or even dangerous.
• Software bugs can potentially cause monetary and human
loss, and history is full of such examples.
EXAMPLES
• In April 2015, Bloomberg terminal in London crashed due to
software glitch affected more than 300,000 traders on
financial markets. It forced the government to postpone a
3bn pound debt sale.
• Nissan cars recalled over 1 million cars from the market due
to software failure in the airbag sensory detectors. There has
been reported two accident due to this software failure.
• Starbucks was forced to close about 60 percent of stores in
the U.S and Canada due to software failure in its POS system.
At one point, the store served coffee for free as they were
unable to process the transaction.
– If the software will test every test cases then it will take
more cost, effort, etc. and which is impractical.
Early Testing
– To find the defect in the software, early test
activity shall be started.
– The defect detected in early phases of SDLC will
very less expensive.
• For better performance of software, software
testing will start at initial phase i.e. testing will
perform at the requirement analysis phase.
Defect clustering
– In a project, a small number of the module can
contain most of the defects.
– Pareto Principle to software testing state that 80%
of software defect comes from 20% of modules
Pesticide paradox
– Repeating the same test cases again and again will
not find new bugs.
– So it is necessary to review the test cases and add
or update test cases to find new bugs.
BEHAVIOUR TESTING
• Behavioural Testing is a testing of the external behaviour of
the program, also known as black box testing. It is usually a
functional testing.
• Techniques used in Black box testing
– Equivalence Class
– Boundary Value Analysis
– Domain Tests
– Orthogonal Arrays
– Decision Tables
– State Models
– Exploratory Testing
– All-pairs testing
CORRECTNESS
• Correctness from software engineering perspective can be
defined as the adherence to the specifications that determine
how users can interact with the software and how the
software should behave when it is used correctly.
• If the software behaves incorrectly, it might take considerable
amount of time to achieve the task or sometimes it is
impossible to achieve it.
CORRECTNESS (CONT.,)