The Wayback Machine - https://web.archive.org/web/20241011091249/https://www.geeksforgeeks.org/software-testing-boundary-value-analysis/
Open In App

Software Testing – Boundary Value Analysis

Last Updated : 26 Sep, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Save
Share
Report
News Follow

Functional testing is a type of software testing in which the system is tested against the functional requirements of the system. It is conducted to ensure that the requirements are properly satisfied by the application. Functional testing verifies that each function of the software application works in conformance with the requirement and specification. Boundary Value Analysis(BVA) is one of the functional testings.

Boundary Value Analysis

Boundary Value Analysis is based on testing the boundary values of valid and invalid partitions. The behavior at the edge of the equivalence partition is more likely to be incorrect than the behavior within the partition, so boundaries are an area where testing is likely to yield defects.

It checks for the input values near the boundary that have a higher chance of error. Every partition has its maximum and minimum values and these maximum and minimum values are the boundary values of a partition.

In simple terms boundary value Analysis is like testing the edge cases of our software where most of the time it will get broke so it is important to do BVA before deploying the code. There are many other test that are done if you wish to learn them all then you can join our complete software testing course

Note:

  • A boundary value for a valid partition is a valid boundary value.
  • A boundary value for an invalid partition is an invalid boundary value.
  • For each variable we check-
    • Minimum value.
    • Just above the minimum.
    • Nominal Value.
    • Just below Max value.
    • Max value.

Example: Consider a system that accepts ages from 18 to 56.

Boundary Value Analysis(Age accepts 18 to 56)

Invalid

(min-1)

Valid

(min, min + 1, nominal, max – 1, max)

Invalid

(max + 1)

17

18, 19, 37, 55, 56

57

Valid Test cases: Valid test cases for the above can be any value entered greater than 17 and less than 57.

  • Enter the value- 18.
  • Enter the value- 19.
  • Enter the value- 37.
  • Enter the value- 55.
  • Enter the value- 56.

Invalid Testcases: When any value less than 18 and greater than 56 is entered.

  • Enter the value- 17.
  • Enter the value- 57.

Single Fault Assumption: When more than one variable for the same application is checked then one can use a single fault assumption. Holding all but one variable to the extreme value and allowing the remaining variable to take the extreme value. For n variable to be checked:

Maximum of 4n+1 test cases

Problem: Consider a Program for determining the Previous Date.

Input: Day, Month, Year with valid ranges as-

1 ≤ Month≤12
1 ≤ Day ≤31
1900 ≤ Year ≤ 2000

Design Boundary Value Test Cases.

Solution: Taking the year as a Single Fault Assumption i.e. year will be having values varying from 1900 to 2000 and others will have nominal values.

Test Cases

Month

Day

Year

Output

1

6

15

1900

14 June 1900

2

6

15

1901

14 June 1901

3

6

15

1960

14 June 1960

4

6

15

1999

14 June 1999

5

6

15

2000

14 June 2000

Taking Day as Single Fault Assumption i.e. Day will be having values varying from 1 to 31 and others will have nominal values.

Test Case

Month

Day

Year

Output

6

6

1

1960

31 May 1960

7

6

2

1960

1 June 1960

8

6

30

1960

29 June 1960

9

6

31

1960

Invalid day

Taking Month as Single Fault Assumption i.e. Month will be having values varying from 1 to 12 and others will have nominal values.

Test Case

Month

Day

Year

Output

10

1

15

1960

14 Jan 1960

11

2

15

1960

14 Feb 1960

12

11

15

1960

14 Nov 1960

13

12

15

1960

14 Dec 1960

For the n variable to be checked Maximum of 4n + 1 test case will be required. Therefore, for n = 3, the maximum test cases are-

4 × 3 + 1 =13

The focus of BVA: BVA focuses on the input variable of the function. Let’s define two variables X1 and X2, where X1 lies between a and b and X2 lies between c and d.

Showing legitimate domain

The idea and motivation behind BVA are that errors tend to occur near the extremes of the variables. The defect on the boundary value can be the result of countless possibilities.

Typing of Languages: BVA is not suitable for free-form languages such as COBOL and FORTRAN, These languages are known as weakly typed languages. This can be useful and can cause bugs also.

PASCAL, ADA is the strongly typed language that requires all constants or variables defined with an associated data type.

Limitation of Boundary Value Analysis:

  • It works well when the product is under test.
  • It cannot consider the nature of the functional dependencies of variables.
  • BVA is quite rudimentary.

Equivalence Partitioning

It is a type of black-box testing that can be applied to all levels of software testing . In this technique, input data are divided into the equivalent partitions that can be used to derive test cases-

  • In this input data are divided into different equivalence data classes.
  • It is applied when there is a range of input values.

Example: Below is the example to combine Equivalence Partitioning and Boundary Value.

Consider a field that accepts a minimum of 6 characters and a maximum of 10 characters. Then the partition of the test cases ranges 0 – 5, 6 – 10, 11 – 14.

Test Scenario

Test Description

Expected Outcome

1

Enter value 0 to 5 character

Not accepted

2

Enter 6 to 10 character

Accepted

3

Enter 11 to 14 character

Not Accepted

Why Combine Equivalence Partitioning and Boundary Analysis Testing: Following are some of the reasons why to combine the two approaches:

  • In this test cases are reduced into manageable chunks.
  • The effectiveness of the testing is not compromised on test cases.
  • Works well with a large number of variables.


Previous Article
Next Article

Similar Reads

Software Testing - Boundary Value Analysis vs Equivalence Partitioning
Software Testing is a process of finding bugs and verifying whether the developed software meets its end-user requirements or not. To do testing, testers write test cases (step-by-step procedure for how to test) which take test data values as input to check the behavior of a software. In some cases, there is a pool of input values to be tested, and
4 min read
Unit Testing, Integration Testing, Priority Testing using TestNG in Java
TestNG is an automated testing framework. In this tutorial, let us explore more about how it can be used in a software lifecycle. Unit Testing Instead of testing the whole program, testing the code at the class level, method level, etc., is called Unit Testing The code has to be split into separate classes and methods so that testing can be carried
6 min read
Split Testing or Bucket Testing or A/B Testing
Bucket testing, also known as A/B testing or Split testing, is a method of comparing two versions of a web page to see which one performs better. The goal of split testing is to improve the conversion rate of a website by testing different versions of the page and seeing which one produces the most desired outcome. There are a few different ways to
15+ min read
Selenium Testing vs QTP Testing vs Cucumber Testing
Automation testing will ensure you great results because it's beneficial to increased test coverage. Manual testing used to cover only few test cases at one time as compared to manual testing cover more than that. During automated test cases it's not all test cases will perform under the tester. Automation testing is the best option out of there. S
6 min read
Software Testing - Test Analysis
Software testing is a process, of testing software performance to determine whether an improved software meets the stated requirements or not and to identify errors to ensure that a product is flawless to produce a high-quality product. Test Analysis In software testing, test analysis is the process of testing and analyzing test art materials to cr
8 min read
Software Testing - Testing Retail Point of Sale(POS) Systems with Test Cases Example
POS testing refers to testing the POS application to create a successful working POS application for market use. A Point of Sale (POS) system is an automated computer used for transactions that help retail businesses, hotels, and restaurants to carry out transactions easily. What is Retail Point of Sale (POS) Testing?POS is a complex system with a
14 min read
Software Testing - REST Client Testing Using Restito Tool
REST (Representational State Transfer) is a current method of allowing two software systems to communicate. REST Client is one of these systems, whereas REST Server is another. It's a design technique that uses a stateless communication protocol like HTTP. It uses XML, YAML, and other machine-readable forms to organize and arrange data. However, JS
5 min read
Software Testing - Mainframe Testing
Mainframe testing is used to evaluate software, applications, and services built on Mainframe Systems. The major goal of mainframe testing is to ensure the application or service's dependability, performance, and excellence through verification and validation methodologies, and to determine if it is ready to launch or not. Because CICS screens are
15+ min read
Software Testing - Business Intelligence (BI) Testing with Sample Test Cases
The procedure in which gathering, cleaning, integrating, analyzing, and sharing data is done to determine actional experiences that drive business development is known as Business Intelligence (BI). Business Intelligence Testing checks the organizing information, ETL process, BI reports and guarantees the execution is right. BI Testing guarantees i
8 min read
Software Testing - Web Application Testing Checklist with Test Scenarios
Web testing or web application testing ensures that your website functions as you or your clients expect as per requirements gathered during the project's initial stages. It is a comprehensive scope that touches multiple disciplines, including usability, functionality, compatibility, security, performance, and data storage and retrieval. What is We
15+ min read
Software Testing - Mock Testing
Mock testing is the procedure of testing the code with non-interference of the dependencies and different variables like network problems and traffic fluctuations making it isolated from others. The dependent objects are replaced by mock objects which simulate the behavior of real objects and exhibit authentic characteristics. The motto of mock tes
9 min read
Software Testing - Cookie Testing
Cookie testing is the type of software testing that checks the cookie created in the web browser. A cookie is a small piece of information that is used to track where the user navigated throughout the pages of the website. The following topics of cookie testing will be discussed here: What are Cookies?Where cookies are stored?Why do we Need Cookie
5 min read
Software Testing - Insurance Domain Application Testing with Sample Test Cases
Insurance Domain Application Testing is a software testing process to test the insurance application to check if the designed insurance application meets the required customer's expectations by ensuring the quality, performance, and durability requirements of the application. The following topics of insurance domain application testing will be disc
9 min read
Software Testing - Testing Telecom Domain with Sample Test Cases
Testing the telecom domain is a process of testing the telecom applications. The Telecom domain is a vast area to test. It involves testing a lot of hardware components, back-end components, and front-end components. The various products in this domain are BSS, OSS, NMS, Billing System, etc. In the telecom domain, testing is performed to ensure tha
15+ min read
Confirmation Testing in Software Testing
This article describes Confirmation testing, one of the software testing techniques that is used to assure the quality of the software and covers the concepts of Confirmation testing that help testers in confirming that the software is bug-free by retesting the software till all bugs are fixed. Confirmation testing is a sub-part of change-based tes
8 min read
Software Testing - SOA Testing
SOA Testing is the process of evaluating a certain software where one can check web processes for functionality and make sure different components can communicate effectively throughout. Before diving deep into the testing model directly we need to understand SOA Architecture. What is SOA? Service Oriented Architecture (SOA) is an architectural str
13 min read
Software Testing - Back-to-Back Testing
Back-to-back testing is a method of comparing the performance of two or more systems or components by running them simultaneously and comparing their output. The goal of back-to-back testing is to determine if there is a significant difference in the performance of the systems or components being tested and identify any issues or defects that may e
9 min read
Software Testing - Multi-tenancy Testing
In software development, multi-tenancy refers to the ability of a software application or service to support multiple tenants or customers, each with its own unique data and configurations, on a single instance or deployment of the software. Multi-tenancy is often used in software as a service (SaaS) applications, where multiple customers or organi
15+ min read
Overview of Conversion Testing in Software Testing
Conversion Testing :Every software development process follows the Software Development Life Cycle (SDLC) for developing and delivering a good quality software product. In the testing phase of software development, different types of software testing are performed to check different check parameters or test cases. Where in each software data is an
6 min read
Data Integrity Testing in Software Testing
Every software development process follows the Software Development Life Cycle (SDLC) for the development and delivery of a good quality software product. In the testing phase of software development, different types of software testing are performed to check different check parameters or test cases. Where in each software data is an important part
5 min read
Incremental Testing in Software Testing
Incremental Testing :Like development, testing is also a phase of SDLC (Software Development Life Cycle). Different tests are performed at different stages of the development cycle. Incremental testing is one of the testing approaches that is commonly used in the software field during the testing phase of integration testing which is performed afte
3 min read
Internationalization Testing in Software Testing
Prerequisite: Software Testing Software testing is an important part of the software development life cycle. There are different types of software testing are performed during the development of a software product/service. Software testing ensures that our developed software product/service is bug-free and delivers fulfilling the desired requiremen
4 min read
Types of Regression Testing in Software Testing
Regression Testing :Regression testing is done to ensure that enhancements or defect fixes made to the software work properly and do not affect the existing functionality. It is generally done during the maintenance phase of SDLC. Regression Testing is the process of testing the modified parts of the code and the parts that might get affected due t
4 min read
Post Deployment Testing in Software Testing
Post-deployment testing is a type of testing in which the software is tested after it is deployed to production. This testing may help us find those problems that were not detected before its deployment in the production and despite all the planning and testing carried out before the final deployment, obtaining user opinion is important for the imp
3 min read
Software Testing - Bank Domain Application Testing
Banking domain application testing (BDAT) refers to testing an application that is developed especially for banks for performing all required functionalities like transactions, loan approval, managing different types of bank cards, and much more, the functionality depends on the size and type of bank. The banking industry is one of the largest user
13 min read
Challenges in Manual Testing - Software Testing
Manual testing is a type of software testing technique that is used to document tests, produce test guides based on data queries, provide temporary structures to help run tests, and measure the results of the tests. Manual testing is considered to be costly and time-consuming. In manual testing, a tester carries out tests on the software by followi
4 min read
Factors controlling the Performance Testing - Software Testing
Prerequisite: Performance Testing | Software Testing Performance Testing is conducted to discover the response time, throughput, etc., and also to execute its required functions by doing a comparison with different versions of the same product or different competitive products. It is a type of software testing that ensures that software application
3 min read
HealthCare Domain Testing with Sample Test Cases - Software Testing
HealthCare Domain Testing is the process of testing software applications that are related to the healthcare industry. This can include anything from electronic health records (EHR) to hospital administration systems. There are a variety of standards and regulations that must be met for the software to be used in the healthcare industry, so it is i
15+ min read
Cloud Testing - Software Testing
Cloud Testing is one type of software testing in which the software applications are tested by using cloud computing services. Cloud testing intends to test the software based on functional and non-functional requirements using cloud computing services that ensure faster availability, scalability, and flexibility that saves time and cost for softwa
11 min read
Regulations Acceptance Testing (RAT) - Software Testing
Regulation Acceptance Testing (RAT) also termed as Compliance Acceptance Testing is a method that is used in software testing. This article focuses on discussing Regulation Acceptance Testing in detail. What is Regulation Acceptance Testing (RAT)?Regulation acceptance testing (RAT) is termed a very crucial phase in the software testing process. Thi
4 min read