
A jotter about software testing enriched with cartoons. Texts and cartoons by Torsten J. Zelger
Many customers have different requirements or requirements that change backwards and forwards over time, especially in an early stage of the project. The developer's weapon against such ping-pong requirement changes are :
The expected worst case scneario in Switzerland are 2 mio casesof Swine Flu infections (one third of the population) and about 5000 deaths. Is it really that alarming or are these messages alone already the disease?
At this point I remember an article where I read something about "False positives, and false negatives". Applied to my daily work as a test automation scripter, how can I find out quickly, whether my new or touched scripts will find errors if they occur and when the feature currently work fine?
We have a lot of scripts which test the API to our service based application and I found a really stupid but effective way to smoketest my own test scripts. I plugged out the network cable and started the test suite. In such scenario, I expect my complete test suite to "successfully fail" for all tests, but it was big surprise seeing one of the test cases to still get the green status icon.
I wasn't online and all my tests were supposed to submit and query information from a service that needs a network connection to get any meaningful results. How can it then be that this test passed without a network connection?
Looking closer at the validation/assertion the script was executing (hereby debugging my own code and trying to understand why this test returned a "passed" status) revealed that I was doing an assertion to an object that becomes the same state, no matter whether you are online or not.
For example, I was querying a list of items in a database which can be of either one or the other state. For simplicity let's take the states ACTIVE or INACTIVE.
The interface I was testing offered 3 parameters to pass to the API. Passing "0" gives me the INACTIVE items. Passing "1" gives me the ACTIVE items. Passing an empty string returns all items.
As our test environment is used by a many other testers, too, hence the exact number of items could not be determined at runtime unless you clean the database to start from an initial state.
That could not be done, because it affected too many people. Therefore I focused on testing the service by passing all 3 parameters in a sequence and then compare the number of items among each other. I verified that the total number of ACTIVE items plus the total number of INACTIVE items are the same as the total number of all items using the following code:
Assert.IsTrue(nNumTotal==(nNumActive+nNumInactive));
Assert.IsTrue(0 == (0 + 0));
The fix in my script then was to add an additional Assert-Statement that tests for the number of items being greater than 0.
Run a test on environment X, collect reference
data, then re-run the same test scripts and collect new data from a
different environment Y. If you expect those results to be
identical.Good luck.They are most likely not. If you run a test and
collect reference data, always run these tests on the exact same
physical machine and don't compare data with different machines, unless
there is a strong reason for this. There are always things that are
different on these machines.
For those who didn't recognize what's hanging at the other end of the bar...it's a buiscuit, the shape of a bear (ursa).
Sooner or later, either you or your team will be faced with the question, ..."How come that the testers haven't found this bug?" One thing is for sure:
Changing UI interface, unique names and IDs and position of UI controls, dealing with 3rdparty elements, etc, etc.. all this stuff is daily business for test automatin engineers.
How often have you heard the phrase "This is an invalid Use-Case" only to learn quite a while later that you haven't been far away from reality when such ignorance strikes back. Safety critical industries– by their nature - have a different approach in fixing problems in the long-term. They learn from defeat (watch full article)
According to a news entry by CNN about a month ago, the most powerful atom-smasher ever built could make some bizarre discoveries, such as invisible matter or extra dimensions in space, after it is switched on in August.This collider, called the largest scientific experiment in history, is expected to begin test runs in August. at CERN in Switzerland. Some critics fear the Large Hadron Collider could exceed physicists' wildest conjectures: Will it spawn a black hole that could swallow Earth? Or spit out particles that could turn the planet into a hot dead clump?
It has been quite a while since I last put another cartoon on paper and the reason is not the missing subjects, that is for sure! There is quite a bunch of ideas just waiting in the queue to get shifted from draft to final mode. The cartoon is dedicated to UNICEF and will be part of the UNICEF exhibition next month in Steinen, Germany. The really interesting thing here is that - by accident- it fits so nicely to the weird scenarios I am just going through. Good luck, little birds!
This is a rework of a cartoon I drew in December 2006 based on a story that happened almost exactly like the cartoon demonstrates. I was "CC"-ied an Email which the head developer at that time answered to Engineering team. He forced them to deploy a piece of code while bypassing all agreed software deployment processes. And it wasn't the only time we suffered such actions. The original version of the cartoon together with one of my first contributions as an author was published later by BZMedia, N.Y. (New York)One day, a furious CTO invited the head developer, an architect and me into his office and started shouting. We were made responsible for the loss of a several million-dollar deal. I cannot remember the exact details anymore, but I remember being confronted with charges that could be easily disproved. Disappointed about the unfair treatment, I started to draw my very first cartoon. It served as a tool to channel my anger. When my colleagues saw the cartoon, they enjoyed it and couldn’t wait to see more of the same kind. So I continued drawing.
The term 90/10 was one of 3 slogans that ruled the company. 80/20 which is the well-known Pareto principle, 30/30 should remind us that one third of what we do is waste, and 90/10 meaning to take ownership. You are 90% responsible of what you do. In the cartoon, the numbers are twisted by purpose as this CTO didn’t follow his own code of practice.
The challenge of getting the required information is well-known among testers. Even if you get the required documentation, what you really need is missing. I have seen a broad variety of documents with different levels of quality (from excellence to unusable) but the experiencie I liked the most was a project that combined two very different approaches in two different phases of the project.