They often ask which came first, the chicken or the egg. I would ask – which came first – a working piece of software or a bug?
And my answer is the bug of course. The name is considered to come up first in 1947 when a moth was found stuck in one of the components of an electrical circuit and noted down as “first actual case of bug being found”. But in fact this name appeared much earlier – around 1870s when Thomas Edison talked about bugs in the same context.
Today bug fixing is a normal and nevertheless exasperating part of developers’ work. And which is more frustrating – a single expression, a word or even a symbol can be the reason for the program to fail. Many of the readers might have heard about the notorious measurement system bug causing the Mars Climate Orbiter crash. A single inaccuracy cost NASA millions and reputation. And it is not only about NASA that great losses were caused by a small mistake. Due to a single variable type change a 500 million dollar worth unmanned Adriane 5 rocket exploded just forty seconds after the launch. Frustrating as it is, a single bug can lead a complicated project to failure.
The task is getting even more complicated when the development team tries to place the bugs themselves. The human nature seems to play a trick on us in such case. Even the obvious bugs are left behind and the functionality suffers greatly. The actual reason for the appearance of Beta-testing as opposed to Alfa-testing is that it is very typical for humans to overlook out their own mistakes.
From the first glance additional testing looks unnecessary. Why do you need to pay someone to test the software you know better than anyone else? You are acquainted with the architecture, with the data structure and the business logic. The argument will be just the same: it is because you know it so well, you will never think of data input types or action sequences an off-site testing specialist will try.
Our testing professionals are a solid and creative team, exercising a well-rounded approach to testing your products. The foremost target is to leave no piece of code unattended to. We know how important your product is to your business and customers and that is why we are using various methods and technologies starting from the traditional waterfall model up to the test-driven software development. Not only functional testing is performed, but also security, stability, localization, usability and other types of testing. We invite you to explore the wonderful world of reliable software with the opportunities that software testing at OCSICO opens to you.