The Evolution of the full-stack QA ‘Engineer’

The Evolution of the full-stack QA ‘Engineer’

Following on from recent posts about the roles and capabilities in agile testing and who does what we are going to discuss a bit today about the type of hybrid test roles that are evolving and how complex they are becoming. As Development has become Software Engineering and developers evolved into Software Engineers so Testers are more frequently referred to as QA Engineers,

There was, and to some extent still is, a perception that QA engineers are far less technical than Software engineers. Historically they engaged primarily with manual testing of whatever the developer handed over with the automated regression being developed by more specialised technical testers. In today’s agile world and the evolution of the “generalising specialist’ you are likely to be working in a small team and working closely with more technical specialists.

As these hybrid roles develop, we are seeing the emergence of the “full stack QA engineer” – at least we are seeing organisations trying to hire people with multiple testing and technical capabilities.

This evolution of hybrid test roles follows the evolution of development roles. A developer who masters each layer of an application, and the technologies employed all the way through from the back end to the front-end is often called a “full stack developer”. Similarly, a QA /Test engineer with the capabilities to work on all aspects of quality and using different testing methods to test their application, is called a “full-stack QA engineer”. A full-stack QA engineer will be comfortable working across all of the application’s layers and will be familiar with large parts of its functionality. They will think about the many different aspects of product quality, such as functionality, usability, performance, security, etc. They will be familiar with test automation strategies and technologies. The full-stack QA engineer has a rich mix of domain knowledge, technical skills and testing expertise, all from a user-oriented perspective.

The move to agile with it’s focus on smaller multi-disciplined teams, faster cycle times and in particular the ability to have deployable objects at the end of a cycle mean development and test happen in parallel and the greater the knowledge each team member has of the overall process and the associated technologies the more cohesive and productive the team is.

No alt text provided for this image

Some organisations are seeking roles that seem to blur the lines between developer and tester, requiring testers to have development skills close to developer capability. While this approach has obvious advantages for the set of capabilities that may be present in the team we need to be careful that we do not miss the value of the testing skill and the testing mindset. A “Generalising specialist” comes from a core discipline or capability and broadens out – a QA engineer starts with a testing mindset and expertise and from a user/customer perspective - understands how to build a test strategy and adds technical skills around test automation, test environment management, test data management and the developer technical environment.  

Software engineers start from a different perspective, ideally to design and write simple, maintainable and quality function in alignment with technical architecture with a focus on getting things to work and less focus on when they might not work. This is a large generalisation but a useful comparison for the purpose of differentiating test and development and the difficulty of blending both in one individual. Indeed, there are examples out there where companies want Software engineers to develop and test their code to releasable standard. A significant focus of the QA specialists is to educate the developers in how to test and to bring them up the testing “experience curve”.

Another dimension to testers adding technical skill comes with advances in technology e.g. data and analytics. There are two elements to this – firstly there is a need for solutions involving data and analytics to be tested/quality assured and secondly there is an opportunity to use the technology in support of SQA. These data/statistical functions are used to support test case/test data generation tools. There is also an increasing use of analytics/predictive modelling techniques to analyse defect metrics and more accurately focus testing effort.

No alt text provided for this image

So, what do these full-stack QA engineers do?

A full-stack QA engineer needs to know the product well and understand how to test it from the user’s point of view. They need to understand how users use the product and are concerned with its usability. They should be involved in the early stages of the feature’s development, so that they can share their advice and experience from a testing and user-perspective. This enables them to understand and contribute to the end to end flow and develop overall test scenarios.  Fewer defects are introduced by developers if the QA engineer is involved from the start, which includes defining the feature’s requirements. 

With the focus more on defect prevention than defect detection the full-stack QA engineer will work with the developers to understand the functional technical architecture, how it’s implemented, and the specific technologies used. This will help them determine how best to test the feature. The full-stack QA engineer doesn’t need to know the actual code of the application, but the deeper their technical knowledge the better the quality questions they can raise. This helps the team as a whole to think more carefully when implementing the feature and prevent defects from reaching the end user. Understanding the technical architecture particularly in multi layered applications enables the QA engineer to identify how API testing can be done, for example where service virtualisation or “stubbing” may aid test efficiency.

Training, coaching and support are important elements too. Agile team members cross-train each other to ensure knowledge of the code base is spread throughout the team. The full stack QA engineer can contribute to code/design etc. but more importantly coaches team members in developing test thinking in support of the quality focus that all team members should have.

On the technical quality side, you have a number of elements with which the full stack QA engineer should be conversant. Security is very important and needs to be considered from the design and development level of the function and how it can be tested. Security penetration testing at overall company server/network etc. level is most often left to pure security specialists and the quality strategy needs to identify where this is required.

No alt text provided for this image

Other key technical areas are around test data availability, generation and conditioning and the setup, maintenance and availability of test environments. Full-stack QA engineers must also think about test automation and about technical performance quality. In assembling the test strategy consideration will be given to coverage, automated tests, manual tests, performance at unit and overall functional level, layering up automated regression/continuous testing suites, data privacy and governance.

It is easy to see how the full stack QA engineer can address many of the technical and quality/testing capabilities required in high performing agile teams. It is also easy to understand that these people are as scarce as hen’s teeth and command a premium if they can be found. Given their extensive range of skills one might also ask what is their best role? It seems inefficient to have them writing or executing manual/automated tests or focussing heavily on any one area of their expertise. Their real value may lie in influencing design and testability, crafting the right test approach for a series of sprints, guiding the execution of the various forms and elements of testing, optimising the use of environments / data. May also encompass coaching and mentoring team members. What is clear is that a base of testing expertise coupled with a level of technical competence is becoming more of a necessity for QA engineers today.

At Vantage Resources we use our METISURE framework to guide our delivery of services to clients. This covers SQA and Test strategy development including agile approaches, test automation, and supplying expert staff to support quality delivery throughout the life of the project. 

To view all open SQA & Testing roles visit @ Vantage.ie

No alt text provided for this image

For a free consultation speak to Derek Leahy today on 0872940612 or email him: [email protected]









要查看或添加评论,请登录

社区洞察

其他会员也浏览了