We would like to illustrate with simple examples why testing is challenging.
Once upon a time, there was a web page listing all files inside a directory. The last modified date of each file was also displayed. It looked like
2015-04-26T22:56:16+0100
The developer got the task to make this look a bit less cryptic. The developer was very smart and thought "let us make it configurable", e.g. by using generic date and time patterns, e.g.
"EEE, MMM d, ''yy"
which would be interpreted as
Wed, Apr 26, '15
The developer changed the implementation and did some tests and it seemed to work excellent. So far, so good, but you know Murphy's law, don't you?!?
The developer was from Germany and he did the changes during the month of April. In german there is exactly one month of the twelve months that contains a special character, and this is the month March, which is spelled in german 'März'.
Almost eleven months later the web page was broken, because the web page was based on XML and the special character 'ä' was not escaped.
Once upon a time, there was a web site with a password retrieval functionality. A user could provide an email address and the web site would check whether the email exists and if so, then send a password reminder by email. This functionality was tested with existing and non existing email addresses and it worked very fine.
Once the web site was live, people started to register and everything worked very fine. But after a couple of years the web site started to run out of memory every couple of weeks. From the regular log files it was unclear why this happened and it seemed rather randomly.
It turned out, that malicious bots were sending password retrieval requests and because the password retrieval algorithm did not scale well, the web site was running out of memory every time there were multiple attacks simultaneously.
Once upon a time, there was a developer refactoring XSLT files by moving common templates into a utility XSLT and including/importing this utility XSLT within the XSLT files from where the templates were removed.
The developer forgot to check whether there might still exist templates with the same name (as the ones which got moved) inside other XSLT files, which of course did ;-) inside an XSLT file which got used very rarely.
Some weeks later this particular XSLT got used and an error occured.
About Yulup
Made with in Zurich: