Exploratory testing exercise with Matthew Heusser

Today I participated in an exploratory testing exercise that was put on by Matthew Heusser. I really enjoyed the exercise, it was fun and I was able to learn a little more about exploratory and context driven testing through actual testing activity. Hopefully Matthew will put more of these on in the future!

You can find Matthew on twitter here.

hmm I suppose I should start working on that paper for my senior project now :(

What tool should I use to automate my UI tests?

If I hear this question one more time…

There is a lot more that goes into selecting what tool to use than skimming through your email for the latest marketing swag from HP or Adobe. If your choices are between off the shelf record / playback tools, this is not test automation. This is tool aided testing. The ability to record a test with these tools implies that the test is already passing and possibly that you have not noticed any issues. What value have you added in facilitating the ability to repeatedly run a test that is known to work?

Some things that should be considered are:

  1. What is the goal of using this tool?
  2. The technology your UI is developed in. Tools and languages handle some technologies better than others.
  3. What platform does your application run on?
  4. Is this tool withing my budget? There are many tools (Ruby, Watir, Bash, etc.) that are free and can be used to create automated test cases.
  5. What is the background of the people that will be automating the test cases? Are they comfortable writing in one or more programming languages?

What is a boundary and how can they be identified?

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.

Massonic lodge in Houston

Posted via email from iamjustin’s posterous

Nom

Posted via email from iamjustin’s posterous

Went fishing with dad and brother

See and download the full gallery on posterous

Posted via email from iamjustin’s posterous

It is amazing to me that these guys have barely changed in the past few million years

Posted via email from iamjustin’s posterous

Discussion on context driven testing

Using definitions from Kaner and Bach I’d like to begin a discussion of implications of context driven testing.

Best practices do not exist; different practices work best in very different situations. The term best practice indicates that some process can be appropriately applied independent of context. This effectively treats some practice as an axiom. Software is created by people and for people, as such; people define what the current situation is.

Context driven testers choose methods, goals and deliverable of testing by first investigating the specific situation and also by determining the needs of the stakeholders. I believe the needs of the stakeholder (customer or customer proxy) to be the most important part of this equation. The information derived from some test should be usable by the person that needs the information, otherwise why spend the time and money on that test.

Context driven testing is often a heuristics based investigation where the main questions are:
What information is most valuable to stakeholders right now?
How can I derive this information from the system under test?
How can I deliver this information in a meaningful way?
Context driven testing is not a methodology or a process, it is more of an approach to problem solving. This form of testing values the experiential skill of testers over application of methodology, process or usage of specific tools for deriving information from a system.

References:
context-driven-testing
What is context driven testing?
four schools of software testing
No best practices

Myers-Briggs typology

I like taking this test periodically to monitor how I change over the years. The result is consistent on the classification, though the percentages vary.

Your Type is
INTJ
Introverted – 67%
Intuitive – 75%
Thinking – 88%
Judging – 11%

INTJ type description by D.Keirsey
INTJ type description by J. Butt and M.M. Heiss

Container gardening

We expanded the garden a little bit yesterday by adding some blue lake bans. The patio tomato looks like it is going to need more space than the pot is was in, so I went ahead and transplanted that into a larger container before it starts producing fruit. That left me with a free container to stick some beans in. It is getting a little late in the season to plant anything else (even though Texas has a long growing season) and this is my first attempt at vegetable gardening in containers so this will be it for this season. Next year I want to try some lettuce and maybe some vine plants.

here is the list:
Satsuma Orange
Patio tomato
Basil
Chives (these have dies for some reason, will try in a bigger pot next year)
Blue lake beans
Plumeria