Testing In Principle: Focus In the T’an Tien

OK, so you have relaxed, you have found your feet, you stand straight up. How do you move? You can learn a lot about how you move by watching other people move and walk around. Notice where their movement originate in their bodies, and how the impulse flows through them. Some people lead with their head, like they are on stilts and constantly trying to catch up with their noggin. Some people lead with their shoulders, hunched up, or defensive. Some people lead with their knees and shins, banging into things. Some lead with their chest, puffed up and top heavy. T’ai chi practice is to initiate all movement in the center of gravity, called the t’an tien. The masters were not fooling around when they said “all movement” - all physical movement, breath, emotion, thought, everything was moderated by the t’an tien. In fact all sensory intake is channeled to the t’an tien, where it is processed into life energy and initiates our reactions.

The Rapid Tester’s t’an tien is her mission, the goals of the organization for which she is testing. The mission is at the center of the tester’s decision-making process, and everything that she learns is evaluated in light of the mission, and her responses are chosen to further the mission.

You have seen testers who are focussed on everything else. The toolchasers who automate everything regardless of utility towards the mission, are like the guys who walk around with their energy in their heads, lurching after everything that catches their eye. The ones who do just enough to get by and are afraid of anyone scrutinizing their work, keeping their shoulders hunched around their ears. The blunderer, who makes a lot of noise about testing but somehow always forgets to put the “where” clause in the “delete from” statement, and wipes out the test database again. Or the puffed-up process jockey who is quick to ask for the repeatable test script that you used to find the bug, and to knock you if you can’t comply.

I’ve been all of those testers, and many more. But I forgive myself, and remember my mission focus, and return to being an effective Rapid Tester. My first t’ai chi teacher, Dan Ogrydziak, constantly exhorted us, “Focus in the t’an tien at all times. There is nothing you can do that would be better if you were not focussed in the t’an tien. If you forget, that’s OK. When you remember, then relax and focus again in the t’an tien. The important thing is not to remember, but to remember to remember.”

Remember to remember the mission of testing (the t’an tien), let go of all preconceived notions of what a tester has to be doing (relax), and do whatever you think needs to be done right now.

Testing in Principle: Straightness

Taoist philosophy links heaven above with earth below via the upright human. Since tai chi is the embodiment of Taoism (at least in part - Professor cheng Man-Ching said that his tai chi was 30% Lao Tzu (Taoist) and 70% Confucius (Confucianism)), the principle is interpreted very literally. The spine is said to link heaven and earth, so one carries oneself as though the top of the head were suspended from above on a string, and the sacrum was attached to a thousand-pound weight. The spine itself has separation between the joints, is not kinked or bent sideways (though the natural front to back curves remain), and offers the most space in the torso for the organs to function. The image is a string of pearls suspended from above. It maintains its shape as it moves through space, the pearls do not lean on one another, and it can move freely in any direction according to any force applied to it, and returns to the straight form after the force is gone.

When we are physically straight, our limbs are free to move in any direction and manner, so we can respond in any way necessary. Our lungs have maximum capacity for best functioning, and all our organs have space to move around and get a healthful little massage as you go through the day. When I lean over with hands in pockets, I may look cool (or not!), but I have a lot of work to do to get back into position to respond to my environment. And I have lost my connection to the earth - see the post on single-weightedness.

In testing, straightness comes into play when we enter a test open to any possibility of system behavior. If I have the feeling of straightness, I can deploy resources as soon as they are needed, whether it is tools or data or asking help from my professional contacts. If I test with purpose, committing the full weight of my intellect to the test, I am straight, not leaning over and nonchalalantly testing with my psyche half-engaged.

With straightness, I can link the micro activities of testing with the macro activities of model building and contextualization: by maintaining my connection to the ground/yin (my mission and models) and heaven/yang (the details of day to day testing). This is embodied physically by using the lower body to connect to the ground and control your own body’s position in space, while using the hands and arms to connect to your partner in practice, listening to their balance and transmitting the force of your movements. They can’t work together without straightness.

The notion of straightness has a lot of connotations in English, one of which is “integrity”. Great testing requires integrity of thought and action, and also integrity of reporting. Practicing physical straightness helps me get the feeling of mental and ethical straighness as well so I can tell when I’m not really flexible, really engaged, really forthright, and stop leaning over, take my hands out of my pockets, look the app in the eye, and engage.

One little lightbulb joke and boom, I’m out on the street

My first testing job I was a temp at a DOD contractor, assigned to curate the test library on the “RCAS” project. One of my duties was to take notes in the daily meeting between testing and development, and report the issues and status that came out of the meeting to the rest of the team. This was 1994, before email was a popular tool, so I printed up the “Test Daily” newsletter, with half a page of meeting notes, and the rest of the page (plus the back if I wanted) to use for other things. I mostly put Far Side cartoons and Dilbert cartoons on there, when Dilbert especially was fresh and edgy, and usually people laughed. The project was under some pressure and an edge had started to creep in, and I was trying to help them blow off some steam.

One time I did a lightbulb joke contest to see who came up with the best punchline to the classic setup: How many RCAS testers does it take to screw in a lightbulb? The prize was a packet of saltine crackers and a spork from the cafeteria. I reminded everyone about this contest all week leading up to the big department meeting that was going to happen to learn the state of the project.

At the meeting I revealed the winning punchline: “None. It’s a known issue.” The author got her crackers and spork. The team got the news that after 2 years, the project was going to start over again on a new operating system. And I got a private lecture on corporate morale, and was told that even though I had been asking for a while about coming on board full-time, “for you, there’s a hiring freeze.”

One little lightbulb joke, and boom, I’m out on the street.

Testing In Principle: Single-Weightedness

In tai chi, as a martial art and as a healing art, the source of power is the ground. Our connection to the ground through our feet is the foundation of everything that we do, so severing that connection is (almost) always a bad thing. That is why there are so few jumps in the tai chi form, and why when we practice together the goal is to cause your partner’s feet to leave the ground. The principle of yin and yang says that one foot must be the dominant connection to the ground. There is no such thing as equal connection to the earth through both feet simultaneously. That’s as sensible as saying the moon has two dark sides or two lighted sides. Equal weight means no connection at all, and this is very dangerous, so we strive to maintain single-weightedness, and when shifting weight, to minimize the time we spend at or near 50 / 50 weight distribution.

So the foot that has 51% through 100% of the load of the body is the weighted foot, and it is the foot on which we focus our attention to connect with the power of the ground. The other foot is free to do other things - step, kick, sweep, whatever - but it is empty, and should not distract us from the central concern which is to connect to the earth through the weighted foot.

In testing we very often need to tap into the power of the ground, the power of thoroughly knowing the territory we are in, so our tests are grounded in valid, factually correct system models, exploring a particular coverage area, with oracles that we understand - or if we don’t understand them, we understand the schema of them and can identify the holes we are trying to fill. We need to work to solve one problem at a time, which leads us to control the variables in our tests and vary them systematically. We need to have a leg to stand on, which in testing terms means we need to have a reason for testing where we are, a risk model and theory of error that locates our testing in high-value space.

Most of all, though, what I bring to testing from training in single-weightedness is the feeling of committing to the problem. All of my attention and effort is going into understanding this exact spot in the app, and grounding myself in the problem space so that when I have to tell the quality story, it comes all the way up from the ground, not just from the top of my head.

Testing In Principle: Stepping Empty

In tai chi we are taught to “step empty”, to place the foot on the floor without committing any weight or energy to that foot. Only when the foot is flat do we shift our wieght. This way we remain single-weighted (another principle for another post) and balanced, and keep our options open about what to do with that empty foot, either shift into it, leave it empty, or move it without disrupting the rest of our body.

To illustrate: Which two animals habitually step empty? Some common guesses are cats and tigers, because they have soft footfalls. This is not correct. Empty is not the same as soft: cats tread softly, but they also jump a lot, which obviously means you will land with weight. Tigers have very heavy tread, though they appear lithe. Other guesses were birds (they have to jump up to fly, and they have to land, though perhaps softer than cats), and gazelles (the leaping again). Not dogs, hippos, wildebeest. Here’s the first animal: the full-grown elephant habitually steps empty. Why? With so much mass, its bones cannot withstand a hard fall, so it takes very few chances with its footing. Even though the likelihood is relatively small that it will step on unstable ground, the consequences could be dire, so it moves deliberately. By the way, this is why it’s no great trick for the circus trainer to put her head under an elephant’s foot. No elephant will step on such an unstable surface. (Notice I said “full-grown elephant” - when they are small elephants can run more because their mass is not so great. Even full-grown elephants run on occasion, but not habitually.)

The testing lesson here is that there are times when the project or the testing has the characteristics of an elephant, and the risk then is that any fall will really hurt. When failure is expensive, even when unlikely, step empty. Make sure you have a recovery plan in place in case the system crashes, so you can retain data, system state, and configuration. Make small controlled changes so that it is easy to trace the variation that caused unexpected behavior. Test a new area lightly at first, then commit more and more effort to it as it bears the weight of scrutiny. Then it will become a new trusted base state and you can step again.

So now we have seen one risk model: a failure, though unlikely, will really hurt, so step empty. The other animal has the variables swapped around. Every step may be onto unstable ground, so that even though it is light and durable, the animal has so many opportunities to fall that it confirms every step. Give up? It’s a pack mule. The reason that mules were used in the Grand Canyon, with its treacherous gravel switchbacks and a mile to fall if you put a foot wrong, was that horses weren’t careful enough and kept getting themselves killed. The peculiar gait of a mule is from lifting one foot at time and putting it down in its new place before shifting any weight, and shifting back and replacing the foot if there is insufficient stability. And the classic pose of the mule resisting moving forward another inch, despite all the tugging and kicking and cursing? It can’t find a trustworthy place to step, so it’s not going anywhere.

In terms of testing, we can be like mules by being prepared to find an alternate route if our first step is blocked, to look for traction in an app, and finally if in our professional judgement we can’t move further, we stop and say “no” to requests to continue down a dangerous or unstable path. When I am testing a flaky app that has lots of failure potential, and I want it NOT to crash, that is when I step empty and set all my variables to normal values, follow the safest path to the destination, and present as little load as possible.