The Importance of Testing and QA

When I first started learning Python, I had no idea what I was getting myself into. I wasn’t sure what programmers did to make things work. I didn’t really know what programming meant besides typing code.

I was eager to learn though and make cool things. So without knowing even knowing what a loop is, I started writing a Scrabble game. I spent what I remember being countless hours trying to get that thing to work. But I had to copy and paste a lot of code over and over. Frustrated, I kept learning.

After a few short lessons I realized I could do it better, so naturally I opened a new terminal and typed:

$ touch scrabble2.py

And I began fresh with my new knowledge of loops. Then I repeated this process when I learned about functions. And again when I learned about classes. Looking back to my first Python projects file, there are only scrabble4.py, scrabble5.py and for some reason scrabble53.py. I’m a strange mixture of relieved and disappointed that I can’t find the first 3 iterations, and I really hope there weren’t 47 more.

So I was eager, but I did not take the time to learn all the tools in the toolbox before I tried to build a house. On one hand, it was a good lesson and a good way to solidify what I knew. On the other hand, it was a royal waste of time.

Tools make our jobs easier. When I discovered Git and the concept of version control, I was shocked. No more appending numbers to a rewritten version of source code! And I can see the changes I just made when adding a new feature! When I discovered automated testing, I was just as excited. When I started Android development and began reading about software architecture, it opened up a whole new world and solved a lot of problems I had when I tried to build things myself.

Programming is not the grind I thought it was before I started learning the tools. It’s a much more creative process. It’s a lot more fun. It is not banging your head against the keyboard because it won’t work, but rather realizing there’s an error in your logic* and having the chance to find it. And software development isn’t even mostly coding; it is mostly design.

Quality assurance and testing allows programmers to do their job efficiently. They are tools that prevent us from banging our heads against our keyboards in 6 months when we add a feature to code we’ve long forgotten. Learn the tools. They’re there to help.

*Or a coworker’s logic, but don’t bang their head against the keyboard either.

Leave a comment

Design a site like this with WordPress.com
Get started