ISTQB® – CTFL Summary v1.0
Samer Desouky
Why is testing necessary?
Testing
• Software Systems Context
• Reliability
• Cost
• Roles
• RCA
• Quality
• Confidence
• Risk
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
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?
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?
Failures Causes
• Errors in the requirements, specification, design and implementation.
• Errors in use.
• Environmental conditions.
• Intentional damage.
Why is testing necessary?
Testing and Cost
Why is testing necessary?
0
50
100
150
200
250
300
350
400
Requirements Design Build Test Live
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?
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?
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?
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
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?
Testing objectives
A reason or purpose for designing and executing a
test
Classic
Objectives
Level
Related
Type
Related
What is done in testing?
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?
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.
Planning and control
Analysis and design
Implementation and execution
Evaluating exit criteria and reporting
Test closure activities
Fundamental Test Process
Different
Objectives
Different
Mindsets
Independence
Introducing
Defects
Communication
The Psychology of Testing
Curiosity
Professional
Pessimism
Attention to
Details
Critical Eye
Good
Communication
Experience
Error
Guessing
A good Tester
The Psychology of Testing
Code of ethics
PUBLIC
CLIENT AND
EMPLOYER MANAGEMENT
PRODUCT
JUDGMENT
PROFESSION
COLLEAGUES
SELF
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
Verification
Static Testing
Reviews
Validation
Dynamic Testing
Execution
Black Box
White Box
Requirements
Analysis
Design
Code Component Test
Integration Test
System Test
Acceptance Test
Details Time
Software development models
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
• 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
• 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
Static Techniques
Static Testing
(Reviews)
Informal Formal
Walkthrough
Technical/Peer
Review
Inspection
Static Analysis
(Tools)
Static Techniques
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
Test Analysis
Test Design
Test
Implementation
Test Conditions
Test Cases
Test Procedures
Traceability
Expected Results
Test Execution
Schedule
Test Basis
The test development process
Black-box
Specification-
based testing
Using System
Documentation
Experience-
based testing
Using
Knowledge
White-box
Structure-based
testing
Using System
Structure.
Categories of test design techniques
The purpose of a test design technique is to Identify
Test Conditions, Test Cases and Test Data
Objective Models Attributes Benefits Drawbacks Tasks
Test Organization
Test
Estimation
The Metrics-
based
approach
The Expert-
based
approach
Test Planning and Estimation
Factors
Characteristics of
the product
Characteristics of
the development
process
The outcome of
testing
Test Planning and Estimation
CAST
Test Managing
Requirement
Management
Incident
Management
Configuration
Management
Static Testing
Review Tools
Static Analysis
Tools (D)
Modeling Tools
Test
Specification
Test design Tools
Test Data
Preparation Tools
Dynamic Testing
Test
Harness/Unit
Test Framework
Tools (D)
Test Comparators
Coverage
Measurement
Tools (D)
Security Testing
Tools
Test Execution
Tools
Performance
and Monitoring
Dynamic Analysis
Tools (D)
Performance /
Load / Stress
Testing Tools
Monitoring Tools
Specific Needs
Data Quality
Assessment
Types of test tool
Software Testing is our Profession.
www.testproeg.com
Contact Us
 +2 0222756841
 +2 01021902447
 +2 01000190709
30 Ahmad El-Zomor St., Nasr City, Cairo, Egypt
E-Mail: info@testproeg.com

ISTQB - CTFL Summary v1.0

  • 1.
    ISTQB® – CTFLSummary v1.0 Samer Desouky
  • 2.
    Why is testingnecessary? Testing • Software Systems Context • Reliability • Cost • Roles • RCA • Quality • Confidence • Risk
  • 3.
    Causes of SoftwareDefects 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 & FaultsCauses 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 • Errorsin the requirements, specification, design and implementation. • Errors in use. • Environmental conditions. • Intentional damage. Why is testing necessary?
  • 7.
    Testing and Cost Whyis 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-basedtesting 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 reasonor 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 Analysisand design Implementation and execution Evaluating exit criteria and reporting Test closure activities Fundamental Test Process
  • 17.
  • 18.
  • 19.
    Code of ethics PUBLIC CLIENTAND EMPLOYER MANAGEMENT PRODUCT JUDGMENT PROFESSION COLLEAGUES SELF
  • 20.
    Business needs are identified Convertingneeds 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
  • 21.
    Verification Static Testing Reviews Validation Dynamic Testing Execution BlackBox White Box Requirements Analysis Design Code Component Test Integration Test System Test Acceptance Test Details Time Software development models
  • 22.
    Iterative-incremental development models Theprocess 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 ofindividual 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 thesystem 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
  • 25.
    Static Techniques Static Testing (Reviews) InformalFormal Walkthrough Technical/Peer Review Inspection Static Analysis (Tools) Static Techniques
  • 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
  • 27.
    Test Analysis Test Design Test Implementation TestConditions Test Cases Test Procedures Traceability Expected Results Test Execution Schedule Test Basis The test development process
  • 28.
    Black-box Specification- based testing Using System Documentation Experience- basedtesting Using Knowledge White-box Structure-based testing Using System Structure. Categories of test design techniques The purpose of a test design technique is to Identify Test Conditions, Test Cases and Test Data
  • 29.
    Objective Models AttributesBenefits Drawbacks Tasks Test Organization
  • 30.
  • 31.
    Factors Characteristics of the product Characteristicsof the development process The outcome of testing Test Planning and Estimation
  • 32.
    CAST Test Managing Requirement Management Incident Management Configuration Management Static Testing ReviewTools Static Analysis Tools (D) Modeling Tools Test Specification Test design Tools Test Data Preparation Tools Dynamic Testing Test Harness/Unit Test Framework Tools (D) Test Comparators Coverage Measurement Tools (D) Security Testing Tools Test Execution Tools Performance and Monitoring Dynamic Analysis Tools (D) Performance / Load / Stress Testing Tools Monitoring Tools Specific Needs Data Quality Assessment Types of test tool
  • 33.
    Software Testing isour Profession. www.testproeg.com Contact Us  +2 0222756841  +2 01021902447  +2 01000190709 30 Ahmad El-Zomor St., Nasr City, Cairo, Egypt E-Mail: info@testproeg.com