There are apps for almost everything everywhere around us, every day and during our waking hours. Little things like counting steps for your workout walks, for your scheduling and journaling, reminders on when to water your plants, to apps that close the gap between businesses and consumers, like the growing-in-popularity delivery and browsing apps such as Uber Eats, GrubHub, Rappi and others.
Apps are a quick and pretty name for software constructs. They have to go through a development process to achieve a level of completion and sustainability that the end-user can enjoy without problems. To get to this point, there exists a process called Software Testing, which I want to discuss in this post.
Hammering Things Smooth
Software Testing is a method for checking whether the software product matches expected requirements and is defect-free. We commonly refer to these defects as bugs, but they are not limited to that.
Funnily enough, the term Bug has a physical origin in software development. As early as 1878, it was none other than Thomas Edison who first was noticed using this term; in a letter to a colleague, he expressed:
“You were partly correct. I did find a ‘bug’ in my apparatus, but it was not in the telephone properly. It was of the genus ‘callbellum’.”
Edison was not talking about a literal bug; it was more of a friendly joke; he used the word call (as he was writing about telephone wiring) to describe an error in the system. However, in 1947, still very early in computing, a real-life bug caused problems in a Harvard Mark II Aiken Relay Calculator. This time, it happened to be a moth, attracted by the lights and warmth of the machine.
This further cemented the use of our modern terminology for a software bug. There are more items to this little piece of history that you can read here. In our modern world, these bugs are not literal but still small malfunctions, defects, or quirks that need to be ironed out to make the end product what it is desired to be.
How Do Software Testers Prevent Bugs?
To do this, Software Testers follow a process of Discovery, Categorization, Resolution, Verification, Closure, and Reporting. In layman’s terms, testers go through the software, using it as intended and not as intended, scouring to find any possible defect until one such defect appears or is discovered.
Once that occurs, the Tester studies the issue, categorizing it according to the parameters of how and what happened. Then, the actual work of coding begins to smooth out whatever caused the defect in the first place, thus resolving the issue. Once that takes place, Testers verify that the defect is no longer by replicating the steps that led to its discovery.
Once the bug has been squashed metaphorically, it’s time to close the subject; they log the experience into a registry, reporting the work done and all the steps involved.
This happens in all stretches of software development, from small, simple apps to complicated programs. A good example that comes to mind is Bug Testing for Video Games.
What Are Game Testers?
Known as Game Testers, they follow the same procedure: They experience the game as intended and go out of their way to push the programming to its absolute boundaries, hoping to find defects that they can categorize and point out so they can be fixed.
This takes time and money in the development process, and it’s common to see products that, because they didn’t allocate much time or interest in testing, end up being released in a defective state. This portrays an image of a lack of quality that, of course, works against the interests of their business.
A Necessary Step
In general, when designing anything, from physical to virtual products, part of the process to perfection involves iterating, repeating, redesigning, and innovating to make that ideal vision happen.
You can easily imagine this being the case for grander, physical products: Cars and Airplanes have to be tested and approved through regulations before they can be sold to the public and used since a defect that goes undiscovered could cause significant harm in the lives of their customers.
Something similar happens in Software Development; untested software can harm the business that promotes it, and it’s in the publisher’s best interest to thoroughly test and iron out imperfections before the software hits the market.
Here in Freelance Latin America, we’ve produced a video on the subject, which I recommend you watch if you’re interested in this specific area of Software Development.
See more articles by Paola Rodriguez