Is it possible to finally get rid of defects and other bugs in the software? The answer is definitely – no. But why so? Are all IT communities doomed, one way or another, to an endless and unrelenting struggle with bugs?
The answer is also straightforward: yes, the dealing will be constant.
The Testers/Programmers Are Missing Something
Human beings are not perfect. The bugs’ occurrence is a kind of science. Any one of us cannot program absolutely all possible situations, because no one can imagine all possible variants. And this concerns not only testers but programmers as well.
As usual, there is always something missing in the client requirements, the system architecture, the program code, or the testing. At any stage, where people of a software testing company are involved, something will definitely be missed. And so, when such “gaps” occur, defects appear.
People Don’t Understand Each Other
Even though we could imagine all the situations and options that could happen, we need to share these ideas with other people involved in the same activity as us.
And this is a very exact translation of a picture “from one head to another”. After all, two or more people can understand and interpret the same program code differently. And it (the code) must be “one absolute truth”. So, the surprise is inevitable.
Bad Translations
Translation mistakes can be found at every step: in program code, in test design, in proposed solutions, and so on. Such errors gradually accumulate and spread bugs.
Using False Assumptions
A small assumption can’t seriously affect anything, right? We think we’re confident in our knowledge. We assume that everyone else on the project teams thinks the same way.
Unfortunately, we cannot avoid such false assumptions. Otherwise, we find ourselves at a point of reference – we have to think about the whole, but not about a single constituent part. Nevertheless, we certainly won’t do that, since our brains “tell” us that everyone already knows that.
Absolutely everything we build in assumptions we don’t necessarily describe in code, or if we assume the worst, we end up with a very large program code.
In the first case, we will definitely be surprised that we were wrong. And in the second case, the program code will become very complex, making it hard to verify and prove our assumptions.
Short Conclusion
There are probably plenty of other reasons for bug occurrence. However, the sources of bug reproduction need to be reduced in a forced way, for example through code reviews or technical communication.
0 Comments