Who is a full stack Quality Engineer?
The term “full stack” is a widely-heard term, mostly associated with Software Engineering, but rarely in conjunction with Quality Engineering.
So, what exactly is it, and why is it important?
To understand this, let’s look at what traditional QA practice is. There are several areas and types when it comes to Quality Assurance – Testing, Test Automation, Performance, etc. Generally, there are teams specialized in each of these areas, but just as the rise of full stack engineering spelled the end of specialized front-end and back-end developers, and brought about the age of engineers that can build a product end to end independently, the time for QA to follow suit is near.
At Sysco LABS the term QA is dead, and in its place, is QE. Quality Engineers. It is our belief that the practice that should be followed when delivering quality products, is not just about the QA team testing a product and logging the bugs, but more about our QE team working side by side with the Engineering team at every step of development to ensure that the result is of high quality. To get to this point, specialized QA teams were replaced by full stack quality engineers.
Full-stack quality engineers are individuals capable of working on all aspects of quality across all the application’s layers, using different testing methods. They will think about the many different aspects of product quality, such as functionality, usability, performance, security etc, and will also be familiar with test automation strategies and technologies. The full-stack QE will have a rich mix of domain knowledge, technical skills, and testing expertise.
Why are full stack QEs needed?
With the adoption of Agile development and DevOps culture, a story/feature is not complete without testing, and rather than being reactive by looking for bugs after development, full-stack QEs will focus on proactively looking for defects throughout the planning, design and development stages. When full-stack QEs work within a developer’s technical stack (as in the example, working within the JS stack as the developer), they can be Agile, prevent bugs, and increase engineering productivity. Full-stack QEs treat testing as defect prevention than defect detection.
What does a Full Stack QE Engineer offer?
- Efficiency – Having a Full Stack QE Engineer in your team gives the team the flexibility to do more. Having a single Quality Engineer removes the need for an automation team, a performance testing team, etc. This means there’ll be less wait time between testing cycles.
- Efficacy – Having a Full Stack Quality Engineer in your team often, means that that member has a deep understanding of the product. This means the Quality Engineer knows what, where, and how to test. A traditional QA engineer without this knowledge will most likely test a larger portion of the product since they will only have an overview of the product, so doing deep testing in an area might not be within their scope.
What do full stack QEs do?
Here are some areas that we believe a full stack QE should be competent in:
- Systems thinking
- Software Testing & Test Design
- End User Thinking
- Test Management to reporting, analytics, and matrices
- Performance Engineering
- Service Level Performance
- Client Side Profiling
- BFF Performance
- DB Performance
- UI Level Functional Testing & End to End Testing
- Code Quality and Coverage
- Exploratory Testing
- Service Level Functional Testing & End to End Testing
- CI/CD (DevOps mindset)
- Continuous Testing Mindset
- Product Expertise
- Understanding System Architecture & Design
- Security Testing
- Unit Testing & Test-Driven Development
- Effective Communication & Leadership
The main responsibility, however, lies a bit deeper. A full stack QE engineer should act as the driving force of Quality in a team. Working together with the Software engineers, it will be their responsibility to implement a “Quality is everyone’s responsibility” mindset.
If DevOps is the goal of your company, the person that will play a testing and quality consultant role should be the Full Stack QE.
The road from “Quality Engineer” to “full-stack QE” is a long and challenging one, but a full stack QE will find that there are more career opportunities available, and they will have the opportunity to have a much greater influence on the product, which will reach the end-user at a higher level of quality and speed than ever before.