You are on page 1of 27

Introduction to Software Testing

Engr. Anees ur Rahman


Course Outline
Testing techniques and principles: Defects vs.
failures, equivalence classes, boundary testing.
Types of defects.
Black-box vs. Structural testing.
Testing strategies: Unit testing, integration testing,
profiling, test driven development.
State based testing; configuration testing;
compatibility testing; web site testing.
Alpha, beta, and acceptance testing.
Coverage criteria.
Test instrumentation and tools.
Developing test plans.
Managing the testing process.
Problem reporting, tracking, and analysis.
Definition of a Software
 A Software is a set of Programs developed
to perform a particular task
 It mainly acts a mediator between the user
and the system to fulfill the user
requirements.
Types of Software
 Banking Software
 ATM Software
 Mobile Application Software
 Automobile Software
 Educational Software Etc.
Software Process
SDLC(Software Development Life Cycle)
 Software requirements gathering
 Software design and development
 Implementation
 Testing
 Maintenance
Software Testing
 Software Testing is a Process of finding
errors or bugs in a Software.
 Categories in Software Testing

Manual Testing &


Automation Testing
Bugs a.k.a. …
 Defect
 Fault
 Problem
 Error
 Incident
 Anomaly
 Variance
Defective Software
 We develop programs that contain defects

How many? What kind?


 Hard to predict the future, however…
it is highly likely, that the software we
(including you!) will develop in the future
will not be significantly better.
Sources of Problems
 Requirements Definition: Erroneous, incomplete,
inconsistent requirements.
 Design: Fundamental design flaws in the software.
 Implementation: Mistakes in chip fabrication,
wiring, programming faults, malicious code.
 Support Systems: Poor programming languages,
faulty compilers and debuggers, misleading
development tools.
Adverse Effects of Faulty Software
 Communications: Loss or corruption of
communication media, non delivery of data.
 Space Applications: Lost lives, launch delays.
 Transportation: Deaths, delays, sudden
acceleration, inability to brake.
 Safety-critical Applications: Death, injuries.
 Electric Power: Death, injuries, power outages,
long-term health hazards (radiation).
Therac-25 Radiation “Therapy
 In Texas, 1986, a man received between
16,500-25,000 rads in less than 1 sec, over an
area of about 1 cm.
 He lost his left arm, and died of complications 5
months later.
 In Texas, 1986, a man received at least 4,000
rads in the right temporal lobe of his brain.
 The patient eventually died as a result of the
overdose.
Therac-25 Radiation “Therapy”
(Cont’d)
 In Washington, 1987, a patient received
8,000-10,000 rads instead of the
prescribed 86 rads.
 The patient died of complications of the
radiation overdose.
AT&T Bug: Hello? ... Hello?
 In mid-December 1989, AT&T installed
new software in 114 electronic switching
systems.
 On January 15, 1990, 5 million calls were
blocked during a 9 hour period nationwide.
Bank Generosity
 A Norwegian bank ATM consistently
dispersed 10 times the amount required.
 Many people joyously joined the queues
as the word spread.
Bank Generosity (Cont’d)
 A software flaw caused a UK bank to
duplicate every transfer payment request
for half an hour. The bank lost 2 billion
British pounds!
 The bank eventually recovered the funds
but lost half a million pounds in potential
interest.
Most bugs are not because of
mistakes in the code …
 Specification (~= 55%)
 Design (~= 25%)
 Code (~= 15%)
 Other (~= 5%)
Software Quality Assurance
 Software Quality Assurance involves
reviewing and auditing the software
products and activities to verify that they
comply with the applicable procedures and
standards .
What makes a good test engineer?

 A good test engineer has a 'test to break'


attitude, an ability to take the point of view
of the customer, a strong desire for quality,
and an attention to detail.
Verification and Validation
 Verification: It is a Process to check whether
the software conforms to the specifications, it
typically involves reviews and meetings to
evaluate documents, plans, requirements, and
specifications.
 Validation: It is a Process to check whether the
software meets the customer requirements, it
typically involves testing at the user end and
takes place after verifications are completed.
Objects of Software Testing
 To unearth and correct defects.
 To detect defects early and to reduce cost
of defect fixing.
 To ensure that product works as user
expected it to.
 To avoid user detecting problems.
What is a Software Bug
 It is a term used to indicate a defect in a
Software
 A Software Defect can be mainly
categorized as
Critical
Major
Minor
Types of Testing
 Black Box Testing
 White Box Testing
 Regression Testing
 Ad hoc Testing
 Smoke Testing
 Load Testing
 Security Testing
Test Life Cycle
 SRS Preparations and Documentations
 Preparation of Test Plan
 Design of Test Cases
 Execution of Test Cases
 Evaluate Results
 Document Test Results
 Casual Analysis/ Preparation of Validation Reports
 Regression Testing / Follow up on reported bugs.
Levels of Testing
 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing
Testing Principles
 THE EIGHT BASIC PRINCIPLES OF TESTING
1. Define the expected output or result.

2. Don't test your own programs .

3. Inspect the results of each test completely.

4. Include test cases for invalid or unexpected


conditions.
5. Test the program to see if it does what it is not
supposed to do as well as what it is supposed to
do.

6. Avoid disposable test cases unless the program


itself is disposable.

7. Do not plan tests assuming that no errors will be


found.
8. Fading effectiveness
The effectiveness of software testing fades over
time. If test-cases are only repeated, they do not
expose new errors. Errors, remaining within
untested functions may not be discovered. In order
to prevent this effect, test-cases must be altered
and reworked time by time.

You might also like