Вы находитесь на странице: 1из 35

ISTQB Foundation Level

Chapter- 1
Fundamentals of Testing
Agenda

 Why is Testing Necessary ?


 What is Testing ?
 General Testing Principles
 Fundamental Test Process
 The Psychology of Testing

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 1
Software System Context

Effects of defects in software have the following implications:

 Loss of money
 Waste of time
 Business reputation
 Cause of injury and even death

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 2
Error - Fault - Failure

A person
makes
an error ...

… that creates a
fault in the
software ...

… that can
cause
a failure
in operation
Client or Topic | Financial Services
In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 3
Error - Fault - Failure

FAULT
HUMAN ERROR FAILURE OF
BUG
MISTAKE SYSTEM
DEFECT

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 4
Reasons for Defect Occurrence

 Human errors due to:


Time pressure
Complex code
Complex infrastructure
Changed technology
Too many system interactions

 Environmental Conditions like:


Radiation
Magnetism
Electronic fields
Pollution

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 5
Role of Software testing in Software Development, Maintenance and
Operation

 Rigorous testing and documentation helps in reducing risks


occurring during operation of the system
 They contribute to Quality of the system if defects are
found and corrected before system is released for
operational use
 Software testing may also be required to meet
contractual/legal requirements or industry specific
standards

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 6
Testing and Quality

 Testing can measure the quality of a system in terms of


defects found
 Testing can give confidence in terms of the quality of
system if few/no defects are found
 When defects are found, quality of the system increases
when these defects are fixed.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 7
Testing and Quality

 Lessons should be learn from previous project experience:

Root cause Prevents


Improves
analysis Process defects
Quality of the
of previous Improvement from occurring
system
defects in future

Aspect of QA- “Testing Is a Part Of QA”

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 8
How much testing is enough?

How much testing is enough???

Level of Risk Project Constraints

Technical Business
Project Risk Time Budget
Risk Product Risk

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 9
How much testing is enough?

Point to Remember!
 Testing should provide sufficient information to stakeholders
to make informed decisions about release of the software
for the next development step or handover to customers.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 10
What is Testing??

 A common misconception:
“Testing consists only of running tests i.e. execution of
software”
is this true?
of course not! Test execution is only a part of the whole
testing process!
Testing activities exist both before and after test execution.
Testing also includes reviews of documents including
source code

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 11
What is Testing??

Testing:

The process consisting of all life cycle 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.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 12
What is Testing?

 Test Objective- a reason or purpose for designing and


executing a test
 What are the usual test objectives?
Finding Defects
Gaining confidence about quality of system and to provide
information
Prevent defects

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 13
What is Testing?

 How does testing prevent defects?

Designing tests early in the test lifecycle can prevent


defects being introduced in the code

Reviews of documents like requirements etc. can also help


reduce defects

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 14
What is Testing?

 Different view points in testing take different “objectives”

 Each of the below has a different testing objective!

Development Testing
Acceptance testing
Maintenance testing
Operational testing

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 15
Debugging

 Debugging is a Development Activity that involves the


following steps:

Identifying the
cause of the defect

Repair the code

Check to see if defect has been


fixed correctly

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 16
General Testing Principles

1. Testing shows presence of defects


2. Exhaustive testing is impossible
3. Early testing
4. Defect Clustering
5. Pesticide paradox
6. Testing is context dependent
7. Absence of error fallacy

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 17
General testing principles

Testing shows presence of defects


Testing shows presence of defects, it never shows the absence of
defects
Example:
A pesticide will state that it is used to kill germs but on the go it fails to
prove its statement because the germs get addicted to the pesticide
.Thus resulting in a paradox.
similarly when a first build is tested it results in bugs to be fixed. The
second build is given to the testers stating the goal that previous bugs
are fixed.Though the previous bugs are fixed ,this may lead to
emergence of new bugs since the code is changed. Here the fixing
activity is paradoxical in nature.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 18
General testing principles

• Exhaustive testing is impossible


Most difficult problem with exhaustive execution path search is the
computational complexity caused by the number of possible input
states. The number of individual paths the program can follow is
typically overwhelming and it is practically impossible to follow them all.

Example:
A small program that takes 128 bytes of effective input can have " n "
possible individual tracks that have to be examined.Instead of testing all
those n possibilities take some selected values and test the application

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 19
General testing principles

• Early testing
There are two important words which makes this principle more
effective.
Injection: when a bug is introduced in a software is injection of a bug.
Detection: when a tester finds the bug is detection

As the time between the injection of a bug and the detection of the bug
increases, the cost of fixing the also increases. so Testing from the
initial stages of development will reduce the cost as well as risk.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 20
General testing principles

Defect clustering
Identifying the density of bugs in a particular module is termed as defect
clustering.

Example:
An application has four modules to be tested.If the tester finds the
percentage of failure in particular module is more ,then a test engineer
reports that a defect clustering has occured in particular module.
Once the cluster is identified,there is no use of continuing the test
process.Instead the build is given back for fixing.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 21
General testing principles

• Pareto Principle(80-20 Principle)


 The Pareto principle (also known as the 80-20 rule,the law of the
vital few and the principle of factor sparsity) states that, for many
events, roughly 80% of the effects come from 20% of the causes
e.g., "80% of your sales come from 20% of your clients."

By the numbers it means that 80 percent of your outcomes come from


20 percent of your inputs.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 22
Fundamental test process

The fundamental test process consists of the following main


activities:
 Planning and control
 Analysis and design
 Implementation and execution
 Evaluating exit criteria and reporting
 Test closure activities

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 23
Test planning and control

 Test planning is the activity of verifying the mission of


testing, defining the objectives of testing and the
specification of test activities in order to meet the objectives
and mission.
 Test control is the ongoing activity of comparing actual
progress against the plan, and reporting the status,
including deviations from the plan. It involves taking actions
necessary to meet the mission and objectives of the project.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 24
Test analysis and design

 Test analysis and design is the activity where general


testing objectives are transformed into tangible test
conditions and test cases.

Test analysis and design has the following major tasks:

 Reviewing the test basis (such as requirements,


architecture, design, interfaces).
 Evaluating testability of the test basis and test objects.
 Identifying and prioritizing test conditions based on analysis
of test items, the specification, behavior and structure.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 25
Test analysis and design

 Designing and prioritizing test cases.


 Identifying necessary test data to support the test
conditions and test cases.
 Designing the test environment set-up and identifying any
required infrastructure and tools.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 26
Test implementation and execution

 Test implementation and execution is the activity where test procedures


or scripts are specified by combining the test cases in a particular order
and including any other information needed for test execution, the
environment is set up and the tests are run.

Test implementation and execution has the following major tasks:

 Developing, implementing and prioritizing test cases.


 Developing and prioritizing test procedures, creating test data and,
optionally, preparing test harnesses and writing automated test scripts.
 Creating test suites from the test procedures for efficient test execution.
 Verifying that the test environment has been set up correctly.
 Executing test procedures either manually or by using test execution
tools, according to the planned sequence

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 27
Test implementation and execution

 Logging the outcome of test execution and recording the identities and
versions of the software under test, test tools and test ware.
 Comparing actual results with expected results.
 Reporting discrepancies as incidents and analyzing them in order to
establish their cause (e.g. defect in the code, in specified test data, in
the test document, or a mistake in the way the test was executed).
 Repeating test activities as a result of action taken for each
discrepancy. For example, re-execution of a test that previously failed in
order to confirm a fix (confirmation testing), execution of a corrected test
and/or execution of tests in order to ensure that defects have not been
introduced in unchanged areas of the software or that defect fixing did
not uncover other defects (regression testing).

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 28
Evaluating exit criteria and reporting

Evaluating exit criteria is the activity where test execution is


assessed against the defined objectives. This should be
done for each test level.

Evaluating exit criteria has the following major tasks:


 Checking test logs against the exit criteria specified in test
planning.
 Assessing if more tests are needed or if the exit criteria
specified should be changed.
 Writing a test summary report for stakeholders.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 29
Test closure activities

 Test closure activities collect data from completed test


activities to consolidate experience, test ware, facts and
numbers.

 For example, when a software system is released, a test


project is completed (or cancelled), a milestone has been
achieved, or a maintenance release has been completed.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 30
Test closure activities

Test closure activities include the following major tasks:


 Checking which planned deliverables have been delivered,
the closure of incident reports or raising of change records
for any that remain open, and the documentation of the
acceptance of the system.
 Finalizing and archiving test ware, the test environment and
the test infrastructure for later reuse.
 Handover of test ware to the maintenance organization.
 Analyzing lessons learned for future releases and projects,
and the improvement of test maturity.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 31
The Psychology of Testing

 Mindset of testers and developers is always different


 Testers can provide an independent view
 Independent testing – avoids author bias
 Errors/defects should be communicated in a constructive
way
 Testers need good interpersonal skills

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 32
The Psychology of Testing

Some tips to improve communication & relationship


between testers and developers:

 Start with collaboration rather than battles – remind


everyone of the common goal of better quality systems.
 Communicate findings on the product in a neutral, fact-
focused way without criticizing the person who created it
 Try to understand how the other person feels and why
they react as they do.
 Confirm that the other person has understood what you
have said and vice versa.

Client or Topic | Financial Services


In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 33
Thank you

www.capgemini.com

Вам также может понравиться