Career option: QA Engineer

Hello, my name is Pablo and I’ve completed courses for Ruby, JAVA, Javascript, SQL, Command Line, Building APIs from scratch, and currently doing Python. I’m a QA Engineer transitioning to Software Engineering Manager and I’m here to help out people as I can. Working on a couple of ideas to engage with the community and with Alyssa to set up some Q&A sessions.

After completing one of the courses, a lot of you ask: Now what?

Well, aside from being an app developer a good option is to be a QA Engineer. But what exactly does that mean? QA -> Quality Assurance

A QA Engineer should be part of any development team, they validate the requirements from the stakeholders and maintain the quality of the product. I say should be because a lot of companies don’t see the value in having a QA resource, and expect the developer to be responsible for the quality of their own code. To an extent, that statement is correct but a QA mindset is very different than a developer mindset.

Why? We find bugs in the code by testing the functionality, manually using the app.

How? Mostly by asking “what if I do this…”, we have inquisitive minds that don’t like to do as we’re told.

  • Hey, can you test the login page?

  • Sure.
    – use a good password
    – use a bad password
    – use a SQL statement instead of a username (anybody know little Bobby tables?)
    – use a Js script instead of a username

  • Found a bug.

  • Wait, what? How did you crash the system?

  • Because you didn’t sanitize your db inputs.

Developers usually only do what they’re told, unless you give them very specific instructions they don’t ask the "what if’s. QA does.

Eventually, all apps are too big to be able to execute every possible scenario manually in a reasonable timeframe (regression cycle). That’s where the Engineer part and your recently completed course come in. Instead of manually testing every flow in the app, you can automate it. Use Python, JAVA, Javascript, or any other number of languages and you can automate a piece of software.

Tired of testing the login page every single time? Write a script for it, it will execute automatically and you can worry about more critical areas of the app.

Automation can be done on the front end, the back end, on mobile apps, or the pipeline. What tools or language you use depends largely on the project at hand.

Questions, comments?

Discuss.

8 Likes

Wow! thanks for all the info. The first question that came to my mind was…

Are QA engineering jobs available to entry or junior level developers?

because it sounds like QA engineers have quite a bit of responsibility and tell others what's wrong with their code.
4 Likes

Wow quality advise
Thank You very much

1 Like

Short answer: yes.

Real answer: yes but… just like for a developer, you’ll need some experience in actual QA as well as writing automation code.

Like I said, QA people have a specific mindset that makes them stand out. You may be able to write the code, but it might not end up being an enjoyable experience. While it is an option, it’s not for everybody.

Companies have job postings looking for an automation engineer, but in reality you won’t be writing code 100% of the time. You’re going to have to do manual testing because automation is always falling behind and the code still needs to be tested. In 11 years I’ve never been part of a company that actually has a QA Engineer writing code all day.

What can you do to get some automation experience?

  • learn about Selenium
  • once you know the basics of Selenium, find a framework that supports the language you learned
  • take the apps you’ve written recently and apply some automation to it
  • take any site you like, write some scripts for it. In this sense, it’s a little easier to gain experience because you can apply it to any existing site or app.

Regarding QA experience… that’s a whole other topic. Unlike developers, QA needs to have a lot more knowledge. As a developer, you can focus only on the front end, or only on the backend. And that’s fine, but QA needs to know about both. A good QA resource will at least match, if not exceed the knowledge of a developer. They just use it in a different way.

Also, something I mentioned in another post. Just because you know Python doesn’t mean you can use it for every single automation project. Some apps benefit from automation in Python, others from Javascript, others in Ruby. As a QA Engineer, you need to be flexible and adaptable. You need to be able to pick up a new language when required. You don’t have to master it, but you need to be able to pick it up with little effort in a reasonable amount of time.

Once you enter the coding world, deadlines are constantly changing and everything is important so your manager is always going to push you to get things done quickly. This is true for developers and QA.

3 Likes

Excellent post.

In some ways, the job of QA Engineer sounds very similar to some roles you’d find within the infosec space… in as much as part of the role is focused on poking applications to see whether they behave in an unanticipated (or potentially exploitable) manner. :slight_smile:

(Extra points for lil’ Bobby Tables!)

1 Like