0% found this document useful (0 votes)
61 views26 pages

Software Quality Engineering

This document discusses an introduction to software testing. It defines software testing and discusses common testing myths. The objectives of testing are to find errors and evaluate software quality. Testing can be classified based on concept (black box vs. white box) and requirements. Black box testing ignores internal structure, while white box testing considers it. Good testing principles include making testing traceable, planned, and incremental. Testing strategies can involve big bang or incremental testing. The document provides guidance on being a good software tester and concludes with a quiz.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views26 pages

Software Quality Engineering

This document discusses an introduction to software testing. It defines software testing and discusses common testing myths. The objectives of testing are to find errors and evaluate software quality. Testing can be classified based on concept (black box vs. white box) and requirements. Black box testing ignores internal structure, while white box testing considers it. Good testing principles include making testing traceable, planned, and incremental. Testing strategies can involve big bang or incremental testing. The document provides guidance on being a good software tester and concludes with a quiz.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 26

SOFTWARE QUALITY

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

Testing is the process of executing a program


with intention of finding errors.

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.

 Objectives of testing can be classified into:


 Direct objectives
 Indirect objectives
Objectives of testing
 Direct objectives
 To identify and reveal as many errors as possible in the tested
software.
 To bring the tested software, after correction of the identified
errors and retesting, to an acceptable level of quality.
 To perform the required tests efficiently and effectively,
within budgetary and scheduling limitations.
 Indirect objective
 To compile a record of software errors for use in error
prevention (by corrective and preventive actions).
Software test classifications
 Software tests may be classified according:
 to the testing concept or
 to the requirements classification
Classification according to testing
concept
 Two opposing concepts for testing a software:
1. Functional aspects
2. Internal structure
 Based on the above two opposing concepts or
approaches to software quality two testing
classes have been developed.
1. Black box testing
2. White box testing
Black Box Testing – IEEE
Definitions
1. Testing that ignores the internal mechanism of a
system or component and focuses solely on the
outputs generated in response to selected inputs
and execution conditions.
2. Testing conducted to evaluate the compliance of a
system or component with specified functional
requirements.
Black Box Testing
 Testing without knowledge of the internal working of the
code being tested.
 Also known as functionality testing.
 It is subjected to inputs and its outputs are verified for
conformance to functional specification.
 Attempts to find the following errors:
 Incorrect or missing functions

 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.

How do you put an elephant into a refrigerator?


The incorrect answer is – open the refrigerator, put in the elephant and
shut the refrigerator.
The correct answer is – open the refrigerator, take out of the giraffe,
put in the elephant and close the door.
This question tests your foresight.
Quiz (cont …)
The Lion King is hosting an animal conference. All the animals
attend except one. Which animal does not attend?
The correct answer is - the elephant. The elephant is in the refrigerator!
This tests if you are capable of comprehensive thinking.

There is a river filled with crocodiles. How do you cross it?


The correct answer is - simply swim through it. All the crocodiles are
attending the animal’s conference!
This question tests your reasoning ability.
Software Testing Principles
Every thing should be planned so is testing. It should be based
on certain principles. These principles are as follows:

 Testing must be traceable to the requirements.


 Testing should be planned for early in a software process.
 Testing should be incremental.
 Testing should focus on exceptions.
 Debugging should be planned for separately so that there is
enough time and budget to understand and resolve bugs.
Software testing strategies
Two basic testing strategies:
 To test the software in its entirety, once the completed

package is available; otherwise known as “big bang testing”.


 To test the software piecemeal, in modules, as they are

completed (unit tests); then to test groups of tested modules


integrated with newly completed modules (integration tests).
This process continues until all the package modules have
been tested. Once this phase is completed, the entire package
is tested as a whole (system test). This testing strategy is
usually termed “incremental testing”.
Point to Ponder
Although testing detects errors, alone it cannot be used to build
quality. Why so?

Quality has to be built into the software by using good software


engineering practices such as reviews, walk through and inspection
during analysis, design, and coding.
Class ahead

Software Testing - II

You might also like