From a Mathematician’s Point of View - The Eyes of the Tester - codecentric AG Blog
My daily business is the performance of IT systems, java applications in particular. Performance testing and optimizing is done normally to assure compliance to the non functional requirements set for an application. Working on these topics day-in and day-out has the power to change the perspective of the tester on a lot of other things, too, and can make even such unpleasant affairs like a hospital stay quite interesting. In this column I want to share some of the strange associations I had – maybe it even helps to understand what the testing of non functional requirements is all about and why it is important.
The system under test (SUT) in this particular case is of special importance to me: my optical receptors – my eyes. Their function should be obvious to all readers. In the technical words of wikipedia: Collecting and focusing light to form images, transforming them into electrical signals and transmitting them to the brain. The functional abilities of my eyes are already a little bit impaired, that’s why I carry glasses to aid in the focusing of light, thus enhancing my eyes’ functionality.
But for my eyes to work properly in the long term, a non functional requirement is of prime importance: eye pressure or intraocular pressure (IOP). If the pressure of the fluid in the eye is too high for a longer period of time, the nerves get damaged, leading to a loss of eyesight-functionality – even unto complete blindness. Very roughly speaking, the eye pressure should be below 20 mmHg. As my eye pressure was always relatively high, I was using corresponding medication and had to check my eye pressure every three months. Fearing that my IOP might still be too high, my oculist sent me to an ophthalmic clinic to check and adjust my eye pressure. Thus my eyes became a true SUT for four days.
Non functional requirements are not an end in itself. Without the functionality proper, any non functional glory is useless. Thus the first thing after I arrived at the test lab – the ophthalmic clinic – was to check the raw functionality of my eyes. For this end two tests were performed: First, my visual acuity was tested by letting me read ever smaller characters. Second, my visual field was tested to check if it was still as broad as it should be. Additionally, my eye-nerves were examined. Only after thus the actual state of the functionality of the SUT had been determined, the investigation of the non functional requirements could begin.
The first step was to validate the IOP measurements. As I have written in my last blog “Believing in Numbers”, it is all too easy to delude oneself with phony numbers and the consequences can be grave. Especially when possible reasons are known that can invalidate measurement results, it would be irresponsible not to check for them. In the case of IOP, it is known that corneal thickness can influence the results of eye pressure measurements. Therefore my corneal thickness was measured, which revealed that in my case a rather large correcting subtrahend has to be subtracted from the basic IOP measurement results. Without this measurement validation and correction false conclusions would possibly have been drawn.
Unfortunately, the testers – the doctors – managed to damage the SUT during the test for corneal thickness – the doctors called it just an “irritation” – impairing the basic functionality tremendously. As the SUT in question were my eyes I was indeed rather irritated and actually quite angry. Luckily the “irritation” dissolved after one day, restoring the basic functionality of my eyes back to normal. That’s why in IT whenever possible, we do not perform tests on the actual systems in production. We always try to build a separate test system. If the tester damages this system, production can still go on.
After all these preliminary tests and measurements, the SUT finally entered the standard test-cycle, i.e. the IOP of my eyes was measured five times a day for three days in a row, This way one gets reliable numbers by repeating the measurements over and over again and one also gets a profile for eye pressure variations during the day. As every application performance tester knows: the load on the typical SUT is heavily different between 11 am and 6 pm.
As the results of my IOP measurements were encouraging – not too high, especially when considering the correcting subtrahend – it was decided to perform a special stress test on the SUT. In a stress test you examine the behavior of the SUT under extreme conditions, in IT typically an especially huge load of simultaneous users or similar things. In the case of my eyes, I received some drops to widen the pupils of my eyes, which could result in a blockade of the outflow of the eye fluid, thus provoking a jump in the IOP. This didn’t happen, proving that my eye pressure remains within bounds even under certain exacerbated circumstances.
Thus after four days in the test lab I was released with the relieving result of the test series that there is no acute danger for my eyes from the non-functional area of eye pressure. But for that state to remain, I have to continue my medication and do regular regression testing of the IOP at my local oculist. Something, which is advisable to every responsible system or application administrator.