The document discusses four specification-based black-box testing techniques: equivalence partitioning, boundary value analysis, decision tables, and state transition testing. It provides definitions and explanations of each technique. For example, it explains that equivalence partitioning involves dividing test conditions into groups that should be handled equivalently by the system, and then testing one condition from each group. It also discusses use case testing and how use cases can help uncover integration defects.
This document discusses and defines four specification-based black-box testing techniques: equivalence partitioning, boundary value analysis, decision table testing, and state transition testing. It provides details on how each technique works, including dividing test conditions into equivalent groups (equivalence partitioning), testing boundary values (boundary value analysis), systematically testing combinations of inputs (decision table testing), and modeling systems as finite state machines to test state transitions (state transition testing). The document also briefly discusses use case testing which involves testing complete transactions from start to finish based on use cases.
This presentation describes optimization techniques using JMP tool to significantly reduce the test resources and test execution time without sacrificing test coverage.
Sensitivity analysis is the study of how uncertainty in the inputs of a mathematical model propagates to uncertainty in the model's outputs. It is useful for understanding relationships between inputs and outputs, identifying important inputs, and reducing uncertainty. Sensitivity analysis typically involves running the model many times while varying inputs, and calculating sensitivity measures from the resulting outputs to determine which inputs most influence uncertainty in the outputs. Common methods include variance-based approaches and screening methods.
A tester’s toolbox today contains a number of test case design techniques—classification trees, pairwise testing, design of experiments-based methods, and combinatorial testing. Each of these methods is supported by automated tools. Tools provide consistency in test case design, which can increase the all-important test coverage in software testing. Cause-effect graphing, another test design technique, is superior from a test coverage perspective, reducing the number of test cases needed to provide excellent coverage. Gary Mogyorodi describes these black box test case design techniques, summarizes the advantages and disadvantages of each technique, and provides a comparison of the features of the tools that support them. Using an example problem, he compares the number of test cases derived and the test coverage obtained using each technique, highlighting the advantages of cause-effect graphing. Join Gary to see what new techniques you might want to add to your toolbox.
Berikut adalah penjelasan apa itu black box testing untuk software.
oleh :
Ade Tiara Putri
Program Studi S1 Sistem Informasi
Fakultas Sains dan Teknologi
Universitas Islam Negeri Sultan Syarif Kasim Riau
please visit
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
The document compares different statistical significance tests for evaluating information retrieval systems:
1) Randomization, bootstrap, and Student's t-test produced similar significance values and are recommended.
2) The Wilcoxon and sign tests produced different p-values and can incorrectly predict or fail to detect significant differences between systems.
3) The randomization test is recommended as it can use any evaluation metric and does not assume a specific distribution of test statistics.
Specification based or black box techniques (andika m)Andika Mardanu
This document discusses specification-based or black box testing techniques, specifically equivalence partitioning, boundary value analysis, decision tables, state transition testing, and use case testing. It provides definitions and explanations of each technique, including that equivalence partitioning divides test conditions into groups that should be handled equivalently by the system, decision tables deal with combinations of inputs and conditions, state transition testing models systems that can be in different states, and use case testing identifies test cases that exercise full system transactions.
Specification Based or Black Box TechniquesRakhesLeoPutra
This document defines and describes several specification-based black-box testing techniques:
1) Equivalence partitioning divides conditions into groups that should be handled equivalently, and tests one condition from each group.
2) Decision tables aid in systematically selecting test cases to test combinations of inputs and states.
3) State transition testing models systems with different outputs depending on prior states using state diagrams.
4) Use case testing exercises end-to-end transactions by deriving tests from descriptions of how actors use the system.
This document discusses and defines four specification-based black-box testing techniques: equivalence partitioning, boundary value analysis, decision table testing, and state transition testing. It provides details on how each technique works, including dividing test conditions into equivalent groups (equivalence partitioning), testing boundary values (boundary value analysis), systematically testing combinations of inputs (decision table testing), and modeling systems as finite state machines to test state transitions (state transition testing). The document also briefly discusses use case testing which involves testing complete transactions from start to finish based on use cases.
Test Optimization With Design of Experimentajitbkulkarni
This presentation describes optimization techniques using JMP tool to significantly reduce the test resources and test execution time without sacrificing test coverage.
Sensitivity analysis is the study of how uncertainty in the inputs of a mathematical model propagates to uncertainty in the model's outputs. It is useful for understanding relationships between inputs and outputs, identifying important inputs, and reducing uncertainty. Sensitivity analysis typically involves running the model many times while varying inputs, and calculating sensitivity measures from the resulting outputs to determine which inputs most influence uncertainty in the outputs. Common methods include variance-based approaches and screening methods.
Cause-Effect Graphing: Rigorous Test Case DesignTechWell
A tester’s toolbox today contains a number of test case design techniques—classification trees, pairwise testing, design of experiments-based methods, and combinatorial testing. Each of these methods is supported by automated tools. Tools provide consistency in test case design, which can increase the all-important test coverage in software testing. Cause-effect graphing, another test design technique, is superior from a test coverage perspective, reducing the number of test cases needed to provide excellent coverage. Gary Mogyorodi describes these black box test case design techniques, summarizes the advantages and disadvantages of each technique, and provides a comparison of the features of the tools that support them. Using an example problem, he compares the number of test cases derived and the test coverage obtained using each technique, highlighting the advantages of cause-effect graphing. Join Gary to see what new techniques you might want to add to your toolbox.
Black box testing methods for software componentsputiadetiara
Berikut adalah penjelasan apa itu black box testing untuk software.
oleh :
Ade Tiara Putri
Program Studi S1 Sistem Informasi
Fakultas Sains dan Teknologi
Universitas Islam Negeri Sultan Syarif Kasim Riau
please visit
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
The document compares different statistical significance tests for evaluating information retrieval systems:
1) Randomization, bootstrap, and Student's t-test produced similar significance values and are recommended.
2) The Wilcoxon and sign tests produced different p-values and can incorrectly predict or fail to detect significant differences between systems.
3) The randomization test is recommended as it can use any evaluation metric and does not assume a specific distribution of test statistics.
The document discusses various techniques for functional testing, including boundary value testing, equivalence class testing, decision table-based testing, and robustness testing. It provides details on decision tables, including their structure, usage, examples, and methodology for development. Decision tables present conditions and corresponding actions in a matrix format and can be used to both specify complex program logic and generate test cases.
applications of operation research in businessraaz kumar
1) Operations research is a quantitative approach to decision making based on the scientific method of problem solving. It involves modeling real-life situations as mathematical problems to arrive at optimal or near-optimal solutions.
2) The key steps in operations research problem solving are defining the problem, determining alternative solutions, evaluating alternatives using criteria, choosing the best alternative, implementing the chosen alternative, and evaluating the results.
3) Common techniques used in operations research include linear programming, transportation modeling, assignment modeling, and simulation methods like PERT/CPM. These techniques help optimize objectives while satisfying constraints.
This document provides an introduction to design of experiments. It discusses how industrial engineering draws upon various fields like mathematics, physical sciences, and social sciences. It also discusses key concepts like systems, factors and treatments, the P diagram, and noise factors. The goal of experimental design is to specify, predict, and evaluate results from integrated systems through designing and analyzing experiments.
Cause-effect graphs capture relationships between inputs (causes) and outputs (effects) in black box testing. Causes and effects are represented as nodes in a graph connected by intermediate nodes. An example graphs the causes if the first character is 'A' or 'B' and the second column is a number leading to the effect that the file is updated, or other causes and effects like erroneous characters printing message X12. The methodology involves decomposing the system, identifying causes and effects, establishing the graph of relationships between them, adding constraints, converting the graph to a decision table, and producing a test per line of the simplified table.
The document discusses experimental design and outlines several types of designs:
1) One factor designs investigate the effect of changing a single factor on the response.
2) Factorial designs study the effects of multiple factors simultaneously. Full factorial designs test all possible combinations of factors and levels. Two-level factorial designs restrict factors to two levels.
3) Fractional factorial designs test only a fraction of all possible factor level combinations to reduce the number of required experiments. Taguchi orthogonal arrays are highly fractional designs that estimate main effects using few experimental runs.
This document discusses factorial design, which is an experimental design technique used for optimization. It involves studying the effects of two or more factors simultaneously. There are two main types: full factorial design, which tests all possible combinations of factors and levels, and fractional factorial design, which reduces the number of runs when there are many factors. Factorial designs allow evaluation of both main effects and interaction effects. They are useful for formulation development and method optimization in chromatography. Software is used to analyze the results of factorial experiments.
Approaches to Experimentation
What is Design of Experiments
Definition of DOE
Why DOE
History of DOE
Basic DOE Example
Factors, Levels, Responses
General Model of Process or System
Interaction, Randomization, Blocking, Replication
Experiment Design Process
Types of DOE
One factorial
Two factorial
Fractional factorial
Screening experiments
Calculation of Alias
DOE Selection Guide
This document discusses input modeling for simulation and outlines 4 steps:
1) Collect data from the real system or use expert opinion if data is unavailable
2) Identify a probability distribution to represent the input process
3) Choose parameters for the distribution family by estimating from the data
4) Evaluate the chosen distribution through goodness of fit tests or create an empirical distribution if none is found
This document discusses the theory of software testing. It covers several key topics:
1) It identifies five common problems in software testing like limitations of testing teams and issues with manual testing.
2) It describes different testing processes like verification, validation, white-box testing and black-box testing.
3) It outlines three main phases of software testing - preliminary testing, testing, and user acceptance testing - to evaluate a new software system and identify any issues.
The document discusses different types of software assessment techniques, including metric-oriented assessments, unified model assessments, process improvement assessments, and tool support assessments. It also covers the importance of version and release management in tracking different versions of a system. Finally, it discusses various software testing fundamentals, strategies, and principles, such as unit testing, integration testing, validation testing, stress testing, and the importance of designing software for testability.
1) The document discusses identifying test conditions from a test basis such as requirements or code. Test conditions are things that can be tested.
2) Good test conditions cover different types of inputs, data, and outcomes based on the specific system. Prioritizing test conditions is important to focus on the most important ones.
3) Traceability between test conditions, test cases, and the original test basis is important for maintaining and updating tests when requirements change.
Abstract—Combinatorial testing (also called interaction testing) is an effective specification-based test input generation technique. By now most of research work in combinatorial testing aims to propose novel approaches trying to generate test suites with minimum size that still cover all the pairwise, triple, or n-way combinations of factors. Since the difficulty of solving this problem is demonstrated to be NP-hard, existing approaches have been designed to generate optimal or near optimal combinatorial test suites in polynomial time. In this paper, we try to apply particle swarm optimization (PSO), a kind of meta-heuristic search technique, to pairwise testing (i.e. a special case of combinatorial testing aiming to cover all the pairwise combinations). To systematically build pairwise test suites, we propose two different PSO based algorithms. One algorithm is based on one-test-at-a-time strategy and the other is based on IPO-like strategy. In these two different algorithms, we use PSO to complete the construction of a single test. To successfully apply PSO to cover more uncovered pairwise combinations in this construction process, we provide a detailed description on how to formulate the search space, define the fitness function and set some heuristic settings. To verify the effectiveness of our approach, we implement these algorithms and choose some typical inputs. In our empirical study, we analyze the impact factors of our approach and compare our approach to other well-known approaches. Final empirical results show the effectiveness and efficiency of our approach.
This paper presents a set of methods that uses a genetic algorithm for automatic test-data generation in
software testing. For several years researchers have proposed several methods for generating test data
which had different drawbacks. In this paper, we have presented various Genetic Algorithm (GA) based test
methods which will be having different parameters to automate the structural-oriented test data generation
on the basis of internal program structure. The factors discovered are used in evaluating the fitness
function of Genetic algorithm for selecting the best possible Test method. These methods take the test
populations as an input and then evaluate the test cases for that program. This integration will help in
improving the overall performance of genetic algorithm in search space exploration and exploitation fields
with better convergence rate.
The document discusses various topics related to software testing including goals of testing, difficulties in testing, different stages of testing like unit testing and integration testing, test selection strategies like specification-based, operational distribution-based, domain-based, and risk-based testing. It also covers test automation, white-box testing methods, and the financial implications of inadequate testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and comparing testing strategies. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based testing.
The document discusses various topics related to software testing including goals of testing, difficulties in testing, types of testing (unit, integration, system), test case selection strategies (code-based, specification-based, operational distribution-based, domain-based, risk-based), test automation, and the financial implications of inadequate testing. It notes that testing aims to detect faults, establish confidence, and evaluate properties, but is difficult due to issues like determining correct outputs and adequate testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correctness of outputs and selecting test cases. Different strategies for test case selection are covered such as code-based, specification-based, operational distribution-based, domain-based, random testing, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and comparing testing strategies. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correctness of outputs and selecting test cases. Different strategies for test case selection are covered such as code-based, specification-based, operational distribution-based, domain-based, random testing, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and comparing testing strategies. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correctness of outputs and selecting test cases. Different strategies for test case selection are covered such as code-based, specification-based, operational distribution-based, domain-based, random testing, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and adequately testing interfaces. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based techniques. The goals of testing like detecting faults and evaluating reliability are also mentioned.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correctness of outputs and selecting test cases. Different strategies for test case selection are covered such as code-based, specification-based, operational distribution-based, domain-based, random testing, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and comparing testing strategies. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correctness of outputs and selecting test cases. Different strategies for test case selection are covered such as code-based, specification-based, operational distribution-based, domain-based, random testing, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and adequate testing. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based testing. Factors that influence prioritizing test cases are also summarized.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and comparing testing strategies. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based testing.
The document discusses various techniques for software testing including unit testing, integration testing, system testing, and regression testing. It describes challenges in software testing like determining correct outputs and comparing testing strategies. Different strategies for selecting test cases are covered such as code-based, specification-based, operational distribution-based, domain-based, random, and risk-based testing.
Similar to Specification based or black box techniques (20)
This document discusses important factors to consider when introducing a new tool into an organization. It emphasizes that the tool should address real needs within the organization and support existing processes rather than dictate new ones. A pilot project is recommended to test how well the tool fits with the organization's maturity, needs, and ways of working. Objectives for the pilot include learning about the tool, seeing how it integrates with current practices, and evaluating whether expected benefits are achieved. For successful long-term implementation, an incremental rollout combined with ongoing training, guidelines, process adaptation, and benefit monitoring is advised.
This document describes the fundamental test process, which includes test planning and control, analysis and design, implementation and execution, evaluating exit criteria and reporting, and test closure activities. It discusses the main tasks for each part of the test process, including determining test scope and objectives, developing a test approach and schedule, designing test cases, prioritizing and implementing test cases, executing tests, and evaluating whether exit criteria are met. The goal is to provide a structured approach to testing at all levels from component to system testing.
The document discusses important factors to consider when introducing a new tool into an organization. It emphasizes that the tool should support, not lead, the organization's processes and maturity. A pilot project is recommended to prove the concept and ensure the tool meets requirements. Objectives of the pilot include learning how the tool fits with current processes, defining standard usage, and evaluating benefits. Success requires an incremental rollout, adapting processes for best fit, training users, and continuous improvement as usage increases.
This document describes the fundamental test process, which includes test planning, analysis and design, implementation and execution, evaluating exit criteria and reporting, and test closure activities. It discusses the main tasks for each part of the test process, including determining test scope and objectives, developing test cases and procedures, prioritizing and executing tests, and using exit criteria to determine when testing is complete. The document provides examples and details for each step in the testing process.
Tulisan ini memberikan tutorial lengkap untuk menginstal dan menggunakan Thunderbird beserta plugin Enigmail dan GPG untuk mengirim email yang terenkripsi secara aman. Tutorial dimulai dari instalasi Thunderbird, GPG, dan Enigmail; cara konfigurasi akun email dan mengunggah kunci publik; hingga cara mengirim dan membalas email terenkripsi.
Lecture_Notes_Unit4_Chapter_8_9_10_RDBMS for the students affiliated by alaga...Murugan Solaiyappan
Title: Relational Database Management System Concepts(RDBMS)
Description:
Welcome to the comprehensive guide on Relational Database Management System (RDBMS) concepts, tailored for final year B.Sc. Computer Science students affiliated with Alagappa University. This document covers fundamental principles and advanced topics in RDBMS, offering a structured approach to understanding databases in the context of modern computing. PDF content is prepared from the text book Learn Oracle 8I by JOSE A RAMALHO.
Key Topics Covered:
Main Topic : DATA INTEGRITY, CREATING AND MAINTAINING A TABLE AND INDEX
Sub-Topic :
Data Integrity,Types of Integrity, Integrity Constraints, Primary Key, Foreign key, unique key, self referential integrity,
creating and maintain a table, Modifying a table, alter a table, Deleting a table
Create an Index, Alter Index, Drop Index, Function based index, obtaining information about index, Difference between ROWID and ROWNUM
Target Audience:
Final year B.Sc. Computer Science students at Alagappa University seeking a solid foundation in RDBMS principles for academic and practical applications.
About the Author:
Dr. S. Murugan is Associate Professor at Alagappa Government Arts College, Karaikudi. With 23 years of teaching experience in the field of Computer Science, Dr. S. Murugan has a passion for simplifying complex concepts in database management.
Disclaimer:
This document is intended for educational purposes only. The content presented here reflects the author’s understanding in the field of RDBMS as of 2024.
Feedback and Contact Information:
Your feedback is valuable! For any queries or suggestions, please contact muruganjit@agacollege.in
Principles of Roods Approach!!!!!!!.pptxibtesaam huma
Principles of Rood’s Approach
Treatment technique used in physiotherapy for neurological patients which aids them to recover and improve quality of life
Facilitatory techniques
Inhibitory techniques
How to Handle the Separate Discount Account on Invoice in Odoo 17Celine George
In Odoo, separate discount account can be set up to accurately track and manage discounts applied on various transaction and ensure precise financial reporting and analysis
How to Create Sequence Numbers in Odoo 17Celine George
Sequence numbers are mainly used to identify or differentiate each record in a module. Sequences are customizable and can be configured in a specific pattern such as suffix, prefix or a particular numbering scheme. This slide will show how to create sequence numbers in odoo 17.
Front Desk Management in the Odoo 17 ERPCeline George
Front desk officers are responsible for taking care of guests and customers. Their work mainly involves interacting with customers and business partners, either in person or through phone calls.
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...Neny Isharyanti
Presented as a plenary session in iTELL 2024 in Salatiga on 4 July 2024.
The plenary focuses on understanding and intepreting relevant TPACK competence for teachers to be adept in teaching multimodality in the digital age. It juxtaposes the results of research on multimodality with its contextual implementation in the teaching of English subject in the Indonesian Emancipated Curriculum.
(T.L.E.) Agriculture: Essentials of GardeningMJDuyan
(𝐓𝐋𝐄 𝟏𝟎𝟎) (𝐋𝐞𝐬𝐬𝐨𝐧 𝟏.𝟎)-𝐅𝐢𝐧𝐚𝐥𝐬
Lesson Outcome:
-Students will understand the basics of gardening, including the importance of soil, water, and sunlight for plant growth. They will learn to identify and use essential gardening tools, plant seeds, and seedlings properly, and manage common garden pests using eco-friendly methods.
How to Show Sample Data in Tree and Kanban View in Odoo 17Celine George
In Odoo 17, sample data serves as a valuable resource for users seeking to familiarize themselves with the functionalities and capabilities of the software prior to integrating their own information. In this slide we are going to discuss about how to show sample data to a tree view and a kanban view.
Views in Odoo - Advanced Views - Pivot View in Odoo 17Celine George
In Odoo, the pivot view is a graphical representation of data that allows users to analyze and summarize large datasets quickly. It's a powerful tool for generating insights from your business data.
The pivot view in Odoo is a valuable tool for analyzing and summarizing large datasets, helping you gain insights into your business operations.
Split Shifts From Gantt View in the Odoo 17Celine George
Odoo allows users to split long shifts into multiple segments directly from the Gantt view.Each segment retains details of the original shift, such as employee assignment, start time, end time, and specific tasks or descriptions.
Ardra Nakshatra (आर्द्रा): Understanding its Effects and RemediesAstro Pathshala
Ardra Nakshatra, the sixth Nakshatra in Vedic astrology, spans from 6°40' to 20° in the Gemini zodiac sign. Governed by Rahu, the north lunar node, Ardra translates to "the moist one" or "the star of sorrow." Symbolized by a teardrop, it represents the transformational power of storms, bringing both destruction and renewal.
About Astro Pathshala
Astro Pathshala is a renowned astrology institute offering comprehensive astrology courses and personalized astrological consultations for over 20 years. Founded by Gurudev Sunil Vashist ji, Astro Pathshala has been a beacon of knowledge and guidance in the field of Vedic astrology. With a team of experienced astrologers, the institute provides in-depth courses that cover various aspects of astrology, including Nakshatras, planetary influences, and remedies. Whether you are a beginner seeking to learn astrology or someone looking for expert astrological advice, Astro Pathshala is dedicated to helping you navigate life's challenges and unlock your full potential through the ancient wisdom of Vedic astrology.
For more information about their courses and consultations, visit Astro Pathshala.
How to Install Theme in the Odoo 17 ERPCeline George
With Odoo, we can select from a wide selection of attractive themes. Many excellent ones are free to use, while some require payment. Putting an Odoo theme in the Odoo module directory on our server, downloading the theme, and then installing it is a simple process.
Integrated Marketing Communications (IMC)- Concept, Features, Elements, Role of advertising in IMC
Advertising: Concept, Features, Evolution of Advertising, Active Participants, Benefits of advertising to Business firms and consumers.
Classification of advertising: Geographic, Media, Target audience and Functions.
Webinar Innovative assessments for SOcial Emotional SkillsEduSkills OECD
Presentations by Adriano Linzarini and Daniel Catarino da Silva of the OECD Rethinking Assessment of Social and Emotional Skills project from the OECD webinar "Innovations in measuring social and emotional skills and what AI will bring next" on 5 July 2024
"DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY ...
Specification based or black box techniques
1. SPECIFICATION BASED
OR BLACK BOX
TECHNIQUES
By Graham et.al (2011)
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
MUHAMMAD BRANIKNO R
UNIVERSITAS ISLAM NEGERI
SULTAN SYARIF KASIM 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…