Whether you can recall the name of everyone you have ever met or you just lost your keys for the fifth time this week, using mnemonics can help keep brain fog at bay. Mnemonics can not only help with your daily activities, performing a quick search on the Internet reveals a variety of different testing mnemonics meant to help remembering different aspects of testing. Though some mnemonics such as I SLICED UP FUN or CIDTESTD helped me a lot throughout my career to keep my testing activities focus, none could really capture the essence of Quality Assistance hence I created my own mnemonic over last couple of month which I’d like to share today: QUALITY ASSISTANCE.
Q – Questioning
For good testing practice the most important task is to ask the right questions, at the right time and to the right audience. Especially with Quality Assistance it is important that our understanding of the team, processes and products is challenged every day which includes questioning the status quo but also requires an environment in which the team can safely ask any critical questions they may have.
U – Usability & User Experience
The customer is most important for any product hence he should feel comfortable using the product and nothing should hinder him. When a new product has just been started the team can slip into the role of the customer and take a look at the feel while using the product.
A – Agile Values
The ideas of Quality Assistance are not limited to agile development models, however they go along with the agile values very well. The respect and trust within the team is crucial for Quality Assistance and the agile values can provide a framework to support this.
L – Learnability
Learnability can be defined as a characteristic for the product but is not limited to it, also every QA member should always strive for learning new and improving their skills. The expectations of Quality Assistance vary greatly from the commonly used Quality Assurance model which requires constant adaption. It is about recognising that you will face new challenges, so it is crucial that you grow your skill set and adapt to new circumstances.
I – Incident Management
While dealing with defects, risks and incidents it is important to keep a healthy balance. I noticed from own experience that in some cases it is necessary to escalate certain issues while not all implications are understood but there are other cases where the panic is already present and some calming methods can help the team to deal more efficient with a situation.
TY – Tools & Technology
In any project various tools and technologies are used with different purposes. Bear in mind that tools are only helpers but with no means they can be the solution to a problem. So make sure to find the right solution first before looking for a tool to aid with your solution.
A – Analysis & Adaptability
We always strive for constant improvement of the quality and for this we need to analyse the process and team on a constant basis. This should of course not feel like micro management as the trust within the team is the most crucial success factor for Quality Assistance. Use the analysis to adapt the process to the teams needs but involve the team in the decision as only then the team will more easily adapt to it.
S – Support & Skepticism
The team is in the center of Quality Assistance and supporting the team is the first and highest priority of QA. While supporting the team and trusting them in their decisions you should still be skeptical. I have a rule “Don’t assume anything!” and especially when someone says “It should work” my alarm bells start ringing.
S – Strategy & Standards
Each project needs a strategy. From a QA perspective we can provide guidance for the team with a test strategy which describes the testing approach in the SDLC. This will support the team to produce high quality but QA should also set the standard for the quality and hold the team accountable for it.
I – Integration Testing
One of the core principles of agile development is that change may occur throughout the while development cycle. Changes to existing features have testing implications especially for regression. One way of dealing with the amount of testing and frequent changes is the use of automated testing and in particular integration testing.
S – Security & Systems Thinking
In most cases it is important to keep the whole system in mind and not focus solely on a specific area. With a problem travel to the outer edges of it and the work your way back to reveal all the parts and how they connect. It helps to think through the pros and cons of various options which also gives the team a sense of safety and security.
T – Training & Coaching
QA team members are usually the experts when it comes to testing activities and knowledge around testing. One of the most important aspects of Quality Assistance is to empower developers to confidently tests. The ability to test well is not some magical trait, but a skill that can be taught and learned. When for example developers master testing they not only increase the efficiency of their teams but will also build higher quality software. Thus it is important to teach and coach developers the essence of testing.
A – Automation
To be more efficient automation is key. This can be test automation, build automation, continuous delivery, reporting, logging, almost everything. Any tedious activities or activities which are prone to human error are suitable for automation.
N – Non-Functional Testing
When encouraging the quality in the team and project do not forget about the non-functional aspects of the application. The earlier in the process this is considered the better it can be dealt with. It can also contribute to the architectural decisions as some architectures and solutions are limited in terms of certain non-functional aspects.
C – Complexity & Critical Thinking
The more complex a project grows the more important it is to critically question changes to lessen the impact it may have on other parts of the system. Do not assume that others are understanding the feature in the same way as you do, ask questions and think about the parts which could be interpreted in a different way. Raise vital questions and problems by formulating them clearly and precisely.
E – Efficiency & Effectiveness
Preventing bugs before they are written means that additional time and effort to fix bugs or rewrite code is reduced. The team will be more efficient, can ship faster and increase the confidence that the quality remains high.