3. Causes of Software Defects
Why is testing necessary?
Document
Code
Software
System
Error
Mistake
Fault
Bug
Defect
Failure
The system will fail to do what it should do
4. Testing & Reliability
• Can a system be fault-free?
• Can a software system be reliable but still have faults?
• Is a “fault-free” software application always reliable?
Why is testing necessary?
5. Errors & Faults Causes
Human nature:
• Lack of experience.
• The nonexistence of right information.
• Misunderstand.
• Carless.
• Tired.
Project nature:
• Time pressure.
• Business problems.
• Technical solution complexity.
• Technology and infrastructures.
Why is testing necessary?
6. Failures Causes
• Errors in the requirements, specification, design and implementation.
• Errors in use.
• Environmental conditions.
• Intentional damage.
Why is testing necessary?
7. Testing and Cost
Why is testing necessary?
0
50
100
150
200
250
300
350
400
Requirements Design Build Test Live
8. Testing and Roles
• Reduce risks of problems during operation.
• Contribute to the quality of a software system if detected defects fixed
before release.
• Meet industrial standards or contractual or legal requirements (DO-
178B).
Why is testing necessary?
9. Testing & Quality
• Quality as the degree to which a component, system or process meets
specified requirements and/or user/customer needs and expectations.
• Testing does not improve the quality of software but measure it.
• Testing identify elements of a system that can be modified.
Why is testing necessary?
10. Root Cause Analysis
• Analysis technique aimed at identifying the root causes of defects. By
directing corrective measures at root causes, it is hoped that the
likelihood of defect recurrence will be minimized.
• We might look beyond the SUT, you may recognize what is needed to
prevent and solve user issues.
Why is testing necessary?
11. Testing & Risk
Risk-based testing used in guide of allocating time by prioritizing tests and
determine:
• What test first?
• What test most?
• How many tests needed?
• What not to test?
Prioritization
we have done the best
testing in the available time.
Why is testing necessary?
6
3
9
6
0
2
4
6
8
10
Risk Based Testing
Low Medium High Critical
12. What is testing?
• The process consisting of all lifecycle activities both static and dynamic,
concerned with planning, preparation and evaluation of software
products and related work products to determine that they satisfy
specified requirements, to demonstrate that they are fit for purpose and
to detect defects.
What is testing?
13. Testing objectives
A reason or purpose for designing and executing a
test
Classic
Objectives
Level
Related
Type
Related
What is done in testing?
14. Debugging and Testing
• Testing can show failures that are caused by defects.
• Debugging can find, analyze and remove the cause of the failure.
• Debugging into action:
Identify the cause of a defect.
Repairs the code.
Check the defect has been fixed correctly.
What is testing?
15. Seven Testing Principles
• Testing shows presence of defects.
• Exhaustive testing is impossible.
• Early testing.
• Defect clustering.
• Pesticide paradox.
• Testing is context dependent.
• Absence-of-errors fallacy.
16. Planning and control
Analysis and design
Implementation and execution
Evaluating exit criteria and reporting
Test closure activities
Fundamental Test Process
20. Business needs are
identified
Converting needs into
specifications, more
and more technical
detail
Write Code to deliver
functionality detailed in
specification
We test the software
Sequential Models
Each phase produces
deliverables required by
the next phase.
Requirements
Analysis
Design
Code
Test
Software development models
22. Iterative-incremental development models
The process of establishing
requirements, designing,
building and testing a
system, done as a series of
shorter development cycles,
with one condition, each
cycle or sprint deliver a
workable product.
Software development models
23. • Testing of individual items (e.g. modules, programs, objects, classes,
etc.) usually as part of the coding phase, in isolation from other
development items and the system as a whole.
Component
testing
• Testing the interfaces between major (e.g. systems level application
modules) and minor (e.g. individual programs or components) items
within an application which must interact with each other.
Integration
testing
• Testing a system behavior as a whole when development is finished
and the system can be tested as a complete entity.System testing
• Testing to ensure that a development is ready to be deployed into
the business, operational or production environment.
Acceptance
testing
Test Levels
24. • What the system dose?
Functional
Testing
• How the system works?
Non-Functional
Testing
• Assessment of coverage of a type of
structureStructural testing
• Testing related to changes
Change-base
Testing
Test Types
26. Planning
• Recourses, Roles, Entry
and Exit criteria.
Kick-off
• Distribute the
documents, objectives,
process, entry criteria.
Individual Preparation
• Noting the defects,
questions ,and
comments.
Review Meeting
• Discussion or logging,
document the result.
Rework
• The author fixes the
defects.
Follow-up
• Checking that the
defects have been
addressed, metrics, exit
criteria.
Review Process