By Seher Sarin
“Software testing may seem like a redundant and straightforward process. All you have to do is push a few buttons, and wait for a response to see if it matches with the expected response. If the actual result matches the expected result the test passes else, it fails.” — Elisabeth Hendrickson, Explore It!: Reduce Risk and Increase Confidence with Exploratory
It’s 2019 and this is still the most common misconception (held by anyone and everyone who isn’t a test engineer) of the profession. Not going to lie, prior to starting my co-op term as an Agile Software Test Engineer, I used to think along the same lines. Having not previously met anyone who was a software tester, everyone I talked to thought Quality Assurance (QA) to be a job that “real engineers” didn’t want to do — an overlooked and sometimes underappreciated aspect of the software development life cycle.
If you’re like me and had never met a QA engineer before, or simply want to learn more about some of the common testing practices used by Agile companies when building software products, then this question and answer style blog post is just for you. So, let’s get started!
Q: What does the QA team even do?
A: Three months into my internship, I think I’ve finally begun to understand and appreciate all that is involved in the job of someone working on a QA team…From planning sprints, to attending story acceptance meetings, to coordinating daily builds with developers and product managers, to planning test cases, to writing charters, to developing automated test suites, and then of course, performing regression, smoke and exploratory tests, then logging bugs and participating in sprint retros, all while constantly thinking from the perspective of an end user…the tasks never seem to end.
Q: What are the different ways to test software products?
A: Testing is an integral part of the software development life cycle, and there is a plethora of different types of tests designed to validate functionality. At the end of the day, testing can be simplified to one simple equation, which is comprised of the three important building blocks of the testing process:
Testing = Verifying + Exploring + Automating
Q: Whitebox vs Blackbox Testing?
A: Two of the most important testing methods are whitebox and blackbox testing. Whitebox testing looks at the internal mechanism of the system and ensures it satisfies development requirements. On the contrary, blackbox testing solely focuses on making sure the product behaves the way the customer wants. Whilst blackbox testing is usually performed by QA teams, whitebox testing is more often performed by the developers themselves.
Q: What is functional testing?
A: Functional testing is a type of blackbox testing where test cases are executed to observe actual and expected outputs. Functional testing takes a user story or a product feature, and tests all of the functionality contained within that feature. There are numerous types of functional tests, two of which are highlighted below.
Q: Why is Quality Assurance as important as development?
A: QA engineers act as middlemen between the customers that will be using the product and the developers who build the product. It is the QA engineering team’s responsibility to identify and help resolve issues in pursuit of shipping a product that is bug-free. If our goal, alongside developers, is to build and release a best-in-class product, then we must consider that a piece of software is only as good as deemed and experienced by the end-user.
Yes, testing adds an extra cost to the development process, every new bug discovered may delay a product release and as the last step of product development, it is often overlooked. However, the QA team is the one that knows more about various devices and platforms than anyone else. While the designers focus on making the product visually appealing, the developers solve engineering problems, and the PM’s manage the team, the testers are the ones that devote countless hours focused on quality. So, as you can see, QA engineers shouldn’t be thought of as underrated after all!
Seher is a Management Engineering Student at The University of Waterloo. She has been working as an Agile Software Test Engineer (Co-op) at TribalScale where she has anchored client projects and worked with a plethora of different software platforms.
TribalScale is a global innovation firm that helps enterprises adapt and thrive in the digital era. We transform teams and processes, build best-in-class digital products, and create disruptive startups. Learn more about us on our website. Connect with us on Twitter, LinkedIn & Facebook!