Test anatomy by Igor

Unfortunately for you, dear readers, we do our job much faster than we write about it. Where to find watches with sixteen hours dial which is used, from what we know, by all who write a lot about staff they do.

I am writing now and catch myself on a thought that I describe our understanding about three months ago. Have I already heard it elsewhere? It seems like it was in planetarium, in the childhood? About light of far stars which reaches us through millions of years …, and for some reason advertising slogan is on the tip of my tongue “Remain with us another three months to learn about our today’s understanding of testing, and you will not regret!”

Our task for today is to operate such an easy-uneasy organism of Recruiting society as ‘Employment Website’.

In the course of operation we will write the detailed instruction on testing of each part separately and otherwise. So let’s sharpen our scalpels, gentlemen, anesthetize our patient and start after pray!

Fig. 1 Patient

How it was in a ‘Surgery for Dummies’… scalpel in your right hand and what it was in a left one …? We can’t avoid login and logout. We will start and finish our preparation with them.

Fig. 2 Scalpel, Scalpel, tampon, clip…

After ripping up a Recruiting body with a successful login, we will get access to an organ we operate today. In testers slang the road directions sound prosy and avariciously – “Discern a tab ‘Employment Websites ’, click on it, than press the button ‘New’”.

Fig. 3 Discern and click

What if there is no tab or button? No worries – we are done but tests failed! Otherwise we proceed and look around counting elements. How many should we have? That’s r-i-i-i-ght – four.

To start testing we will need a reference point, a ground zero. If page (‘object’ in our terminology) contains some form inputs (‘elements’ in our terminology) we need to be sure that the simplest data does not bust an object. Imagine a mechanic at a broken car which, according to the client, does not start. He sits down in a car to look at it, and can not see a steering wheel and pedals.

Let’s look through Analysis and pick up some obvious values for each element and name them shortly and elegantly – KGV (Known Good Values). We will use our KGV’s before the beginning of testing of each object in Recruiting.

Fig. 4 Counted and filled with banalities (KGV’s)

We can assign KGV values to elements of ‘Employment Website’ object and attempt to save it now. Successful submission of KGV’s is a great event – let’s cheer this fact by rising in honor of noble developers, after all they have not demeaned themselves in front of “complexity” of KGV! But thus we, as real professionals, will not forget to clean behind ourselves, having removed that record which have been just saved. Henceforth we will only act this way – after all it is our principle – test, record – clean after yourself.

The impossibility to save KGV should, and does suggest us an idea about Universe randomness. Probably, we test other version of a product or we use wrong version of tests. In any case, it is not a software business to make decisions. This is a right of super-mans from QA department.

Upon successful submission of KGV, we know the following facts about the world we penetrated:

1) We can reach object – click tab and button ‘New’.
2) Object we reached consists of parts which we were expecting to find – four elements.
3) Object reacts to reflex irritations – KGV submitted successfully.

This is already S-O-M-E-T-H-I-N-G on its own but we do not stop and roll it further…
We have decided to test object elements sequentially – for this purpose we assign KGV to all elements of object, except one under test.

Fig. 5 Testing sequentially…

Having reached thus far, we will finally roll up our sleeves – we can now start testing a single element. It needs to be tested with correct and incorrect values we found during analysis. To make a full picture about behavior of an element, it is necessary to check them both. An element should react on wrong values, naturally, with a corresponding error message which we will also test. If an element under test (EUT – Element Under Test) is mandatory – we run test trying to save object without a value assigned to EUT.
Well … to finish abbreviation creation process we will create OUT – Object Under Test. Now we have full set of abbreviations for web testers WAUT(OUT(EUT))) to sound cool and incomprehensible plain developers.

element testing

Fig. 6 … but meticulously

Having finished with the first EUT, we continue with the second one – fill all elements except next EUT with KGV’s and run set of tests for current EUT.

Author’s remark. The given approach – fixing all elements, except one under test, is not the only way and has been used by us as most simple and intuitive. It is already clear for us now that necessity for testing of more difficult objects with dependencies between elements will require other approaches invention.

By completing this inelaborate operation four times without having left any traces of material presence, we can impose last stitch by issuing a click on a button ‘Logout’.

This is what it’s all about
Take me in and eat me out
Pins and needles in my arms
Oh yes, your lucky charms

Print this post | Home


  1. Алексей Лупан says:

    Конечно, неудобно спрашивать “Что это было?”, просто потому, что у вас отличный блог.

    Но вот есть – http://www.deepshiftlabs.com/sel_blog/?p=163&lang=ru “Постанова” Feb 12th, 2009 by Igor” – сами будете сличать “Постанова” Feb 12th, 2009 by Igor” и “Анатомия теста” Jun 18th, 2009 by Igor”, или потребуется помощь со стороны?

  2. Igor says:

    Да нет, попробуем отгадать – мы ведь всё таки учимся тестировать. Думаю вы имеете в виду несоответствие интерфейсов для Рекрутингового Веб Сайта в постах.

    Спасибо – поправим.

    На самом деле я собирал приложение достаточно давно по первой версии книги и там не было дополнительного поля, да и что скрывать – с именем поля я тоже глюканул. Потом конечно приложение поправил, а картинки остались старыми, сделанными ещё до того, как коллеги ткнули меня в это место носом.

  3. Алексей Лупан says:

    Вопрос решен :)

  4. Igor says:


    Thank you for feedback.

    If you have any questions – please ask. I saw your reply to Alex – some points do make sense some not but you did not expect we to fully re-shuffle our blog as you suggested anyway. Right? We lis-ten.

    If you did not get some points out of ‘Play’ – please post a question.

    Next posts will be about implementation hence more technical, short and easier to get. Who said that to cut a tree is harder than to choose which one to cut in an old forest. In this blog (not in real life) we finally made a selection – no more wondering around, just saw sounds.

  5. Алексей Лупан says:

    Your welcome.

    Конечно, я не expect to see a fully re-shuffled blog по следам моих комментариев :)

    На каком языке тут удобнее общаться?

    “No more wondering around just saw sounds” – если не затруднит, я буду благодарен за перевод.

  6. Алексей Лупан says:

    Парни, наверное, вам стоит в настройках этого блога указать отправку новых комментариев на емайл в plain text, а не html.

    От вас приходит шаблон сообщения с огромной “шапкой”, мелким текстом и с линком только на корневую страницу, а не на статью, у которой был добавлен комментарий.

  7. Igor says:

    [Парни, наверное, вам стоит в настройках этого блога указать отправку новых комментариев на емайл в plain text, а не html.]

    Ага – спасибо, сделаем.

    [На каком языке тут удобнее общаться?]

    На удобном вам выбирая из двух.

    [“No more wondering around, just saw sounds” - если не затруднит, я буду благодарен за перевод.]

    Мой перевод – не торговать фэйсом (wondering around), а наконец то начать пилить дерево.