Let me start off with this, I am a tech dummy, when I hear the word ‘bug’ my first thought is “where?” and “Can I squish it?”. Now I am surrounded by the term and not because I found myself working for a very busy pest control centre. I am a marketing executive for a digital transformation company where our business is to investigate software to highlight these issues and consult companies to deliver high-quality software faster”.
I come from a creative background, I know my way around Illustrator and Photoshop and can create a simple poster in a matter of minutes. Even being surrounded by computers and software since I started school, I am stumped when my colleagues throw words around like BDD, defect, bug and scrum. So, in hopes that I’m not the only one sitting here scratching my head, I decided to look into the basic foundations of this industry and hope to perhaps enlighten those who may be in a similar situation as I am, perhaps we can all scratch our heads in unison?
To begin with, let’s look into what a bug actually is, and no this isn’t a 6-8 legged friend who may make you squeal (this goes for guys also, it’s not just us girls who can squeal). The standard technical definition for a bug is ‘an error in a computer program or system’ and we have all come across a bug or two, why do you think Apple love making us update our IOS every couple of months? As with all things, some bugs are mightier than others with some even causing mass destruction in terms of hardware damage, loss of revenue and even loss of life. Take Toyota for example, they had a bug which caused their vehicles to unintendedly accelerate which caused 89 people to be killed over the course of a decade. And let’s not forget every Black Friday/Cyber Monday, we are inundated with website crashes and unresponsive pages. One of the most famous being a software glitch on Amazon’s website in 2014, this caused thousands of small business owner’s products to be sold at 1p. This caused multiple losses for these businesses, one even to the amount of £10,000.
Now on to what a defect is, simply put a defect is ‘a shortcoming, imperfection, or lack‘, as you can see this is quite similar to a bug. An example of a defect could be, a word processing program will let you open and create a document, however, each time you try to re-open the saved document to make further changes, it crashes. This impacts usability and makes one of the main purposes of the program void and not forgetting makes it infuriating if you really need this document! Both bugs and defects cause unexpected actions to what the desired result should be and not just physical application errors, we can go as far as saying it also causes additional stress and frustration on development teams and additional revenue. This being from either having to invest in additional manpower to resolve the issue or because of the loss of revenue from items not being bought or in compensation for the outcome (I’m looking at you Amazon).
Though both types of issues are very similar to what happens to the application, service or system and the outcome on the teams and users, they do hold some differences also. These difference lie in when they’re discovered in the development/testing cycle. So how do you know when an issue is a bug or a defect? Why not call all issues a bug or defects or even just issues?
An issue is called a ‘bug’ when it is found during the time of the testing life cycle, this issue could range from anything as long as the fault causes the program to behave abruptly. A defect, on the other hand, is an issue caused when the application does not conform to the requirement specification and this can be found when the client or user is testing after the production of software. In some cases, the developers of the software can find these defects themselves and correct these after the testing lifecycle. See the example below to help better understand the difference between these two issues:
You are working with an e-commerce client and they are creating a new online shopping platform, they have given you their requirements and you now have to program this platform for it to work and be user-friendly. During the testing stage of the initial development, a junior tester has found that when adding items to your basket to purchase, it does not end up in the ‘my basket’ page. This has now been raised to the relevant department and labelled as a bug to be corrected and then to be re-tested, this is a successful testing cycle. Further into the project, you now have a finished product and is just about ready to be deployed on the client’s website, however, the developer has just noticed that the items in the shopping basket total are incorrect, the items are being sold cheaper than advertised by £2. This is a lucky catch as if this was in use and multiple customers purchased items for a reduced rate, this could cause a loss of earning to the business if not raised and corrected. The developer now corrects this defect so that the items are totalled up correctly and items can be purchased at the list price, this defect could have been initially missed in the testing cycle or a glitch at another stage in the development cycle.
Both bugs and defects can vary on different levels, and as mentioned above can cause different levels of inconvenience. Now you can understand why it’s important to highlight any issues right at the start before they escalate into bigger problems later. To summarise, both bugs and defects are errors and issues within a program’s behaviour but can be differentiated by the stage at which they are found during its development cycle. In simple terms, bugs and defects are bad and could cause system failures and frankly, devastation in some cases depending on the scale and size of organisation it happens to.
**Fun Fact** In most cases, people of the tech community refer to both instances as the same thing, so bugs as defects and vice versa. At the end of the day whether you refer to issues as bugs or as defects they have to be caught, so in the words of Pokémon we “Gotta catch them all.”
Marketing Executive at MagenTys