First and foremost, let us define Quality Engineering. Quality Engineering (QE) is the practice of testing, analyzing, and improving software quality across the application development lifecycle. It varies from traditional Quality Assurance, which was something tied to the end of a software development process in a Waterfall-dominated world. It also differentiates from QA in that it both avoids and detects faults.  

Why is Quality Engineering Important?

QE is becoming more important as we go toward an Agile and DevOps-dominated future.  

Quality is theoretically optimized throughout the process with both of these development trends because it becomes the responsibility of everyone involved. This has intrinsic benefits and drawbacks.

The biggest advantage is the effect of making everyone accountable for producing high-quality code through the rigor and discipline involved in Agile or DevOps.   Paradoxically, that is also its biggest disadvantage.   If something is everybody’s responsibility, then is it no-one’s responsibility?   For anyone that had college roommates, think back to when someone said “let’s just all tidy up after ourselves each day”.   How well did that work after the first couple of days or weeks?

In enterprise-level software development, QE is where the organizations that have embraced Agile and DevOps most routinely fall down.   It seems to us that the mindset of Waterfall has a hangover in Agile and DevOps as far as testing is concerned.   Instead of QA being that thing you do at the end of the development cycle, it is often now that thing you will get to on the next iteration.   According to a Forrester report, admittedly from September 2013, only 13% of Agile adopters had implemented Agile testing.

Without the continual involvement of a disciplined quality regime throughout an Agile or DevOps process, the end result will be a poor-quality product, which makes the momentous shift to Agile or DevOps pointless.   “Hey, the product doesn’t work very well, but we sure got it out fast”.   That doesn’t sound like the ethos that any development lead would want to admit to.

What are the Benefits of Quality Engineering?

With QE, a major advantage for your application development cycle is that you are actually making all the proposed benefits of Agile and DevOps more real.   As I described above, a fast, poor-quality product helps no-one. Also, the collaboration between developers and testers is more real, much more in line with the Agile ethos.   Testers have to be involved at the beginning of the cycle as they will be setting up the testing framework and environment which will be relied upon for all future sprints.

Done right, QE provides a great deal more speed in testing. QE relies more on Test Automation than manual testing. It is hard to imagine a QE function that does not have Test Automation at its center. And again, done right, it creates more speed and flexibility for the whole development cycle. It’s not just functional and non-functional testing, but every layer and every integration that can and should be tested. Any remaining manual testing can then be much more creative and exploratory.

Posted 
Dec 21, 2022
 in 
Engineering
 category

More from 

Engineering

 category

View All

Join Our Newsletter and Get the Latest
Posts to Your Inbox

No spam ever. Read our Privacy Policy
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.