Topicos Recents

Dívida Técnica de Teste de Software
Treinamento e Eventos1 
Indicações de empresas (in company)  Cursos
Treinamento e Eventos2 
QA Sênior @ Carenet Longevity (São Paulo)
Vagas1 
Batepapo sobre DevOps – Grupo de mentoria Talking About Testing
Feed de Blogs e Posts1 
[Dúvida] Jira  Plugin para Gerenciamento de Teste
Geral2 
What is the best fuzzer (automated software testing tool) to find 0days? Why? Quora Answer
Feed de Blogs e Posts1 
Tarek  Load testing web services at Mozilla with Molotov  Agile Testers Conference 2018
Treinamento e Eventos1 
Hacking JavaScript Games  Accessing private javascript variables at runtime via debugging
Feed de Blogs e Posts1 
Talking About Testing & Patas Dadas
Feed de Blogs e Posts1 
Agile Testers 2019 News
Geral4 
Escreva código uma só vez
Feed de Blogs e Posts1 
Automated tests in a CD/CI pipeline
Feed de Blogs e Posts1 
How to Practice your JavaScript, Software Testing and Test Automation
Feed de Blogs e Posts1 
How to Pretty Print JSON using Browser Dev Tools
Feed de Blogs e Posts1 
How to bypass no paste controls on a web form
Feed de Blogs e Posts1 
Quais minhas metas para 2019?
Geral8 
AWS Online Tech Talks 2019
Feed de Blogs e Posts1 
What does the EvilTester Patreon Contain?
Feed de Blogs e Posts1 
Analista de Testes Mobile
Vagas1 
Tendências para a área de Quality Assurance em 2019
Artigos e Tutoriais1
What is Boundary Value Analysis? Software Testing Technique explained with real world examples.

TLDR; Boundary Value Analysis is a simple technique and with additional exploration can add value in the real world.
Boundary Value Analysis (BVA) is one of the most basic test techniques that we learn.
Often taught at the same time as Equivalence Partitioning.
In this post I explain the technique and use it it find a bug in Chrome and Firefox.
Boundary Value Analysis Technique
BVA if often applied to input fields or anywhere that ranges of input are used where there is some maximum and minimum validation.
e.g. if I have an input field which accepts values from 10 to 100 then 10 would be the minimum, 100 would be the maximum.
I can model that as. a Set of Ordered sets:
{ x <= 9}{10 > 100}{101 to infinity}
Above is a model containing 3 sets, the first set
 all the values less than 10
The second set:
 values from 10 to 100 inclusive
The third set
 values greater than 100
The values on the boundaries between the sets are (9,10) and (100,101) and they are the basic values that BVA would give me when applied as a technique.
Another way to consider this is as 1,0 and +1 for the valid boundary maximum and minimum range values.
The maximum and minimum values are 10 and 100 which gives me:
 10 1 = 9
 10 + 0 = 10
 10 + 1 = 11 (optional extension)
 100 1 = 99 (optional extension)
 100 + 0 = 100
 100 + 1 = 101
The additional values within the same equivalence class are optional and are an extension i.e. 11 (+1 on the minimum range value) and 99 (1 on the maximum range value).
Traditional Boundary Value Analysis Demonstrated
Real World Application of Boundary Value Analysis
In the real world we use Boundary Value Analysis as a starting point, but we also have to consider:
 input validation
 server side validation
 use of the value by later processing
 formatting and representation of values
 assumptions in the BVA model
 implementation
When I was looking at the sample application in the Chrome I discovered that some of my assumptions were incorrect.
Not all nonnumeric characters were excluded, I could type “e”, “”, “+”, and “.”
This led me to explore other representations of my valid boundery values, which might have caused an error in a downstream system:
 “10.0”
 “2e1” (which is 2 exponential 1, i.e. 2 * 10^1 = 20)
 “100.0000000000000001” which is invalid, but reported as valid in Chrome and Firefox
This is demonstrated in the following video where the exploration around BVA found a defect in Chrome and Firefox.
Boundary Value Analysis is a Heuristic
Boundary Value Analysis is technique driven from the Heuristics:

errors happen at the edges

watch out for off by one errors
The technique concentrates on the off by one errors.
The heuristic of errors at edges is much more generic and applies to any model involving bordering.
I created a video explaining the heuristic nature of boundary value analysis on Patreon.
https://www.patreon.com/posts/24196729
The page I used to demonstrate the technique has been uploaded here
https://eviltester.com/2019/01/whatisboundaryvalueanalysis.html