A Quality Assurance Specialist’s role and position in project teams often allows them to improve the information flow. QAs work so closely with developers that they might witness their problems and struggles first-hand. QAs are often not as technical as developers, but their knowledge is enough to grasp the obstacles which the devs face. They see and understand the complexities behind an application and are able to point out potential threats or difficulties.
On the other hand, the QAs’ role is to assess the quality of work, monitor the development of features and compare the output with expected results. They are the ones who go through the delivered parts of code and test them in use. They are, and must be, critical towards their team. This unique position fills the empty space between technical developers and more process/goal oriented PMs and clients.
Good Quality Assurance specialists strive for mutual understanding between different parties in the project. They fill in the missing gaps in communication. QAs might enhance communication by explaining actions and intentions of various stakeholders involved in the project to other team members, and thus bring closer the common goal, which is delivering successful products of high quality.
Quality Assurance cannot be limited only to direct work with a product. The job starts even before the actual code is delivered. QAs scrutinize the development flow with their critical eyes and seek room for improvement. Their duty is to ensure and plan proper testing in each phase. Various methodologies and approaches might be used in different projects, and it is up to QAs to decide upon an appropriate testing strategy and state when, how, and to what extent to perform tests to be effective. They watch the flow of tickets through different stages, and have deep knowledge about project specifics, which allows them to propose changes in the workflow to ensure both proper testing and efficient flows for developers.
Furthermore, QAs’ irreplaceable role makes them the guards of deployment processes. They assess the state of the product and act as an advisory body while discussing new releases. Quality Assurance Specialists are the individuals who will say “hold your horses!” and ask you whether, given the circumstances, you are actually ready to deploy the new release to production. Sometimes they might dampen your enthusiasm but only for your sake… You want to be sure you are releasing a top notch product!
Searching for unanswered questions
One of the most important tasks of Quality Assurance Specialists in every project is to look for questions which were not asked, but answers to which might be crucial for the project. When some omissions in a feature specification are identified early, even before the beginning of the development process, it might be easy to simply fill in the gaps. QAs analyze the flow of features and try to find bits which might be underspecified or accidentally forgotten. Of course, this sometimes might be difficult when dealing only with an abstract idea of a feature. That is why testing new features on a separate integration branch is a good approach. This allows for the isolation of new bits of code and their analysis in an environment which is the same as the production environment, except for the new code. With such an approach we can more easily try to find what is missing and what interactions with the older code don’t work as expected.
Finding all those issues, even when they are very subtle, before merging the new code, saves a lot of time. Later on, the ignored tiny problems might end up being connected to some other parts of the developed application and become way more difficult to fix. Quality Assurance Specialists therefore ask questions, sometimes uncomfortable ones, which may add big question marks to what may seem like a perfect development plan. This is not because they are evil little gremlins who want to spoil what was already created. They are rather guardian angels whose job is to make sure your project will be successful. The earlier they establish what stands in the way to achieving excellence, the better for the whole team and the product.
It is quite difficult to point out a perfect set of characteristics which every Quality Assurance Specialist should have, but one could argue that empathy should certainly be among them. As Wikipedia defines it, “empathy is the capacity to understand or feel what an another person is experiencing from within their frame of reference, i.e., the capacity to place oneself in another's position”. QAs need this characteristic because their job is largely about impersonating various user types and their specific behaviours/interactions with applications. This approach is needed to bring attention to what might have been ignored somewhere in the process of designing or planning a product.
Good Quality Assurance Specialists have wide experience with various types of applications, either used professionally or privately. They know how applications behave while performing certain operations, and they understand why they do so. This can be used as a point of reference. QAs are also able to think of various user types, impersonate them, and think of their needs or their approach towards the software while using it.
After releasing an app we can discover that people don’t behave as we expected and planned them to. Just think of a city with its perfectly set pathways, and pedestrians who decide to ignore the pathways and go with dirty shortcuts. It won’t always have a direct impact on our application, but sometimes it might. The key is to be aware of certain issues and take conscious decisions whether a given issue should be solved, or if it is of no business value and can be ignored. Finally, it has to be pointed out that QAs are not direct creators of designs and writers of code, thus they naturally might be more critical towards them, as designers and developers might suffer from creator’s bias. Therefore, it’s good for every project to have a QA onboard who will bring perspective to it.
Making your your app bulletproof
Last but not least, Quality Assurance Specialists will do anything to ensure your application is unbreakable, works correctly and is ready for users. This all starts with testing all the new bits of code before they are merged with the rest of the code. In between testing new features, QAs perform never-ending escapades of exploratory testing of your app. They test API endpoints outside the GUI to better understand them and more effectively identify potential threats. To ensure the applications don’t suffer from sudden unexpected regressions, QAs write E2E (End-to-End) tests which mimic user behaviour and automate the laborious regression testing process.
Furthermore, there are multiple non-functional testing techniques which can verify whether your application is ready for release. Security testing will ensure that the sensitive data in your application is not exposed. Performance and load tests will allow you to assess whether your application is efficiently dealing with the amount of data it has to handle. Stress tests will allow you to establish how stable your application is and how it will operate when invaded by tons of users. Of course, those are just examples of multiple activities which can be performed in your project. When used wisely and in appropriate moments, they can all bring great value to your project and ensure the reliability of your application.
Quality Assurance Specialists are part of every project team at Netguru.