Subscribe to the full blog feed using RSS
Wherein the TOTE (Test Operate Test Exit) model is used to explore the nature of feedback and abstraction of test phases In 1960, George Miller proposed a model of Goal driven behavior which he titled T.O.T.E (Test operate test exit). This essay, maps the T.O.T.E model to Software Testing. Fig 1: The TOTE Model as a Graph My understanding of TOTE is very simple. For this model to be valid we have to accept that the stimulus behind behavior is the achievement of a Goal.
Lessons Learned in Software Testing contains lots of short essays which are well worth reading and thinking about.
This is a fantastic phrase, it has been popular and it has worked; testing now starts earlier and testing has a higher profile than ever before, but despite all that, it isn’t what we meant or even what we really needed. Back in the depths of despair that was the Software Crisis. Testers managed to bellow a rallying cry “Testing should start early!” Testers could be found picketing management and development meetings with ‘V-model’ placards and T-shirts with ‘cost of defect’ bar charts emblazoned.
…Meyerhold’s bio-mechanical actor said, “I make these movements because I know that when I make them what I want to do can most easily and directly be done.”  All quotations in this article are from “The Actor’s Ways and Means”, Michael Redgrave, William Heinemann Ltd, 1953 More for amusement than a desire to educate myself further in the ways of testing, I picked up a copy of Michael Redgrave’s lectures on the actor’s craft “The Actor’s Ways and Means”.
There are many universal statements that a tester will come across in the course of their career, some true “Testing can only prove the presence of faults and not their absence”, and some false “Developers must not test their own code” Such statements may well be paraphrased quotes, the original source may not be known or presented, and the quote may be taken out of its original context. But they will be one common form of the phrase that exists in the industry’s shared consciousness.
Test Conditions are statements of compliance which testing will demonstrate to be either true or false. These are (in effect) test requirements. Conditions serve different purposes. Some conditions will act as the audit reason for a particular test case e.g. The user must be able to create a flight. The tester will create a test which creates a flight, obviously there are more attributes to this case than this - what type of flight, what type of user, fully booked, partially booked, etc.
The simplest way to improve a process is to analyse the errors that it lets slip through. For every error not found by one of the previous quality control processes, ask, is there a strategy that could have been applied to one of the existing models that would have created a test case that could have identified the error. If the answer is yes then it may well have slipped through because timescales or staffing levels forced your hand and you simply didn’t have the time to apply that strategy to that model, or the risk of not applying it was deemed low.
Error Guessing is described in ‘Testing Computer Software’ by Cem Kaner : “For reasons that you can’t logically describe, you may suspect that a certain class of tests will crash the program. Trust your judgment and include the test.” This quote suggests to me that there is an informal model in the tester’s head and that the subconscious is applying a strategy to the model which the tester is unaware of.
Testing is exploration. In a mature testing organisation the expedition is well planned, and staffed with seasoned explorers. The planning will be done around a number of maps of the territory to be explored. Some maps will show different levels of detail - to show all the detail on one map would confuse the issue, so one map will identify areas of population, one will provide information of season rainfall statistics etc.
In order to test a model we have to have some way of recognising the success or failure of a test, our test must have a goal, it must have a reason for existing. That reason is inherent in the model from which the test is derived. This means that it is difficult to use a model to test itself. In software development this is typically not a problem, we rarely use the source code as the only model when testing the source code.