SlideShare a Scribd company logo
SPECIFICATION BASED OR BLACK BOX TECHNIQUES
By Graham et.al (2011)
ANDIKA MARDANU
PRODI S1 SISTEM INFORMASI
FAKULTAS SAINS & TEKNOLOGI
UIN SUSKA RIAU
In this section, look for the definitions of the glossary terms: boundary
value analysis, decision table testing, equivalence partitioning, state
transition testing and use case testing.
The four specification-based techniques we will cover in detail are:
equivalence partitioning;
boundary value analysis;
decision tables;
state transition testing.
Introduction
Equivalence partitioning (EP) is a good all-round specification-based black-box
technique. It can be applied at any level of testing and is often a good technique to use first.
It is a common sense approach to testing, so much so that most testers practise it informally
even though they may not realize it. However, while it is better to use the technique
informally than not at all, it is much better to use the technique in a formal way to attain the
full benefits that it can deliver. This technique will be found in most testing books, including
[Myers, 1979] and [Copeland, 2003].
The idea behind the technique is to divide (i.e. to partition) a set of test conditions
into groups or sets that can be considered the same (i.e. the system should handle them
equivalently), hence 'equivalence partitioning'. Equivalence partitions are also known as
equivalence classes – the two terms mean exactly the same thing.
Equivalence partitioning and boundary
value analysis
1
The equivalence-partitioning technique then requires that we need
test only one condition from each partition. This is because we are assuming
that all the conditions in one partition will be treated in the same way by the
software. If one condition in a partition works, we assume all of the conditions
in that partition will work, and so there is little point in testing any of these
others. Conversely, if one of the conditions in a partition does not work, then we
assume that none of the conditions in that partition will work so again there is
little point in testing any more in that partition. Of course these are simplifying
assumptions that may not always be right but if we write them down, at least it
gives other people the chance to challenge the assumptions we have made and
hopefully help to identify better partitions. If you have time, you may want to
try more than one value from a partition, especially if you want to confirm a
selection of typical user inputs.
Cont…
Why use decision tables?
The techniques of equivalence partitioning and boundary value analysis are often
applied to specific situations or inputs. However, if different combinations of inputs result in
different actions being taken, this can be more difficult to show using equivalence
partitioning and boundary value analysis, which tend to be more focused on the user
interface. The other two specification-based techniques, decision tables and state transition
testing are more focused on business logic or business rules.
A decision table is a good way to deal with combinations of things (e.g. inputs).
This technique is sometimes also referred to as a 'cause-effect' table. The reason for this is
that there is an associated logic diagramming technique called 'cause-effect graphing' which
was sometimes used to help derive the decision table (Myers describes this as a
combinatorial logic network [Myers, 1979]). However, most people find it more useful just
to use the table described in [Copeland, 2003].
Decision table testing2
If you begin using decision tables to explore what the business rules are that
should be tested, you may find that the analysts and developers find the tables very
helpful and want to begin using them too. Do encourage this, as it will make your job
easier in the future. Decision tables provide a systematic way of stating complex business
rules, which is useful for developers as well as for testers. Decision tables can be used in
test design whether or not they are used in specifications, as they help testers explore the
effects of combinations of different inputs and other software states that must correctly
implement business rules. Helping the developers do a better job can also lead to better
relationships with them.
Testing combinations can be a challenge, as the number of combinations can
often be huge. Testing all combinations may be impractical if not impossible. We have to
be satisfied with testing just a small subset of combinations but making the choice of
which combinations to test and which to leave out is not trivial. If you do not have a
systematic way of selecting combinations, an arbitrary subset will be used and this may
well result in an ineffective test effort.
Cont…
Decision tables aid the systematic selection of effective test cases and can have
the beneficial side-effect of finding problems and ambiguities in the specification. It is a
technique that works well in conjunction with equivalence partitioning. The combination
of conditions explored may be combinations of equivalence partitions.
In addition to decision tables, there are other techniques that deal with testing
combinations of things: pairwise testing and orthogonal arrays. These are described in
[Copeland, 2003]. Another source of techniques is [Pol et al., 2001]. Decision tables and
cause-effect graphing are described in [BS7925-2], including designing tests and measuring
coverage.
Cont…
State transition testing is used where some aspect of the system can be described
in what is called a 'finite state machine'. This simply means that the system can be in a
(finite) number of different states, and the transitions from one state to another are
determined by the rules of the 'machine'. This is the model on which the system and the tests
are based. Any system where you get a different output for the same input, depending on
what has happened before, is a finite state system. A finite state system is often shown as a
state diagram (see Figure).
State transition testing3
Decision tables aid the systematic selection of effective test cases and can have
the beneficial side-effect of finding problems and ambiguities in the specification. It is a
technique that works well in conjunction with equivalence partitioning. The combination
of conditions explored may be combinations of equivalence partitions.
In addition to decision tables, there are other techniques that deal with testing
combinations of things: pairwise testing and orthogonal arrays. These are described in
[Copeland, 2003]. Another source of techniques is [Pol et al., 2001]. Decision tables and
cause-effect graphing are described in [BS7925-2], including designing tests and measuring
coverage.
Cont…
Use case testing is a technique that helps us identify test cases that exercise the
whole system on a transaction by transaction basis from start to finish. They are described
by Ivar Jacobson in his book Object-Oriented Software Engineering: A Use Case Driven
Approach [Jacobson, 1992].
A use case is a description of a particular use of the system by an actor (a user of
the system). Each use case describes the interactions the actor has with the system in order
to achieve a specific task (or, at least, produce something of value to the user). Actors are
generally people but they may also be other systems. Use cases are a sequence of steps that
describe the interactions between the actor and the system.
Use cases are defined in terms of the actor, not the system, describing what the
actor does and what the actor sees rather than what inputs the system expects and what
the system'outputs. They often use the language and terms of the business rather than
technical terms, especially when the actor is a business user. They serve as the foundation
for developing test cases mostly at the system and acceptance testing levels.
Use case testing4
Use cases can uncover integration defects, that is, defects caused by the
incorrect interaction between different components. Used in this way, the actor may be
something that the system interfaces to such as a communication link or sub-system.
Use cases describe the process flows through a system based on its most likely
use. This makes the test cases derived from use cases particularly good for finding defects
in the real-world use of the system (i.e. the defects that the users are most likely to come
across when first using the system). Each use case usually has a mainstream (or most
likely) scenario and sometimes additional alternative branches (covering, for example,
special cases or exceptional conditions). Each use case must specify any preconditions that
need to be met for the use case to work. Use cases must also specify postconditions that
are observable results and a description of the final state of the system after the use case
has been executed successfully.
Cont…

More Related Content

PPTX
Specification based or black box techniques 3
PPTX
Specification based or black box techniques
PPTX
Specification based or black box techniques
PPTX
Specification based or black box techniques
PPTX
Specification based or black box techniques
PPTX
Specification based or black box techniques
PPTX
Specification Based or Black Box Techniques
PPTX
Specification based or black box techniques
Specification based or black box techniques 3
Specification based or black box techniques
Specification based or black box techniques
Specification based or black box techniques
Specification based or black box techniques
Specification based or black box techniques
Specification Based or Black Box Techniques
Specification based or black box techniques

What's hot (20)

PPTX
Specification based or black box techniques
PPTX
Specification based or black box techniques
PPTX
Specification Based or Black Box Techniques
PPTX
Specification based or black box techniques
PPTX
Specification based or black box techniques 3
PPTX
Specification based or black box techniques
PPTX
Sensitivity analysis
DOCX
Sensitivity analysis
PPT
Test Optimization With Design of Experiment
PPT
Comparison statisticalsignificancetestir
PPT
Cause-Effect Graphing: Rigorous Test Case Design
DOCX
Mb00 48 operaton research
DOCX
internship project1 report
PPTX
applications of operation research in business
PPT
Decision table
PPT
Steps In Experimental Design ( QE )
PPTX
Black box testing methods for software components
PPTX
presentation of factorial experiment 3*2
PDF
Guidelines to Understanding Design of Experiment and Reliability Prediction
Specification based or black box techniques
Specification based or black box techniques
Specification Based or Black Box Techniques
Specification based or black box techniques
Specification based or black box techniques 3
Specification based or black box techniques
Sensitivity analysis
Sensitivity analysis
Test Optimization With Design of Experiment
Comparison statisticalsignificancetestir
Cause-Effect Graphing: Rigorous Test Case Design
Mb00 48 operaton research
internship project1 report
applications of operation research in business
Decision table
Steps In Experimental Design ( QE )
Black box testing methods for software components
presentation of factorial experiment 3*2
Guidelines to Understanding Design of Experiment and Reliability Prediction
Ad

Similar to Specification based or black box techniques (andika m) (20)

PDF
Thetheoryofsoftwaretesting
PDF
Bt0081 software engineering2
PPTX
Chapter 8 agent-oriented software engineering ch8-prometheus research methodo...
PDF
Approaches to unraveling a complex test problem
DOCX
A PARTICLE SWARM OPTIMIZATION TECHNIQUE FOR GENERATING PAIRWISE TEST CASES
DOCX
Modified System Usability Scale Please answer the fo
PDF
Manual software-testing-interview-questions-with-answers
PDF
Manual software-testing-interview-questions-with-answers
DOCX
Manuel testing word
PDF
Software Testing Using Genetic Algorithms
PPTX
Test analysis
PDF
Techniques for integrating machine learning with knowledge ...
PPT
Chapter 3 SOFTWARE TESTING PROCESS
PDF
DBTest 2013 - In Data Veritas - Data Driven Testing for Distributed Systems
PDF
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
PDF
Muwanika rogers (software testing) muni university
PDF
Paper 06
PPT
prova4
PPT
prova2
PPT
Thetheoryofsoftwaretesting
Bt0081 software engineering2
Chapter 8 agent-oriented software engineering ch8-prometheus research methodo...
Approaches to unraveling a complex test problem
A PARTICLE SWARM OPTIMIZATION TECHNIQUE FOR GENERATING PAIRWISE TEST CASES
Modified System Usability Scale Please answer the fo
Manual software-testing-interview-questions-with-answers
Manual software-testing-interview-questions-with-answers
Manuel testing word
Software Testing Using Genetic Algorithms
Test analysis
Techniques for integrating machine learning with knowledge ...
Chapter 3 SOFTWARE TESTING PROCESS
DBTest 2013 - In Data Veritas - Data Driven Testing for Distributed Systems
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
Muwanika rogers (software testing) muni university
Paper 06
prova4
prova2
Ad

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
A Presentation on Artificial Intelligence
PPTX
1. Introduction to Computer Programming.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Getting Started with Data Integration: FME Form 101
PDF
Encapsulation theory and applications.pdf
Machine learning based COVID-19 study performance prediction
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MIND Revenue Release Quarter 2 2025 Press Release
A comparative analysis of optical character recognition models for extracting...
A Presentation on Artificial Intelligence
1. Introduction to Computer Programming.pptx
Electronic commerce courselecture one. Pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Assigned Numbers - 2025 - Bluetooth® Document
Advanced methodologies resolving dimensionality complications for autism neur...
Digital-Transformation-Roadmap-for-Companies.pptx
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
MYSQL Presentation for SQL database connectivity
Getting Started with Data Integration: FME Form 101
Encapsulation theory and applications.pdf

Specification based or black box techniques (andika m)

  • 1. SPECIFICATION BASED OR BLACK BOX TECHNIQUES By Graham et.al (2011) ANDIKA MARDANU PRODI S1 SISTEM INFORMASI FAKULTAS SAINS & TEKNOLOGI UIN SUSKA RIAU
  • 2. In this section, look for the definitions of the glossary terms: boundary value analysis, decision table testing, equivalence partitioning, state transition testing and use case testing. The four specification-based techniques we will cover in detail are: equivalence partitioning; boundary value analysis; decision tables; state transition testing. Introduction
  • 3. Equivalence partitioning (EP) is a good all-round specification-based black-box technique. It can be applied at any level of testing and is often a good technique to use first. It is a common sense approach to testing, so much so that most testers practise it informally even though they may not realize it. However, while it is better to use the technique informally than not at all, it is much better to use the technique in a formal way to attain the full benefits that it can deliver. This technique will be found in most testing books, including [Myers, 1979] and [Copeland, 2003]. The idea behind the technique is to divide (i.e. to partition) a set of test conditions into groups or sets that can be considered the same (i.e. the system should handle them equivalently), hence 'equivalence partitioning'. Equivalence partitions are also known as equivalence classes – the two terms mean exactly the same thing. Equivalence partitioning and boundary value analysis 1
  • 4. The equivalence-partitioning technique then requires that we need test only one condition from each partition. This is because we are assuming that all the conditions in one partition will be treated in the same way by the software. If one condition in a partition works, we assume all of the conditions in that partition will work, and so there is little point in testing any of these others. Conversely, if one of the conditions in a partition does not work, then we assume that none of the conditions in that partition will work so again there is little point in testing any more in that partition. Of course these are simplifying assumptions that may not always be right but if we write them down, at least it gives other people the chance to challenge the assumptions we have made and hopefully help to identify better partitions. If you have time, you may want to try more than one value from a partition, especially if you want to confirm a selection of typical user inputs. Cont…
  • 5. Why use decision tables? The techniques of equivalence partitioning and boundary value analysis are often applied to specific situations or inputs. However, if different combinations of inputs result in different actions being taken, this can be more difficult to show using equivalence partitioning and boundary value analysis, which tend to be more focused on the user interface. The other two specification-based techniques, decision tables and state transition testing are more focused on business logic or business rules. A decision table is a good way to deal with combinations of things (e.g. inputs). This technique is sometimes also referred to as a 'cause-effect' table. The reason for this is that there is an associated logic diagramming technique called 'cause-effect graphing' which was sometimes used to help derive the decision table (Myers describes this as a combinatorial logic network [Myers, 1979]). However, most people find it more useful just to use the table described in [Copeland, 2003]. Decision table testing2
  • 6. If you begin using decision tables to explore what the business rules are that should be tested, you may find that the analysts and developers find the tables very helpful and want to begin using them too. Do encourage this, as it will make your job easier in the future. Decision tables provide a systematic way of stating complex business rules, which is useful for developers as well as for testers. Decision tables can be used in test design whether or not they are used in specifications, as they help testers explore the effects of combinations of different inputs and other software states that must correctly implement business rules. Helping the developers do a better job can also lead to better relationships with them. Testing combinations can be a challenge, as the number of combinations can often be huge. Testing all combinations may be impractical if not impossible. We have to be satisfied with testing just a small subset of combinations but making the choice of which combinations to test and which to leave out is not trivial. If you do not have a systematic way of selecting combinations, an arbitrary subset will be used and this may well result in an ineffective test effort. Cont…
  • 7. Decision tables aid the systematic selection of effective test cases and can have the beneficial side-effect of finding problems and ambiguities in the specification. It is a technique that works well in conjunction with equivalence partitioning. The combination of conditions explored may be combinations of equivalence partitions. In addition to decision tables, there are other techniques that deal with testing combinations of things: pairwise testing and orthogonal arrays. These are described in [Copeland, 2003]. Another source of techniques is [Pol et al., 2001]. Decision tables and cause-effect graphing are described in [BS7925-2], including designing tests and measuring coverage. Cont…
  • 8. State transition testing is used where some aspect of the system can be described in what is called a 'finite state machine'. This simply means that the system can be in a (finite) number of different states, and the transitions from one state to another are determined by the rules of the 'machine'. This is the model on which the system and the tests are based. Any system where you get a different output for the same input, depending on what has happened before, is a finite state system. A finite state system is often shown as a state diagram (see Figure). State transition testing3
  • 9. Decision tables aid the systematic selection of effective test cases and can have the beneficial side-effect of finding problems and ambiguities in the specification. It is a technique that works well in conjunction with equivalence partitioning. The combination of conditions explored may be combinations of equivalence partitions. In addition to decision tables, there are other techniques that deal with testing combinations of things: pairwise testing and orthogonal arrays. These are described in [Copeland, 2003]. Another source of techniques is [Pol et al., 2001]. Decision tables and cause-effect graphing are described in [BS7925-2], including designing tests and measuring coverage. Cont…
  • 10. Use case testing is a technique that helps us identify test cases that exercise the whole system on a transaction by transaction basis from start to finish. They are described by Ivar Jacobson in his book Object-Oriented Software Engineering: A Use Case Driven Approach [Jacobson, 1992]. A use case is a description of a particular use of the system by an actor (a user of the system). Each use case describes the interactions the actor has with the system in order to achieve a specific task (or, at least, produce something of value to the user). Actors are generally people but they may also be other systems. Use cases are a sequence of steps that describe the interactions between the actor and the system. Use cases are defined in terms of the actor, not the system, describing what the actor does and what the actor sees rather than what inputs the system expects and what the system'outputs. They often use the language and terms of the business rather than technical terms, especially when the actor is a business user. They serve as the foundation for developing test cases mostly at the system and acceptance testing levels. Use case testing4
  • 11. Use cases can uncover integration defects, that is, defects caused by the incorrect interaction between different components. Used in this way, the actor may be something that the system interfaces to such as a communication link or sub-system. Use cases describe the process flows through a system based on its most likely use. This makes the test cases derived from use cases particularly good for finding defects in the real-world use of the system (i.e. the defects that the users are most likely to come across when first using the system). Each use case usually has a mainstream (or most likely) scenario and sometimes additional alternative branches (covering, for example, special cases or exceptional conditions). Each use case must specify any preconditions that need to be met for the use case to work. Use cases must also specify postconditions that are observable results and a description of the final state of the system after the use case has been executed successfully. Cont…