Engr.
Sajid Saleem
Testing
Purpose of testing
Level 0 to 4
Testing Terminologies
Defects
vs Failure
Types
Cost of Finding
Types of Testing
Test Cases and Format
Testing Levels 2
What is Testing?
The process of operating a system or component under specifies
conditions, observing or recording the results, and making an
evolution of some aspect of the system or component (IEEE Standards
Glossary of Software Engineering Terminology)
What is What ought to be
Reasons :
Quality
Acceptability
Discover problems
Testing is the process to prove that the software works correctly.
OR
Testing is the process to prove that the software does not works
correctly
You can also take it as testing approaches or views or mindsets
Testing levels (Boris Beizer)
LEVEL-0
LEVEL-1
LEVEL-2
LEVEL-3
LEVEL-4
No plan. Fix if found
No formalized effort of testing.
No difference between testing and debugging
Adopted by undergraduate CS students
Get their programs to compile
Debug with few arbitrarily chosen inputs or those
provided by the instructor
Does little to help develop programs that are reliable
To show that software works
Approach: software is correct
But correctness is virtually impossible to
either achieve or demonstrate
To show that software does not work
Valid but negative goal
Testers may like it but developers do not (level
1 is natural for developers)
Have adversarial relationship Bad for team
morale
What to do if no failures are found?
Is software good? OR Is testing bad?
Purpose of testing is not to prove
anything specific but to reduce the
risk of using the software
Accept fact that using software
incurs some risk
Impossible to check the whole
system ?
Entire team wants the same thing
Reduce the risk
Developer and tester work
together
Testing is a mental discipline that
helps all IT professionals develop
higher quality software
Primary responsibility is measuring
and improving software quality
Improve the ability of developers to
produce quality software
Error /mistake
Fault / Bug / Defect
Fault of Omission (when
we fail to enter correct
information)
Fault of Commission (when
we enter something into a
representation that is
incorrect)
Of these two types, Fault of
Omission are more difficult
to detect and resolve
Failure
Defect
A behavior that does not conform to a requirement
Failure
A defect that reaches a customer
Following are the common types of defects that occur during development:
Arithmetic Defects
Logical Defects
Syntax Defects
Multithreading Defects
Interface Defects
Performance Defects
Some defect-detection practices cost more than others
The most economical practices result in the least cost per defect found
Most studies have found that inspections are cheaper than testing
Formal inspections
Code reading and inspections
Peer reviews
Test planning
Test case development
Running test cases
Evaluating test results
Black Box Testing / Functional Testing
Testing based on specification and requirements
White Box Testing / Structural Testing
Testing based on internal paths, structure and implementation of
the software
Grey Box Testing
Testing is a software testing technique to test a software product or
application with partial knowledge of internal structure of the
application.
Well designed test cases have
Test Case Identification Number
Inputs
Order of execution (steps to be followed)
Expected Output
Actual Output
Status / Result
TC id Path Input Expected Actual Status:
/Title output Output
TC1 xyz x=10, 101 100 Fail
y=11
TC2 abc a=10 13 13 Pass
Unit Testing
For example, the tester will write some test code that will call a method with
certain parameters and will ensure that the return value of this method is as
expected.
It uses white box techniques.
Integration Testing
usually white box testing
techniques are used.
Example: DBMS front end and
back end.
System Testing
Includes everything that has to be delivered to the customer.
Functionality
Usability
Security
Reliability etc.
Black box testing techniques are followed.
Acceptance testing
• Black box testing techniques are followed.