Saturday, November 26, 2016

The major three - Building a test plan with professional standards

Apparently you can't be president with a whole brain. 
Zaphod Beeblebrox


Sometimes your employer is a company with a well-documented process. Sometimes this is not the case. And if you are reading this, you are probably facing one or both of these problems (or have had a similar experience ealier) :

1. Your manager doesn't understand what process is and what it is for.

2. There is no project documentation available that you can re-use to setup or streamline your test share of whatever you are participating in.


As it is out of scope for this article to fix the whole world, and as it is unlikely that you'll be able to quickly change your manager's point of view (things like that are normally connected with person's life values and are extremely hard to adjust), I suggest we concentrate on #2 as a more realistic option. 

Standards

In brief, the answer is IEEE 829. And you do not have to spend your salary to get access, as Internet contains enough information for you to start with. Also you do not have to follow every single word there, but rather use it as a guideline or a checklist.

Thursday, November 24, 2016

The major three - Health assessment for a test project

Let me start with some trivia. No project is the same. No project is dull. Every project is what you make of it. The interesting part is what you should do if you wanna make it.

Personally, I hate doctors. But in situations like this I have to act like one, which means, I start with collecting a medical history. And here are some hints regarding what to look for (as they say, including, but not limited to):

The major three to start a test project

Sometimes you just have to start a test project from a scratch. And it often feels and looks like having to pull a rabbit out of a hat. Or having to learn Chinese overnight. The normal state of mind for everyone, who is not that experienced in such matters, or who is used for managing health projects, is a stupor.

This is why I decided to publish these three posts I wrote for my future self in case I, like all normal people, get temporary amnesia:

    1. Do project health assessment.
    2. Build a test plan based on standards
    3. To make it three (as they say three is easier to remember) -- smile =)


Good luck!

Friday, September 16, 2016

Are you sure it's your job that you hate

It is important and popular fact that things are not always what they seem
Hitchhicker's Guide to the Galaxy, the movie

Years of employment kind of proved that one's attitude to their job is not necessarily connected with an objective quality of that job. After working for many years as an employee myself, and after talking to the other employees, I was surprised to discover that the job is almost never an evil in itself, but is often treated as an underdog that can't say anything in it's defense

Probably it is so because its advocates are managers, and who trusts managers? Right. Even managers don't trust managers. (Seriousely though, managers are not bad because they are managers, this problem of trust comes from the difference of understanding and a long history of miscommunication that exists between different social groups).

This is not an article on phychology (and I'm not a professional psychologist), but being familiar with such notions as psychological defences and rationalization as a special case of it may be of help. To say it plainly, these defences came to life with the best of intentions, and as many other originally good things got a bit rogue in a course of time. And, in attempt to keep you safe, integral and unfamiliar with pain, they may slightly distort your view of yourself, your priorities and your life. Thus preventing you from being able to get to the root cause and fix it, and hurting you on the way.

So here are some of my favorite job-related biases and the reasons behind them as I see it.

Friday, December 18, 2015

Troubleshooting checklist

Anybody, who is facing a necessity to troubleshoot, hopes for a miracle. 

For something like closing your eyes and seeing the problem just solving itself without much fuss or explanation, when you open them. We all know this feeling. We all know it almost never works this way, because there is no such a thing as a miracle. 

But there are causes and effects instead. And some brain energy is required to make sense of what you see and to get out of the entanglement. And that brain energy is something that is taken for granted but is not that available.

Those little gray cells

Brainwork is something we think is always there and always will be. You probably no longer believe that storks bring children[1], but for some reason you are sure that your brain is a kind of perpetuum mobile which functions under any condition and knows nothing about sabotage.

That's a lie. It does. And a good (really boring but really good) book[2] by Daniel Kahnneman reminds you a good number of times that the rational, non-automatic, weighing part of your mind is lazy (which is where Kahneman ends and general phycology begins) and being lazy means that your resource is far from enough.

Monday, November 30, 2015

What if test certification systems put us in a box to think inside it?

With vertical thinking one uses the negative in order to block of certain pathways. With lateral thinking there is no negative.
Edward de Bono, Lateral Thinking

Sometimes I get those anarchistic ideas that may, if voiced at inappropriate moment, seriously damage your reputation, unless you put them in a nice colored gift package of justification and proof. And though some may see this as creating a Pandora box, at the bottom there is always hope of finding an important clue or even leading yourself out of the dead end.

Today's one is the following. Let's say we limit access to any exams or certification systems for any tester with relevant hands-on experience under 2 or 3 years? The same way they do for MBA or certain levels of trainings for the system administrators? Mind you, not information, or books, or trainings, but certification. Because I strongly believe there is a huge difference between critically reading a book and drilling something in order to check certain boxes in test

Even if you are fully conscious about the fact that your own opinion is different. Or (which is worse) if you have no opinion and take things on faith. Testing is an activity of the scientific type, not a religious practice, and we need to be extremely careful with faith and our ability to say what you think. Test practice proves that a good tester needs to be honest and courageous, because sometime this is exactly what makes the difference between true and false.

Thursday, January 8, 2015

SoapUi, Groovy and the meaning of life

SoapUi is generally known as a tool for testing web services. Opinion divides on whether to call working with it a pleasure or a torture due to certain differences in professional background of those who gives that opinion. Personally, I believe that is it is a really good tool, but, unlike a washing machine, it needs its fantastic manual to be looked though at the very least: http://www.soapui.org/

Like many other IT tools SoapUi comes in two variants: paid and free of charge community edition. And on top of these two there are two ways of using it (which one you chose depends on your level of expertise). They are:
-- using it as any other UI-based tool
-- use it as extendible multi-purpose multi-tool with some UI for backward compatibility with the brains of normal users.
The latter will be discussed as a remedi against professional midlife crisis and the like.

Why meaning of life though? The thing is I see SoapUi and testing of web services as a great opportunity for those people who crave technical tasks, but can not get them either due to a limited skill with Java or because of all the tasty vacancies being filled in already. Practice proves that dissatisfaction with your job does not always result from shortcomings of your profession but from your lack of understanding what would make up for them. In other words, because you failed to identify the root cause of your dissatisfaction. Please note that it is assumed that the root cause is purely professional and not psychological (as psychological issues are out of scope for this post).

Testers biggest grudges

For some reasons testers are believed to be less important than developers. And the less important you are the less paid you get. Most popular justification is that testers are less skilled than developers. I think there is a kind of bias at work as there are more skilled and less skilled people in either profession. And higly skilled testers usually have experience with different areas of sowftware development domain including technical ones. And still testing is considered to be the second best profession compared with development.

Different factors play into it such as country specifics, company and product specifics, cultural specifics and so on, but for the limited scope of this post I will concentrate on the following:
-- history of an issue
-- specificities of test profession
-- specificities of testing mindset
-- professional evolution of a tester

Testing scientifically - Differential diagnosis in testing (troubleshooting scientifically)

Everybody lies
you know perfectly well where this comes from



Sometimes your testing goes smoothly and dully, but sometimes you just can't make head or tail of what you observe. It feels like there is some system behind but it is quite complex as if more that one factor were influencing the result. Sometimes it is extremely useful to realize there may be more than one problem behind. Luckily, testing was not created with the software industry so we may go for help to some older sciences.

In the medical world there is a tool known as differencial diagnosis or DDx[5]. It employs four basic steps that help to take our big chaos and sort it into several meaningful lumps. Having been translated from wikimedical to software testing language these basic steps[6] will look like this:

1. Find out all info about your piece of software (i.e. requirements, configuration etc)
2. Make up a list of observed symptoms (not just where it contradicts requirement but full description of actual behavior)
3. Make up a list of possible causes (aka "candidate conditions")
4. Prioterize these causes by serverity (i.e. impact or how it affects interested parties)
5. Eliminate causes one by one until you get the botton of it

Note: remember that there may be more than one cause. The fact that some cause was found but it did not explain all the symptoms may happen because
-- there is another cause responsible for the rest of symptoms
-- your guess is wrong

Note: sometimes you may get no result, it might mean that something was not taken into consideration or we do not posess all the required information

Note: Occam's razor may be of some help as well: "When you hear hoofbeats, look for horses, not zebras" [7]


--------------

Footnotes:
[5] Differencial diagnosis at wiki: <a href="en.wikipedia.org/wiki/Differential_diagnosis">link to the article</a>

[6] Original description of steps from wiki (same as [5]):
Differential diagnosis has four steps.
First, the physician should gather all information about the patient and create a symptoms list.
Second, the physician should make a list of all possible causes (also termed "candidate conditions") of the symptoms.
Third, the physician should prioritize the list by placing the most urgently dangerous possible cause of the symptoms at the top of the list.
Fourth, the physician should rule out or treat the possible causes beginning with the most urgently dangerous condition and working his or her way down the list.

"Rule out" practically means to use tests and other scientific methods to render a condition of clinically negligible probability of being the cause. In some cases, there will remain no diagnosis; this suggests the physician has made an error, or that the true diagnosis is unknown to medicine. Removing diagnoses from the list is done by making observations and using tests that should have different results, depending on which diagnosis is correct.

[7] Original quote from wiki (same as [5]):
As a reminder, medical students are taught the adage, "When you hear hoofbeats, look for horses, not zebras," which means look for the simplest, most common explanation first. Only after the simplest diagnosis has been ruled out should the clinician consider more complex or exotic diagnoses.