What is a boundary and how can they be identified?
A boundary is a pretty commonly used term in the world of software testing, most often in the phrase ‘boundary testing’. This word, boundary, refers to an indication of a limit or extent to which something can exist. A boundary is an indication that something that exists, operates or functions in a finite space. A boundary is an indication that something exists and has a relationship with something else, the area inside and the area outside are inherently linked.
How does a person know about the existence of a boundary? Sometimes a boundary, what it contains and does not contain is fairly obvious and can be observed visually. I live in an apartment; this space can be defined by many boundaries by simple observation in some instances. In other instances there are unobservable boundaries that require context and empirical study to define.
The perimeter of the apartment in which I live defines a boundary that defines where I currently live. Inside of the perimeter wall is the apartment I am renting, outside the perimeter is space that is not the apartment I am renting.
Some boundaries in software products can be learned about through visual observation in this sense. In reserving a hotel room for instance, one would not want to reserve a room for dates already past. This could be represented in ways such as having all days before today disabled for selection in a date picker or allowing the user to select a day before today but notifying that person somehow that that selection is invalid. This indicates a boundary of when a room reservation can begin. There is another boundary in the case of room reservation dates, the date which the reservation ends.
When I was a teenager living at my parent’s house with my older brother, he would get in trouble quite often. Most of the time, I was left to my own devices as my parents were occupied dealing with his current issues with various authority figures. Frequently, out of curiosity to learn new things and to see what I could get away with I would test my own authority figures. Could I make a tone dialer and call China during lunch in school? How many days of class can a student miss before school calls home. How many calls home can a student intercept before a parent finds out? This is an example of boundaries that are highly context sensitive and that can not be visually observed.
How do you know the boundary exists? Once you know of the existence of a boundary, how do you know its limits?
In the case of software testing, the tester can learn by empirically testing to discover what the boundaries of the object being tested are. This can done through usage of the Socratic Method to ask questions in order to learn and ask more educated questions which will provide a more meaningful answer to your real question.
Back to the example of the check out date for a hotel room reservation, what are the boundaries? Can I check in and out in the same day? For some questionable hotels, this may be acceptable. For some other hotels, this may not be permitted. Can my check out date be one week from today, one month, one year, 10 years? Does the permitted length depend on anything such as season? To get a meaningful answer to a question, you must define the context under which you are asking or assuredly your answer will be ‘It depends.’ Once you have the answer to these questions, you have learned the boundaries for this example. This boundary defines the date range within which you can book a hotel room reservation.