Why Test?Julie WhitingMarch 4th 2019
Quality Assurance (QA) testing- what is it, why do we do it and how do we do it at cloudThing? Robert had a chat with our QA Tester in the UK, Emma Cowley, about how cloudThing goes about testing and what the most important points are...
The most important thing to remember when testing is that humans are fallible, we all make mistakes! Some mistakes are small and have little impact, however some can be big problems and can have large, detrimental impacts, such as reputation, security issues and potentially, depending on what you’re developing, loss of life, so there are some really fundamental things that need to happen to avoid this. How do we go about mitigating them then? One of the key things you could do is to get a fresh set of eyes on your work. Very often in the development world, developers do their own testing and that’s OK to a point, but all they are really doing is verifying that their code is to a good standard and it actually works, but this is where the QA team comes in. What you now have here is a team of independent, dedicated testers who have a great understanding of test techniques and tools that they can use for functional and non-functional testing to get to the heart of the issues. From here, we can then explore them further and prioritise them for the team. Our primary role is to be able to have timely accurate information that we can give to our stakeholders whether that be internal or external, for them to make the best decision that they can.
Exactly, and it is like if you write your own essay, you’ll find some mistakes but someone with fresh eyes will find anything you missed and in testing this is key in making sure that we don’t have any major issues occur.
The best place to start is with one of our solution principles- ‘If it isn’t tested, it doesn’t work’. So, for us, that boils down to three main objectives:
So how does that manifest itself? Well, the test strategy is really crucial to everything we do and devising something that makes sense to every single project at every single client is what we aim to do. It’s not a ‘one size fits all’ situation, we tailor it to everything we work on. We think about the technologies we’ll be working with, what is the essence of the project, what are the core functional requirements, what are the integration points, could you leverage the benefits of testing automation and if so, what is the core of this? So, we put a test strategy together with all this in mind. Another key thing to think about and acknowledge are the risks that you may be exposed to and with this, we’ll go to our clients and have a conversation and discussion about what we think they may come across and how to avoid it. Such risks can include reputational, financial, regulatory, technical, operational, and so on. Once identified, we can talk about the probabilities of it and the impact it may have on their business. This is where our test strategy is created in order to mitigate these risks.
Yes, and all of that information is what you use to inform the test strategy. So there, you are understanding everything you need to do and what you’re going to do. We’ll firstly go through a low-test phase where we test the non-functional requirements such as the ones identified earlier (reputational etc). From there, we move to the functional requirements where we make sure that the stories meet the requirements.
Your QA team are embedded in the team and are a key part of it. We do all of the testing (as far as we can) within that sprint- our ambition is to write our test cases, do the execution as soon as it’s delivered to us, raise the defects, get fixes back and re-test them so that we can give quick feedback into our development team.
You must be a great communicator and listener! You need to listen to the client and understand what they want from the feature or project and on top of this, you also need to be able to listen to the developers and identify any issues from the start if you find any. This then leads onto being a good verbal communicator. You need to be able to tell the developers that there are issues within their coding and work but in a way that keeps a good rapport within the team. Also, if you feel that the quality of work within the sprints isn’t good enough, you need to be able to tell your team to step up. Another good quality is having a ‘tester’s sixth sense’, meaning that you are great at sniffing out defects so that you can then figure out how to test them and reduce the risks. Unfortunately, no one has enough time to test everything and so prioritisation is also important. You need to be able to identify the most critical risks first and act on them. Finally, a passion for quality and delivering fabulous software to clients is up there as the most important!