Job Spotlight – What is Software QA? Part I

By Diego Casillas

Why Software QA?

Our first ever job spotlight is Software QA. This is a job which I have lots of personal experience with. I was a software QA analyst for a good 15 months without having any solid credentials for it. Remember, I was a history and English double major and I was able to land this job. Furthermore, I have worked with other QA analysts who have had degrees in biology, English, anthropology, business, economics, and many more. The variety of backgrounds in this job is also not necessarily particular to the company I worked at during my tenure as a QA analyst. I have met other QA folk elsewhere with similar backgrounds. The point of all of this is if the following job description gets your juices flowing then you too should be able to pursue a career in QA. The reason I chose to discuss software QA first is because it is the perfect example of a hidden gem of a job:

  1. It is a job that most humanities majors are not aware even exists
  2. The role does not really need extensive educational background in computer science
  3. Software QA can pay really well, especially relative to other entry level positions and it has a high ceiling for career growth (more on this later)
  4. Software development is one of the hottest job markets out there so demand for QA is quite high! Everyone and their mother is making a website or a mobile app.
  5. Depending on the actual work environment, QA can be a fairly relaxing position with solid work-life balance and the ability to work from home.

 

Introduction to Software QA

QA in this context refers to quality assurance. Jobs in QA largely deal with making sure the product that is being sold works as intended and is of optimal quality. The job description explored in this blog refers specifically to software QA – that is to say quality assurance for software-based applications such as websites, mobile apps, desktop applications, email software, and much more. Software QA is different than say manufacturing QA (assuring the quality of manufacturing standards at say a paper supplier company like Creed Bratton from The Office) or food science QA (taste testers!). Software QA is vast due to the world quickly reaching a level of mass internet consumption due to the “internet of things” (IoT). So you’re probably aware of software in computers, phones, tvs, cars, watches, thermostats, refrigerators, etc. Because of this software developers and QA are in high demand. However, a trend we are speeding towards is IoT.

Imagine a world where sensors and network cards are embedded into things such as your doorbell, your car keys, your houseplants, city street pavement and lights, electronic clothing (to measure biometrics),  and even potentially individual organs. Soon anything that can house a sensor will be able to relay data to some sort of cloud database for analytical purposes. This trend is only going to exacerbate the need for software QA so getting in on it now could pay dividends in the future. Back in the mid 2000s when I was looking to apply to college and figure out my major I remember reading advice from prep material that pretty much cautioned students about pursuing computer science degrees. Back then, at least in America, software jobs were being outsourced to programming workshops in India, eastern Europe, and China. There was a legitimate fear that good programming gigs would be scarce. More than 10 years later and the job market for software-related jobs continues to boom worldwide but also stateside. The push to mobile and IoT will practically guarantee jobs for the foreseeable future (the market also seems resilient to any potential sequel to the dot-com-bubble).

 

Software QA lifestyle

You’re probably saying to yourself, “okay dude I get it there will be demand for this job, but what exactly do QA people do on a day-to-day basis?” Software QA analysts work in teams with developers, database admins, and product managers. Essentially, to understand the QA process it’s important to understand the software development cycle (at least a little bit for the purposes of this post). There are various software lifecycle strategies – the most popular one today being Agile. It allows software companies to plan for the development of major features while also being flexible in dealing with emergency bugs that may show up. Therefore, a software QA analyst works with teams to plan out how a new feature/bug will be developed, tested, and released to production servers (what customers use). It is the role of the QA analyst to come up with test cases as a developer is coding a feature. A test case is a plan for how a user will use the software and making sure that any input or action they perform on your software works as intended. If the software team is working on a new login page these could be examples of test cases a QA analyst would have to create (and later test):

  1. The page has a username text field, password text field, and a submit button of some kind
  2. The page looks aesthetically correct to the user interface standards agreed upon by the company
  3. The system accepts valid usernames and passwords
  4. The system shows error messages when wrong username or password is used
  5. The system takes the user to the correct page following input of correct credentials

 

The previous example reflects how a simple test strategy for a particular feature would look. After the QA analyst creates the testing plan, then they must test the actual functionality after the development team completes the coding of the feature. This testing phase is highly important in the development life cycle. The QA analyst is responsible for catching any bugs (or defects), especially the hard to think of bugs that a customer will inexorably find haphazardly. A customer might click on the username field, then hit back on the browser, then go back to the login page and now the submit button might not work. It’s really weird, but fun, sequence of steps like that which can lead to broken software which most people (especially developers and product managers) do not think about yet they happen all the time when millions of users get their dirty hands on your software.

The fun part of being a QA analyst is breaking software on purpose to guarantee customer satisfaction with a clean software experience. After the round of testing has been performed, usually on test servers, the development team then deploys the new features onto production servers which customers will be able to see. Often times the QA analyst is in charge of doing a smoke-test (a quick review of the test plan) on the production environment to make sure the feature was deployed successfully and works as intended. This usually marks the end of a sprint (a development cycle) and the development team then begins working on the next feature to code and the process repeats once more.

Continue to Part II of our Software QA series

Until next time.

One thought on “Job Spotlight – What is Software QA? Part I

Leave a comment