Software Quality Engineering
Software Quality Engineering
ENGINEERING
Course Outline
Course Outline (Cont….)
Course Contents
Lecture 11 Quality Data Tracking
Lecture 12 Cost of Quality
Lecture 13 Software Quality Metrics
Lecture 14 Software Testing Automation
Lecture 15 Introduction of Testing Tool (Guest Lecture)
Lecture 16 Course Recap
LECTURE # 5
SOFTWARE TESTING - I
Today’s Plan
Software Testing
Objectives of Testing
Testing classification
Testing principles
Testing strategies
Definition of testing
1. The process of operating a system or component
under specified conditions, observing or recording
the results, and making an evaluation of some
aspect of the system or component.
2. The process of analyzing a software item to detect
the differences between existing and required
conditions (that is, bugs) and to evaluate the
features of the software item.
IEEE Std 610.12 (IEEE, 1990)
Another definition
Glenford Myers
Bugs – one of the certainties
Software Testing Myths
Complete testing is possible - If you plan properly, it is possible
to test software completely, identify and fix all the defects.
Best practices - Improving quality is simple & straight forward,
just follow the best practices.
Testing is demonstration of Zero defect - Testing is completed
for this product and test team has signed off the product. This
product does not have any defect now.
Anyone can become tester - you should have ability to read and
follow instructions, that's it. Testing is not a creative job and
does not require special trainings or skills and that's why there
are not many professional testers around.
Objectives of testing
Primary objective of testing is to find errors and not to
prove that there are no errors.
Interface errors
Performance errors
White Box Testing – IEEE
Definition
Testing that takes into account the internal
mechanism
of a system or component.
White Box Testing
Testing based on an analysis of internal workings and
structure of a piece of software.
Source code is available to the tester to test the internal
working.
Also known as Glass Box testing.
Logical paths are tested by providing test cases that
exercise specific sets of conditions and/or loops
A Good Software Tester
Find bugs as early as possible and make sure they get fixed.
To understand the application well.
Study the functionality in detail to find where the bugs are
likely to occur.
Study the code to ensure that each and every line of code is
tested.
Create test cases in such a way that testing is done to
uncover the hidden bugs and also ensure that the software is
usable and reliable.
Guidelines for testing
Testing a system’s capabilities is more important than testing
its components.
Testing old capabilities is more important than testing new
capabilities.
Testing typical situations is more important than testing
boundary value cases.
Do it in a simple manner.
Have a good foresight.
Think comprehensively.
Good reasoning abilities.
QUIZ
For Software Testers
Quiz
How do you put a giraffe into a refrigerator?
The correct answer is – open the refrigerator, put in the giraffe and
close the door.
This question tests whether or not you are doing simple things in a
complicated way.
Software Testing - II