The document discusses various test case design techniques, including boundary value analysis and decision table testing. Boundary value analysis focuses on testing values at the boundaries of requirements because defects often occur there. It involves testing one point on the boundary, one just below, and one just above. Decision table testing represents complex business rules in a table with conditions and expected actions. Test cases are then created based on each rule in the table.
Chapter 1 of ISTQB Agile tester extension certification. This chapter will give you the understanding about the content of chapter 1 of the certification.
This project involves developing a web-based online examination system that allows students to take customizable objective tests from any location via the internet. It would enable educational institutions to conduct tests, quizzes, and collect feedback without paper. Key features include allowing teachers to create and manage tests and questions, scheduling exams, providing results instantly upon completion, and generating performance analysis reports.
This document discusses Oracle's MetaSolv/OSM/UIM offerings for inventory and order management capabilities to facilitate traditional and next-generation communication services. It describes Prodapt's services for pre-implementation, implementation, and post-implementation of the MetaSolv/OSM/UIM solution, including turnkey implementation, customization, and integration services to streamline operations and reduce costs.
With the proliferation of cloud applications, mobile devices, and industry trends like Bring Your Own Device (BYOD), IT organizations are increasingly challenged with how to manage and gain transparency into user access to systems and applications. Salesforce Identity helps address these issues by providing IAM for web and mobile applications, built on the trusted Salesforce Platform. Join us to learn how to deploy Salesforce Identity from the ground up. Topics will include Single Sign-On and Provisioning from Active Directory, Setting up an Identity Provider for Single Sign-On to other cloud applications, integrating mobile apps, and more. Come get techie, walk away with the knowledge you need to use Identity to simplify your users' lives, and transform your business.
The document contains responses to questions about software testing terms and concepts. Key points discussed include:
- Cyclomatic complexity is a white box testing type that analyzes the complexity of code.
- Monkey testing tests software without test cases by randomly interacting with screens and inputs to find bugs.
- Severity refers to a bug's seriousness while priority refers to which bug should be fixed first.
- A login screen bug example is provided where severity is low but priority is high due to usability issues.
- System testing is a type of black box testing that tests the full application and includes functionality, regression, and performance testing.
Testing is necessary for software systems to ensure reliability, manage costs, and reduce risks. It is impossible to exhaustively test a system, so testing aims to detect defects and measure quality. Testing alone cannot improve quality but can identify issues to address. Different testing types exist for various stages, including unit, integration, system, and acceptance testing, and both black-box and white-box techniques are used. Rigorous planning, design, execution and tracking of test cases and results is needed. While testing shows defects, debugging is then needed to identify and address the root causes.
Tool Support for Testing as Chapter 6 of ISTQB Foundation 2018. Topics covered are Tool Benefits, Test Tool Classification, Benefits of Test Automation, Risk of Test Automation, Selecting a tool for Organization, Pilot Project, Success factor for using a tool
Chapter 2 - Testing Throughout the Development LifeCycleNeeraj Kumar Singh
The document discusses testing throughout the software development life cycle. It describes different software development models including sequential, incremental, and iterative models. It also covers different test levels from component and integration testing to system and acceptance testing. The document discusses different types of testing including functional and non-functional testing. It also covers topics like maintenance testing and triggers for additional testing when changes are made.
This document outlines a student feedback system project created by group members Mayur Sandbhor, Ganesh Mali, and Atish Johare under the guidance of Mithun Mhatre. The project uses Java and Oracle 10g to allow students to provide online feedback about college staff. It has two modules - one for students to submit feedback and one for administrators to view feedback reports. The project goes through phases of analysis, design using UML diagrams, testing, and concludes with discussing benefits and potential enhancements.
This is chapter 1 of ISTQB Specialist Performance Tester certification. This presentation helps aspirants understand and prepare the content of the certification.
This document discusses software quality factors and McCall's model of quality factors. It describes McCall's model which categorizes quality factors into three categories: product operation factors related to how well the software runs, product revision factors related to how easily the software can be changed and tested, and product transition factors related to moving the software to different environments. Under each category it provides examples of specific quality factors like correctness, reliability, maintainability, and portability. It also mentions some alternative models that suggest additional quality factors.
Many organizations are using JIRA for issue tracking – incident, service request, problem and change management, as well as for project management. However, JIRA can also be used as a tool for test management.
Presentation was given on TAPOST 2012: http://www.itbaltic.com/en/conferences/tapost-2012/
This is chapter 4 of ISTQB Advance Test Manager certification. This presentation helps aspirants understand and prepare the content of the certification.
This is chapter 2 of ISTQB Advance Agile Technical Tester certification. This presentation helps aspirants understand and prepare the content of the certification.
Here are the rules for the supermarket loyalty scheme:
Rule 1: All customers are eligible for a loyalty card.
Rule 2: Loyalty cardholders get either additional discounts on all purchases or earn loyalty points.
Rule 3: Additional discounts are offered on all purchases to loyalty cardholders.
Rule 4: Loyalty cardholders can earn points which can be converted to vouchers or points with partner schemes.
Given:
- Customer has a loyalty card
- Made a purchase of £50
Test case: Loyalty cardholder who made a £50 purchase earns 50 loyalty points
Expected result: Valid (matches Rule 4)
This document discusses logical design of data warehouse fact tables. It covers defining fact table column types including measures, foreign keys and surrogate keys. It describes additive, semi-additive and non-additive measures and how they impact aggregation. Finally, it discusses resolving many-to-many relationships in a star schema by creating an intermediate dimension table.
Random testing involves generating test inputs randomly without following a systematic strategy. It was first mentioned in 1979 by Glenford Myers. Random testing can be used to estimate software reliability by recording failures from randomly generated test inputs according to an operational profile. The main advantages are that it is easy to implement, allows testing a large number of cases, and can find defects that systematic testing may miss. However, it is not as effective as other techniques at finding certain types of defects and results must be carefully analyzed. Random testing is best suited for domains with well-defined boundaries and when time for testing is limited.
This document provides an overview of the insurance domain. It defines key insurance concepts like domain, domain expert, subject expert, insurer, insured, premium, and policy holder. It describes the different types of insurance like life, health, dental, business, and transport insurance. It outlines the insurance process including policy administration, claims processing, and underwriting. Finally, it discusses factors that influence insurance rates and the benefits of purchasing insurance.
The document discusses test case structure and specifications. It defines a test case as a set of inputs, expected results, and execution conditions used to test a specific program path or requirement. A test case specification is a document that specifies test cases by outlining objectives, inputs, test actions, expected results, and preconditions. It also provides guidelines for writing effective test cases, such as keeping them short, using simple language, and providing test data and notes when possible. The overall goal is to write test cases early based on design to allow for early bug detection and efficient testing once code is completed.
This document contains questions and answers related to Informatica technical interviews. It discusses concepts like degenerate dimensions, requirements gathering, junk dimensions, staging areas, join types in Informatica and Oracle, file formats for Informatica objects, versioning, tracing levels, performance factors for different join types, databases supported by Informatica server on Windows and UNIX, overview windows, and updating source definitions. The document is a collection of commonly asked Informatica technical interview questions and answers.
The document discusses various concepts related to data warehousing and ETL processes. It provides definitions for key terms like critical success factors, data cubes, data cleaning, data mining stages, data purging, BUS schema, non-additive facts, conformed dimensions, slowly changing dimensions, cube grouping, and more. It also describes different types of ETL testing including constraint testing, source to target count testing, field to field testing, duplicate check testing, and error handling testing. Finally, it discusses the differences between an ODS and a staging area, with an ODS storing recent cleaned data and a staging area serving as a temporary work area during the ETL process.
The document provides information about IT online training and placement services offered by P2Cinfotech.com. The company offers training in technologies like QA, BA, QTP, Java, and mobile apps, along with mock interviews and guaranteed job placement assistance. The document also includes sample questions that may be asked during interviews for web services experience and definitions of terms like web services, REST, SOAPUI, and XML schema. Sample SQL statements are provided for CRUD (create, read, update, delete) operations and queries on database tables.
Test design techniques: Structured and Experienced-based techniquesKhuong Nguyen
This document discusses different types of software testing techniques, including structured-based techniques like cyclomatic complexity and statement/decision coverage, as well as experience-based techniques like error guessing and exploratory testing. It explains how to calculate cyclomatic complexity and coverage percentages. Choosing the appropriate testing technique depends on factors like system type, standards, requirements, risk level, documentation, tester knowledge, time and budget. Testing usually involves combining different techniques.
ETL Testing Interview Questions and AnswersH2Kinfosys
This document discusses interview questions related to ETL testing for business intelligence projects. It begins with questions about challenges in BI testing, what BI and data warehousing are, and key concepts like the data flow in a data warehouse. It then provides examples of different types of testing done on a data warehouse, including attribute checks, duplicate checks, original key checks, and reconciliation checks using sample SQL queries. Finally, it discusses tools that a QA team may use for ETL testing.
1) The document provides an overview of different test case design techniques including specification based testing, input domain testing, risk based testing, and scenario testing.
2) Specification based testing techniques discussed include analyzing specifications for gaps or contradictions, gathering additional information from developers, and using the 5W1H technique to derive test cases.
3) Input domain testing techniques like equivalence partitioning and boundary value analysis are covered to avoid redundant test cases around inputs.
4) Risk based testing involves imagining how a program could fail, assessing the likelihood and impact of failures, and designing test cases to expose potential failures.
5) Scenario testing uses real user personas and examples of how the software will be used to further
The document summarizes various software testing techniques, including:
- White-box testing techniques like cyclomatic complexity and control flow graph analysis to derive test cases.
- Black-box techniques like equivalence partitioning and boundary value analysis to design test cases based on valid and invalid input conditions.
- The goal of testing is to systematically uncover errors by executing all independent paths and boundary values through a program.
The document discusses various software testing techniques including black box testing, white box testing, and grey box testing. It provides details on specific techniques such as equivalence partitioning, boundary value analysis, statement coverage, condition coverage, function coverage, and cyclomatic complexity. The objective is to understand these techniques so they can be used effectively to test applications and find defects.
This document discusses black box testing techniques. Black box testing involves testing software without knowledge of its internal structure or design. Key black box techniques include equivalence partitioning, which divides input into classes; boundary value analysis, which tests boundary cases; error guessing, which uses experience to generate test cases; and cause-effect graphing, which analyzes how inputs cause outputs to derive test cases. Black box testing has advantages like independence from implementation details and testing from a user perspective.
Black box testing tests the functionality of software without knowledge of its internal structure or design. It is performed by testers and clients to test the software from an end user's perspective. There are various techniques used in black box testing including equivalence partitioning, boundary value analysis, and error guessing.
The document discusses various black box testing strategies including equivalence partitioning, boundary value analysis, decision table testing, state transition testing, and error guessing. Black box testing involves testing software modules independently without knowledge of internal implementation. It aims to test functional validity and interface errors by examining expected outputs for given inputs based on requirements.
The document discusses various concepts related to software testing including verification vs validation, inspection vs testing, black box vs white box testing, and testing techniques like equivalence partitioning, boundary value analysis, and cause-effect graphing. It defines verification as ensuring software meets specifications while validation ensures it meets customer needs. Inspection examines static documents while testing evaluates dynamic behavior. Black box testing uses requirements while white box considers internal structure.
This document provides an overview of use case based test case generation, equivalence partitioning, and boundary value analysis techniques for software testing. It describes the process of transforming use cases into test cases, including identifying use case scenarios, generating test cases, and generating test data. It also explains how to apply equivalence partitioning and boundary value analysis to identify representative test values that cover different equivalence classes and boundary conditions of the system. The objectives are to understand these testing techniques and apply them to generate test cases for use cases in real-life systems.
The document discusses various techniques for white box testing including static testing and structural testing. Static testing involves techniques like desk checking, code walkthroughs, and code inspections that do not require executing the code. Structural testing techniques execute the code and include unit testing, code coverage testing, and complexity testing. Code coverage criteria like statement coverage and branch coverage are discussed as ways to measure how thoroughly the code has been tested. Control flow graphs are presented as a way to represent program logic and control flow.
The document discusses various software testing techniques including:
- Unit testing techniques like white box testing, gray box testing, and equivalence partitioning
- Integration testing techniques like boundary value analysis and error guessing
- The iterative process of test-driven development where tests are written before implementing features
It provides an example of using these techniques to test a TrafficSignal class through a series of test methods.
This document discusses various static and dynamic testing techniques. It explains that static testing is done manually without executing code, such as reviews and inspections. Dynamic testing requires executing the code using techniques like unit testing. Black box techniques like equivalence partitioning, boundary value analysis, decision tables, and state transition testing are covered, along with an example for each. White box techniques focus on internal code structure and test coverage metrics. The document provides details on different testing techniques for testers to design effective test cases.
The document discusses various techniques for software testing including black box testing, equivalence partitioning, boundary value analysis, cause-effect graphing, pairwise testing, and special case testing. The goal of testing is to identify defects by designing test cases that are most likely to cause failures and reveal faults in the software.
Shift-Left Testing: QA in a DevOps World by David LaulusaQA or the Highway
Shift-left testing involves injecting quality earlier in the software development process through techniques like unit testing, test-driven development, and regression testing. The presentation discusses principles for effective testing including equivalence partitioning, boundary value analysis, and combinatorial testing. It emphasizes the importance of collaboration between testers and developers through practices like dependency injection and test automation.
Test design techniques are procedures used to define test conditions, design test cases, and specify test data in order to improve testing efficiency. There are three main categories of test design techniques: specification-based techniques derive test cases from requirements or models, structure-based techniques derive test cases from code, and experience-based techniques use the tester's experience. Equivalence partitioning and boundary value analysis are two important specification-based techniques. Equivalence partitioning divides test conditions into valid and invalid equivalence classes, while boundary value analysis tests values at the boundaries between partitions. Together these techniques help identify effective test cases.
Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings.
The document discusses various types and techniques of software testing. It defines software testing as the process of executing a program to find errors. It describes different levels of testing like unit testing, integration testing, system testing etc. It explains black box and white box testing strategies and techniques for designing test cases like equivalence partitioning, boundary value analysis, cause-effect graphing etc. It also discusses limitations of testing and challenges in achieving complete testing.
A small introduction to some techniques of BBT as Boundary Value, Equivalence Class, Decision Table. According to this presentation, you can know how to apply them in the real world.
This document discusses various functional testing techniques, including:
- Boundary value analysis, which tests inputs at minimum, maximum, and nominal values to find faults.
- Equivalence class testing, which divides the input domain into classes and tests one representative from each class.
- Decision table testing, which represents logical relationships between inputs and outputs in a table to derive test cases.
The techniques aim to design test cases that have a higher probability of failure and cover all possible program functionality through a black box approach. Functional testing treats the program as a black box and ignores internal structure.
This document discusses various software testing techniques including verification, validation, and testing. It defines verification as demonstrating consistency, completeness, and correctness of software artifacts throughout development. Validation ensures compliance with customer needs and requirements. Testing examines program behavior by executing sample test cases. Exhaustive testing all possible inputs is infeasible due to exponential complexity. The document then discusses functional black-box testing based on requirements and structural white-box testing using coverage metrics like statement, branch, path, and condition coverage to guide test case selection.
This lab discusses selections and provides examples of if statement, nested if, and switch. It also covers logical operators and relational operators. It gives many examples to help the student develop logical think and structure computer logic.
Software testing is a vital process without which no software release can occur, it makes the software usable. Software testing offers opportunities constantly to be exposed with new development methods, new platform technologies, new product innovations.
In selection control structures, conditional statements are features of a programming language which perform different computations or actions depending on whether a programmer-specified Boolean condition evaluates to true or false.
If age > 17
Output "You can vote."
False:
Output "You can't vote."
End
The document discusses selection structures in programming, including if/then/else statements and case structures. Selection structures allow a program to make decisions and choose different code paths based on conditional logic. The document provides examples of using relational, logical, and case operators to evaluate conditions and execute different code blocks accordingly. Key aspects covered include if/then syntax, else clauses, nested if statements, and case structure syntax.
Test Case Design Techniques as chapter 4 of ISTQB Foundation. Topics included are Equivalence Partition, Boundary Value Analysis, State Transition Testing, Decision Table Testing, Use Case Testing, Statement Coverage, Decision Coverage, Error Guessing, Exploratory Testing, Checklist Based Testing
This PDF delves into the aspects of information security from a forensic perspective, focusing on privacy leaks. It provides insights into the methods and tools used in forensic investigations to uncover and mitigate privacy breaches in mobile and cloud environments.
"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan...Fwdays
.NET 8 brought a lot of improvements for developers and maturity to the Azure serverless container ecosystem. So, this talk will cover these changes and explain how you can apply them to your projects. Another reason for this talk is the re-invention of Serverless from a DevOps perspective as a Platform Engineering trend with Backstage and the recent Radius project from Microsoft. So now is the perfect time to look at developer productivity tooling and serverless apps from Microsoft's perspective.
Keynote : AI & Future Of Offensive SecurityPriyanka Aash
In the presentation, the focus is on the transformative impact of artificial intelligence (AI) in cybersecurity, particularly in the context of malware generation and adversarial attacks. AI promises to revolutionize the field by enabling scalable solutions to historically challenging problems such as continuous threat simulation, autonomous attack path generation, and the creation of sophisticated attack payloads. The discussions underscore how AI-powered tools like AI-based penetration testing can outpace traditional methods, enhancing security posture by efficiently identifying and mitigating vulnerabilities across complex attack surfaces. The use of AI in red teaming further amplifies these capabilities, allowing organizations to validate security controls effectively against diverse adversarial scenarios. These advancements not only streamline testing processes but also bolster defense strategies, ensuring readiness against evolving cyber threats.
Top 12 AI Technology Trends For 2024.pdfMarrie Morris
Technology has become an irreplaceable component of our daily lives. The role of AI in technology revolutionizes our lives for the betterment of the future. In this article, we will learn about the top 12 AI technology trends for 2024.
Discovery Series - Zero to Hero - Task Mining Session 1DianaGray10
This session is focused on providing you with an introduction to task mining. We will go over different types of task mining and provide you with a real-world demo on each type of task mining in detail.
UiPath Community Day Amsterdam: Code, Collaborate, ConnectUiPathCommunity
Welcome to our third live UiPath Community Day Amsterdam! Come join us for a half-day of networking and UiPath Platform deep-dives, for devs and non-devs alike, in the middle of summer ☀.
📕 Agenda:
12:30 Welcome Coffee/Light Lunch ☕
13:00 Event opening speech
Ebert Knol, Managing Partner, Tacstone Technology
Jonathan Smith, UiPath MVP, RPA Lead, Ciphix
Cristina Vidu, Senior Marketing Manager, UiPath Community EMEA
Dion Mes, Principal Sales Engineer, UiPath
13:15 ASML: RPA as Tactical Automation
Tactical robotic process automation for solving short-term challenges, while establishing standard and re-usable interfaces that fit IT's long-term goals and objectives.
Yannic Suurmeijer, System Architect, ASML
13:30 PostNL: an insight into RPA at PostNL
Showcasing the solutions our automations have provided, the challenges we’ve faced, and the best practices we’ve developed to support our logistics operations.
Leonard Renne, RPA Developer, PostNL
13:45 Break (30')
14:15 Breakout Sessions: Round 1
Modern Document Understanding in the cloud platform: AI-driven UiPath Document Understanding
Mike Bos, Senior Automation Developer, Tacstone Technology
Process Orchestration: scale up and have your Robots work in harmony
Jon Smith, UiPath MVP, RPA Lead, Ciphix
UiPath Integration Service: connect applications, leverage prebuilt connectors, and set up customer connectors
Johans Brink, CTO, MvR digital workforce
15:00 Breakout Sessions: Round 2
Automation, and GenAI: practical use cases for value generation
Thomas Janssen, UiPath MVP, Senior Automation Developer, Automation Heroes
Human in the Loop/Action Center
Dion Mes, Principal Sales Engineer @UiPath
Improving development with coded workflows
Idris Janszen, Technical Consultant, Ilionx
15:45 End remarks
16:00 Community fun games, sharing knowledge, drinks, and bites 🍻
DefCamp_2016_Chemerkin_Yury-publish.pdf - Presentation by Yury Chemerkin at DefCamp 2016 discussing mobile app vulnerabilities, data protection issues, and analysis of security levels across different types of mobile applications.
Finetuning GenAI For Hacking and DefendingPriyanka Aash
Generative AI, particularly through the lens of large language models (LLMs), represents a transformative leap in artificial intelligence. With advancements that have fundamentally altered our approach to AI, understanding and leveraging these technologies is crucial for innovators and practitioners alike. This comprehensive exploration delves into the intricacies of GenAI, from its foundational principles and historical evolution to its practical applications in security and beyond.
Retrieval Augmented Generation Evaluation with RagasZilliz
Retrieval Augmented Generation (RAG) enhances chatbots by incorporating custom data in the prompt. Using large language models (LLMs) as judge has gained prominence in modern RAG systems. This talk will demo Ragas, an open-source automation tool for RAG evaluations. Christy will talk about and demo evaluating a RAG pipeline using Milvus and RAG metrics like context F1-score and answer correctness.
Redefining Cybersecurity with AI CapabilitiesPriyanka Aash
In this comprehensive overview of Cisco's latest innovations in cybersecurity, the focus is squarely on resilience and adaptation in the face of evolving threats. The discussion covers the imperative of tackling Mal information, the increasing sophistication of insider attacks, and the expanding attack surfaces in a hybrid work environment. Emphasizing a shift towards integrated platforms over fragmented tools, Cisco introduces its Security Cloud, designed to provide end-to-end visibility and robust protection across user interactions, cloud environments, and breaches. AI emerges as a pivotal tool, from enhancing user experiences to predicting and defending against cyber threats. The blog underscores Cisco's commitment to simplifying security stacks while ensuring efficacy and economic feasibility, making a compelling case for their platform approach in safeguarding digital landscapes.
Keynote : Presentation on SASE TechnologyPriyanka Aash
Secure Access Service Edge (SASE) solutions are revolutionizing enterprise networks by integrating SD-WAN with comprehensive security services. Traditionally, enterprises managed multiple point solutions for network and security needs, leading to complexity and resource-intensive operations. SASE, as defined by Gartner, consolidates these functions into a unified cloud-based service, offering SD-WAN capabilities alongside advanced security features like secure web gateways, CASB, and remote browser isolation. This convergence not only simplifies management but also enhances security posture and application performance across global networks and cloud environments. Discover how adopting SASE can streamline operations and fortify your enterprise's digital transformation strategy.
2. Agenda
• Need of Test Case Design Techniques
• Test Case Design Techniques classification
• Black box Test Case Design Techniques
• Equivalence Partitioning
• Boundary Value Analysis
• Decision Table
• Error Guessing
3. • Need of Test Case Design Techniques
Ex: : Impossibility of testing "everything”
int calc (int j)
{
j = j -1; // should be j = j + 1
j = j / 30000;
return j;
}
1. Note that the second line is incorrect!
2. The function calc accepts an integer j, subtracts one from it, divides
it by 30000 (integer division, whole numbers, no remainder) and
returns the value just computed.
3. . If integers are implemented using 16 bits on this computer
executing this software, the lowest possible input value is -32768
and the highest is 32767. Thus there are 65,536 possible inputs into
this tiny program
4. Continued..
Will you have the time (and the stamina) to create 65,536 test cases?
Of course not. So which input values do we choose? Consider the following input values
and their ability to detect this defect.
Input (j) Expected Result Actual Result
1 0 0
42 0 0
40000 1 1
-64000 -2 -2
5. Continued..
o Oops! Note that none of the test cases chosen have detected this defect
o In fact only four of the possible 65,536 input values will find this defect.
What is the chance that you will choose all four?
o What is the chance you will choose one of the four?
o What is the chance you will win the lottery?
6. What is Black box Testing?
Black box testing is a strategy in which testing is based solely on the requirements and
specifications. Unlike its complement, white box testing, black box testing requires no
knowledge of the internal paths, structure, or implementation of the software under test
(SUT).
The general black box testing process is:
The requirements or specifications are analyzed.
Valid inputs are chosen based on the specification to determine that the SUT processes
them correctly. Invalid inputs must also be chosen to verify that the SUT detects them
and handles them properly.
Expected outputs for those inputs are determined.
Tests are constructed with the selected inputs.
The tests are run.
Actual outputs are compared with the expected outputs.
A determination is made as to the proper functioning of the SUT
7. Test Case design Techniques
classification
Section I - Black Box Testing Techniques
• Equivalence Class Testing
• Boundary Value Analysis
• Decision Table Testing
• Pair wise Testing
• State-Transition Testing
• Domain Analysis Testing
• Use Case Testing
Section11- White Box Testing Techniques
• Control Flow Testing
• Data Flow Testing
• Testing Paradigms
Section 111: Experience based Technique
• Error Guessing
• Exploratory Testing
8. Boundary Value Testing
Introduction:
Equivalence class testing is the most basic test design technique.
1.It helps testers choose a small subset of possible test cases while maintaining
reasonable coverage.
2. Equivalence class testing has a second benefit. It leads us to the idea of boundary
value testing, the second key test design technique to be presented.
9. Continued..
1In the previous example the following rules were given that indicate how we should
process employment applications based on a person's age.
The rules were:
0–16
Don't hire
16–18
Can hire on a part-time basis only
18–55
Can hire as a full-time employee
55–99
Don't hire
Notice the problem at the boundaries—the "edges" of each class. The age "16" is
included in two different equivalence classes (as are 18 and 55). The first rule says don't
hire a 16-year-old. The second rule says a 16-year-old can be hired on a part-time basis
10. Continued..
Key Point : Boundary value testing focuses on the boundaries because that is
where so many defects hide.
If (applicantAge >= 0 && applicantAge <=16) hireStatus="NO"; If (applicantAge >= 16
&& applicantAge <=18) hireStatus="PART"; If (applicantAge >= 18 && applicantAge
<=55) hireStatus="FULL"; If (applicantAge >= 55 && applicantAge <=99)
hireStatus="NO";
`
Of course, the mistake that programmers make is coding inequality tests improperly.
Writing > (greater than) instead of ≥ (greater than or equal) is an example.
The interesting values on or near the boundaries in this example are {-1, 0, 1}, {15, 16,
17}, {17, 18, 19}, {54, 55, 56}, and {98, 99, 100}.
11. Technique
The steps for using boundary value testing are simple.
Step 1: identify the equivalence classes.
Step 2: identify the boundaries of each equivalence class.
Step 3: create test cases for each boundary value by choosing one point on the
boundary, one point just below the boundary, and one point just above the
boundary. "Below" and "above" are relative terms and depend on the data value's
units.
Ex 1: If the boundary is 16 and the unit is "integer" then the "below" point is 15
and the "above" point is 17.
Ex 2: If the boundary is $5.00 and the unit is "US dollars and cents" then the
below point is $4.99 and the above point is $5.01. On the other hand, if the value
is $5 and the unit is "US dollars" then the below point is $4 and the above point is
$6.
Key Point Create test cases for each boundary value by choosing one point
on the boundary, one point just below the boundary, and one point just
above the boundary.
12. Summary
•While equivalence class testing is useful, its greatest contribution is to lead us to
boundary value testing.
•Boundary value testing is a technique used to reduce the number of test cases to a
manageable size while still maintaining reasonable coverage.
•Boundary value testing focuses on the boundaries because that is where so many
defects hide. Experienced testers have encountered this situation many times.
•Create test cases for each boundary value by choosing one point on the boundary, one
point just below the boundary, and one point just above the boundary. "Below" and
"above" are relative terms and depend on the data value's units.
13. Practice
•ZIP Code—five numeric digits.
•First consider ZIP Code just in terms of digits. Then, determine the lowest and
highest legitimate ZIP Codes in the United States. For extra credit [1]
,
determine the format of postal codes for Canada and the lowest and highest
valid values.
•Last Name—one through fifteen characters (including alphabetic characters,
periods, hyphens, apostrophes, spaces, and numbers). For extra credit [2]
create a few very complex Last Names. Can you determine the "rules" for
legitimate Last Names? For additional extra credit [3]
use a phonebook from
another country—try Finland or Thailand.
•User ID—eight characters at least two of which are not alphabetic (numeric,
special, nonprinting).
14. Decision Table Testing
Decision tables are an excellent tool to capture certain kinds of system
requirements and to document internal system design
They are used to record complex business rules that a system must
implement.
In addition, they can serve as a guide to creating test cases.
15. Technique
The general form of a decision table
Rule 1 Rule 2 Rule 3 Rule 4 Rule N
Conditions
Condition-1
Condition-2
Condition-3
Condition-4
Condition-N
Actions
16. Technique
•Conditions represent various input conditions.
•Actions are the actions that should be taken depending
on the various combinations of input conditions.
• Each of the rules defines a unique combination of
conditions that result in the execution ("firing") of the
actions associated with that rule.
Ex:
•An auto insurance company gives discounts to drivers
who are married and/or good students. Let's begin with
the conditions. The following decision table has two
conditions, each one of which takes on the values Yes
or No.
17. A decision table with two binary
conditions
` Rule 1 Rule 2 Rule 3 Rule 4
Conditions
Married? Yes Yes No No
Good Student? Yes No Yes No
18. A decision table with two binary
conditions and Actions
Note that the table contains all combinations of the conditions. Given two binary conditions
(Yes or No), the possible combinations are {Yes, Yes}, {Yes, No}, {No, Yes}, and {No, No}.
Each rule represents one of these combinations.
As a tester we will verify that all combinations of the conditions are defined. Missing
a combination may result in developing a system that may not process a particular
set of inputs properly.
` Rule 1 Rule 2 Rule 3 Rule 4
Conditions
Married? Yes Yes No No
Good Student? Yes No Yes No
Action
Discount ($) 40 25 20 0
19. Technique
A decision table with non-binary conditions.
` Rule 1 Rule 2 Rule 3 Rule 4
Conditions
Condition 1 0-1 1-10 10-100
10-
1000
Condition 2 <5 5 6 or 7 >7
Action
Action 1 Do X Do A Do Z Do C
Action 2 Do Y Do X Do B Do A
20. Key Point Create at least one test case for each rule.
If the system under test has complex business rules, and if your
business analysts or designers have not documented these rules in
this form, testers should gather this information and represent it in
decision table form.
The reason is simple. Given the system behavior represented in this
complete and compact form, test cases can be created directly from
the decision table.
In testing, create at least one test case for each rule. If the rule's
conditions are binary, a single test for each combination is probably
sufficient. On the other hand, if a condition is a range of values,
consider testing at both the low and high end of the range. In this way
we merge the ideas of Boundary Value testing with Decision Table
testing.
Key Point Create at least one test case for each rule.
22. Applicability and Limitations
Decision tables are used to document complex business rules that a system
must implement. In addition, they serve as a guide to creating test cases.
Conditions represent various input conditions.
Actions are the processes that should be executed depending on the various
combinations of input conditions. Each rule defines a unique combination of
conditions that result in the execution ("firing") of the actions associated with
that rule.
Create at least one test case for each rule. If the rule's conditions are binary, a
single test for each combination is probably sufficient. On the other hand, if a
condition is a range of values, consider testing at both the low and high end of
the range.