UN CH
July 2021
RE -L A
testmagazine.co.uk
Volume 12 Issue 1
Quality Management:
Do less with more!
How to lead a QA Team Chaos Engineering: Break your own systems The best QA Testing Skills to have in 2021 The role of AI and Automation in QA Testing
1
Sponsored by De Now in its eighth year the European Software Testing Awards celebrates companies and individuals who have accomplished significant achievements in the software testing and quality assurance market. The awards ceremony will be held at the Old Billingsgate, London in November 2021 Enter the European Software Testing Awards and start on a journey of anticipation and excitement leading up to the awards night – it could be you and your team collecting one of the highly coveted awards! WHY ENTER? The benefits of the entering the European Software Testing Awards are considerable: • Best-of-the-best: winning an award will ensure you are perceived by your industry peers and clients as a leading provider of software testing services and solutions • Marketing: just being shortlisted can improve brand awareness and promote your business to new customers and increase credibility • Employee motivation: awards recognise the hard work and achievements of your staff, so winning one helps boost morale and improve motivation • New talent: by promoting your business as the best-of-the-best you can attract the talent you need to push your business forward • Benchmarking: the application process alone forces you to look at your business from a different perspective and compare yourself to the competition.
SoftwareTestingAwards.co.uk
July 2021 CONTENTS
testmagazine.co.uk
July 2021
What's inside
06
11
Break Your Own Systems: Chaos Engineering
16
The best QA Testing skills to have in 2021
18 Quality Management: ''Do less with more''
Interview: Dono Greef
22
26
How can AI and automation revolutionize QA testing
30
Interview: Michael Robson
Leading a QA Team
32 QA in DevOps: QAOps 3
21st – 22nd September 2021 at The British Museum, London
The National Software Testing Conference is a UK‑based conference that provides the software testing community at home and abroad with practical presentations from the winners of The European Software Testing Awards, and roundtable discussion forums that are facilitated and led by top industry figures. This premier industry event also features a market leading exhibition, which enables delegates to view the latest products and services available to them. The National Software Testing Conference is open to all, but is aimed and produced for those professionals that recognise the crucial importance of software testing within the software development lifecycle. Therefore, the content is geared towards C‑level IT executives, QA directors, heads of testing and test managers, senior engineers and test professionals.
REGISTER SoftwareTestingConference.co.uk
July 2021 EDITOR'S LETTER
testmagazine.co.uk
Editor's Note Volume 12 Issue 1
Welcome to this brand-new chapter of Test Magazine! First of all, we want to thank everyone who has supported us and has contributed to this issue; our work wouldn’t be possible without your endless support! 2020 has been a year of many challenges and setbacks but that didn’t stop us. On the contrary, we, at 31Media, alongside the Software Testing and DevOps communities, came out of it stronger and more inspired than ever. It is with that same energy and passion that we aim to bring you quality and thought leadership content on some of the most talked-about topics in the industry. This is with great pride that we are presenting you the very first issue of Test Magazine of 2021, celebrating Quality in Testing and DevOps! From articles written by Quality
Assurance experts to features exploring different aspects of quality in testing, as well as exclusive interviews of QA managers and leaders, this issue brings you various and captivating reflections, perspectives, and views. You will have plenty of opportunities to gain an understanding of practices such as QAOps Quality Management and Chaos Engineering, but also get advice from experienced professionals on how to lead a QA team as well as discover the best QA and testing skills to have in 2021 and the role of AI and automation in software testing. Our magazine will introduce you to leading figures in the industry who will share fascinating insights on these themes. We hope that you will enjoy reading this issue as much as we enjoyed putting it together for you. Thank you for always believing in us and for supporting the future of tech! Enjoy!
Constance Drugeot Editor
© 2021 31 Media Limited. All rights reserved. TEST Magazine is edited, designed, and published by 31 Media Limited. No part of TEST Magazine may be reproduced, transmitted, stored electronically, distributed, or copied, in whole or part without the prior written consent of the publisher. A reprint service is available. Opinions expressed in this journal do not necessarily reflect those of the editor of TEST Magazine or its publisher, 31 Media Limited. ISSN 2040‑01‑60
EDITOR Constance Drugeot constance.drugeot@31media.co.uk +44 (0)203 931 5826 ADVERTISING ENQUIRIES Shivanni Ahmed shivanni.ahmed@31media.co.uk +44 (0)203 931 5827 DESIGN & PRODUCTION Ivan Boyanov ivan.boyanov@31media.co.uk
PUBLISHED BY 31 Media Limited Fleet House 8-12 New Bridge Street London, EC4V 6AL +44 (0)203 931 5827 hello@31media.co.uk testingmagazine.com PRINTED BY MIXAM, 6 Hercules Way, Watford, Hertfordshire, WD25 7GS, UK
softwaretestingnews
@testmagazine
TEST Magazine Group
5
July 2021 PROCESS & DEVELOPMENT
testmagazine.co.uk
Break Your Own Systems: Chaos Engineering Use chaos engineering to improve the resilience of your systems by breaking things deliberately in a controlled way Introduction Modern software applications and the infrastructure they run on are becoming increasingly complex. A web of multiple microservices integrated via APIs or message queues, each with its own database. Running inside containers that can spin up and down several times a day depending on the amount of traffic. Deployed on cloud infrastructure, in different geographic regions. All spitting out logs, metrics, and traces and used by a potentially vast number of users constantly during the day and night. All this with the additional need for product teams to make changes and add new features more frequently, with zero downtime and zero impact to users.
6
These complex systems can also fail in increasingly complex ways. Applications can have weird and unexpected bugs, API versions can introduce breaking changes, message queues can crash, data can become corrupted, whole regions of cloud infrastructure can even go offline. Changes made by one team can impact a separate service running somewhere else, owned by another team, with no warning. Massive spikes in traffic around events like Black Friday can overwhelm one part of the system and impact your customer experience. Or something entirely unexpected and seemingly random can happen at any time with catastrophic effects. So how do you make sense of
Mike Skaife Mike is a Software Engineer, DevOps Architect and technical leader with over 10 years of experience in designing, building, testing and operating complex distributed microservices systems across multiple industry sectors. He loves empowering teams through DevOps, SRE and continuous learning.
July 2021 PROCESS & DEVELOPMENT
testmagazine.co.uk
the madness? How do you avoid a lifetime of sleepless nights worrying that this fragile house of cards is going to collapse at any moment? This is where Chaos Engineering can help.
What is Chaos Engineering The official definition states: “Chaos Engineering is the discipline of experimenting on a software system in production in order to build confidence in the system’s capability to withstand turbulent and unexpected conditions”. In other words, Chaos Engineering involves purposefully causing things to fail in production environments, in a controlled way, with the intention of learning how those failures manifest, what their impact is, and whether the system can detect and recover from those failures as expected. There’s a couple of key points to highlight there: • Production - true Chaos Engineering involves breaking the production environment, as scary as that might seem at first • Controlled - we are talking about taking a scientific approach to experiments and limiting their impact • Expected - we are validating that what we expect to happen does happen, it’s not just a case of ‘what does this big red button do’ • Learning - the objective should be to further understand our system so we can implement improvements Essentially, it’s about accepting that in any
“Chaos Engineering is the discipline of experimenting on a software system in production in order to build confidence in the system’s capability to withstand turbulent and unexpected conditions” sufficiently complex system, something is either already broken or is about to break at any moment. It’s pretty much impossible to prevent every possible failure from occurring, so instead let’s focus our efforts on constantly testing what happens when different failures occur, to increase our confidence in our systems resiliency and ability to handle failure gracefully. It’s an ongoing journey, not a one-off activity, which should become a key part of your engineering culture and practices.
Less Chaos, More Engineering When our teams first started venturing into Chaos Engineering, we were somewhat naive in how we approached it. We would hold what we called ‘game days’, where a couple of us planned, in secret, to cause some kind of failure and watch the outcome. Our first couple of game days involved, for example, stopping a database instance, whilst at the same time hiding a couple of the key engineers with the knowledge to fix it, in a room on another floor of the building. We’d then sit back and observe the carnage of the team
running around with their hair on fire trying to fix it themselves. This was a bit too heavily skewed towards the chaos and less about using a sensible controlled engineering methodology. I would not recommend following this approach yourselves! It was useful for confirming some of the single points of failure in our team (i.e., only one person knows how to fix this problem, and we can’t cope very well if they ever happen to find themselves locked in a meeting room), but we ultimately learned very little. So please don’t let the name fool you. It doesn’t mean just cause chaos by pulling cables out of the wall or switching things off. We’re talking about taking an engineering approach to validating and learning about our systems.
Chaos Experiments and Applying Some Science The correct way to approach Chaos Engineering is to first create a hypothesis that you want to validate, implement an experiment in a controlled way, observing the results, and comparing to what your hypothesis suggested would happen. From there you can identify any gaps and implement further automation or process changes to mitigate those particular issues for the future. Let’s run through the different steps involved in running a Chaos Experiment in a bit more detail. Build a hypothesis You first need to understand what normal behaviour in the system looks like, and what failure you want to test for. Doing this as a team is really effective and can help identify the key areas to focus on. Get together a bunch of software engineers, testers, SREs and anybody else who can provide insight into how the system operates. Ask yourselves what could go wrong and identify the priority areas of the system to focus on and the different failure
7
July 2021 PROCESS & DEVELOPMENT scenarios that could occur. Once you’ve identified the failure to target as part of your experiment, your hypothesis should state what the expected behaviour will be when that failure occurs. You should also ensure you know the metrics and signals to look for to indicate the behaviour of the system. Do you expect an alert to fire somewhere? Do you expect to see a spike in traffic on a particular dashboard?
testmagazine.co.uk
even making changes to your monitoring and observability if you didn’t see an alert that you expected.
mitigate as much as you can against any cascading failure, or at least be able to quickly detect and recover from it.
Best Practices and Other Considerations
Have an escape plan
Remember we’re talking about taking an engineering approach, not deliberately causing genuine uncontrolled chaos. There are a number of ways to ensure your experiments are as safe as possible.
Make sure you always have a way of breaking out of the experiment if you need to, and that you can immediately roll back any changes to recover to a working state. Automated tools can help here again as they usually have a way of
For example, when a microservice crashes we expect an alert to fire in our monitoring tool and for the microservice to spin back up again, connecting to the database and message queue with no manual intervention. Simulate the failure and bring the chaos Run your experiment and simulate the real-world failure you identified. That could mean stopping a database instance or Kubernetes pod, DDoS-ing yourself with high network traffic, adding latency to requests, causing a spike in CPU or memory, and so on. There are tools available to help inject these failures, or it could be as simple as manually running commands and scripts on a machine. Observe system behaviour and validate the hypothesis Now you can validate that what you’re seeing is what you expected to see. Use the metrics and monitoring tools identified as part of your hypothesis.
Metrics, monitoring, and observability
Remember to also look for any additional unexpected outcomes. Watch for alerts firing in other areas of the system that warrant further investigation, be wary of a cascading failure that has had a wider impact than anticipated.
Ensure you know how you will detect if something is going wrong. Dashboards, metrics, logs, traces, and alerts need to be in place, or you are flying blind and will have no idea how your system is behaving.
There are two possible outcomes to your experiment - either the system behaved as expected, or you have disproved your hypothesis and something different happened.
Spend time also learning what ‘normal’ looks like in your system before you start the experiment, so you don’t misinterpret a signal. For example, the CPU may run at 40% during normal operations, but if you didn’t know that then it might look like quite a high value during your experiment. This is what Observability encourages as well.
Remediate any issues in the system Ensure you follow up and put in place any actions to prevent unexpected failures from reoccurring in the future. That might mean adding more automated tests into a CI/CD pipeline, scaling up to a cluster of databases rather than a single instance, adding a message queue between two microservices to increase decoupling, or
8
Minimise blast radius It’s probably best to avoid experiments that take down the whole production environment. Focus the scope of your testing on specific areas of the system and
immediately ceasing any failure injection and allowing the system to recover. Run experiments in production environments This often sounds scary to teams who are new to Chaos Engineering, but it’s the right thing to do. Production is where your customers live, and it’s where you want to test for resiliency and reliability. Production environments are always unique, however much you use Infrastructure-as-Code or have copies of databases. There is more traffic, different usage patterns, and other subtle differences you never even considered. Of course, it makes a lot of sense to practice with Chaos Engineering in a non-production environment first rather than just diving straight in, if that helps to give your team (and your manager!) more confidence.
July 2021 testmagazine.co.uk
PROCESS & DEVELOPMENT Automate chaos experiments and run continuously When you’ve run a successful experiment, look to automate it to run more frequently. This allows for continuous verification of any mitigations you put in place and helps detect any reoccurrence of the same issues you previously observed. Some teams even have this automated chaos happening continuously, at random, in their production environment. Netflix famously has tools in place that can kill microservices and even whole regions of cloud infrastructure randomly during certain time windows, the ultimate sign of confidence in your resiliency and ability to recover from failures.
Tools and Technologies With interest and maturity in this space going, there is an increasingly large array of tools and technologies that can help support you in implementing Chaos Engineering. For premium offerings consider Gremlin, which provides a full suite of tools for injecting failures into your systems and validate hypotheses. Or if you’re running on AWS, they now even offer ‘Chaos Engineering as a Service’ through their Fault Injection Simulator. If you’d prefer to go down the opensource route, then there is always the well-known Chaos Monkey, developed by Netflix. Or take a look at Litmus, which is a sandbox project under the Cloud Native Computing Foundation (CNCF). There are even some slightly wackier options if you want to make Chaos Engineering even more fun than it already is! KubeInvaders is a Space Invadersinspired interface for killing Kubernetes pods. Or there’s Kube Doom which uses a similar concept built around the old video game.
Conclusion Chaos Engineering is a great way to test and improve the reliability and resiliency of your systems, and ultimately enhance the experience of your customers. As systems grow in complexity and frequency of change, so must our approach to protecting against failures and adverse effects. Approach methodically, run experiments frequently, reap the benefits of increased confidence in your systems, and have fun!
9
July 2021 testmagazine.co.uk
5th - 6th October 2021 at The British Museum, London
DevOps is a culture, movement or practice that emphasises the collaboration and communication of both software developers and other IT professionals, while automating the process of software delivery and infrastructure changes. It aims to establish a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably. Implementing the culture and practices of DevOps can be easier in small, lean organisations where engineers, developers, and IT operations all operate from the same office. However, it is likely to be a more difficult and complicated transition in large, established organisations with complex legacy systems. Here, organisations can be plagued by siloed business functions, with little or no communication across different silos. If an organisation wants to change critical IT infrastructure, achieving compliance and ‘buy-in’ from all departments can prove challenging. With DevOps it can be different – when development and operations collaborate and work together towards the same goal, the results can be extraordinary. Organisations regularly report increased deployment speed and frequency, higher quality product output and lower failure rates.
REGISTER 10
devopsonline.co.uk/national-devops-conference
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
The best QA Testing skills to have in 2021 As the field of Quality Assurance (QA) is constantly evolving, there is a growing need for more quality products and experiences within enterprises. Hence, it is expected that many areas in Quality Assurance will expand in the coming years. QA testers and experts will be more required than ever in IT teams, so we have asked leaders in the industry to share their insights and advice on the best QA testing skills to have in 2021.
QA testing in 2021 Quality is, and has always been, an essential part of any software development team. Its role is even more vital as quality is a top priority for businesses to stay on top of the competition. The objective of Quality Assurance and testing is enduser satisfaction, Divyanshi
Asthana states. Thus, the role of a QA engineer has evolved from finding defects to actually thinking as the end-user. In order to keep up with the many new technologies coming into the market, we need more testing and more quality. QA testing is definitely getting more important as it is one of the important pillars in product development and we need all pillars to be balanced so as to support the roof! Deborah Reid thinks similarly. According to her, testing always has, and always will be important. More businesses have gone online, and more people are shopping online since the pandemic began, and with more competition arising,
Deborah Reid
Deborah Reid has been testing for 10 years and is currently Lead Tester at Bloom & Wild specialising in exploratory testing, with an interest in accessibility testing, for which she has a course on Ministry of Testing.
Divyanshi Asthana
Divyanshi Asthana works for IQGeo as a Quality assurance test engineer. She is skilled in Manual and Automation Testing as well as Mobile, IOS, Web and Desktop application Testing. She also possesses a solid understanding of the SDLC & STLC and is experienced in Agile and Waterfall methodologies.
Steve Davies
Steve is currently the Test Manager heading up all Testing activities in the MAG IT Department. He is responsible for Project and Platform Engagement along with resourcing, budgeting, Test Strategy, team development, Test Environment Management, and Tooling. All through his career, he has always been focused on delivery to the customer and ensuring they are satisfied. He believes that the key to success in any project is to enable the concept of a ‘team’ regardless of the makeup of the project.
11
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
QA testing is definitely getting more important as it is one of the important pillars in product development and we need all pillars to be balanced so as to support the roof!
customers need to have a good first experience to continue using a company’s services. Giving customers a good first experience relies on a lack of bugs, a clear journey, and seamless payment.
In a world of vast choice to customers, the emphasis is on teams to produce, not just quickly but to a high standard, QA is then vital to that goal.
Hence, Deborah is confident that there will always be a place for manual testing. Automation can do some of the painful work, but exploratory testing and riskbased testing will always be needed as a manual role. She also hopes that this is reflected more in job descriptions etc., so not all testers feel pushed into automation and that their manual skills are not deemed redundant because they are so valuable. Steve Davies believes that QA testing will certainly continue to grow in importance, both in terms of the traditional responsibilities and in terms of how a QA Tester should use their skillset and mindset to influence the overall team and project. In a world of vast choice to customers, the emphasis is on teams to produce, not just
quickly but to a high standard, QA is then vital to that goal. Besides, as processes and tooling evolve, the role of the QA Tester moves with it. Even in a more DevOps or Microservicesbased environment, whilst the endpoint testing may be reduced or fully automated, QA can still influence the team by ensuring best practices are established, enforced, and shared by all throughout the development cycle.
What do you need to become a QA Tester? According to Divyanshi, on the academic side, you should have a relevant degree or training certificate or, if you are already in any software-related job and have a QA mindset, you can easily move to a QA role. This often varies depending on organisations and countries. In terms of mindset, a QA tester should have critical thinking and problem-solving mindset. Indeed, a skilled QA tester knows how to think from a customer’s perspective throughout the entire software development cycle and should be flexible with different testing techniques. Besides, a QA tester should be a quick learner as the project is not on their time schedule it’s on the company’s, so they must get with it in order to move the product further. For Deborah, there are lots of skills that are often labelled as ‘soft’ but are so important. Some of these are curiosity, attention to detail, inquisitiveness, passion, strong written and spoken communication, the ability to build relationships with colleagues, be trustworthy, flexible, and willing to learn. Steve adds that critical thinking and curiosity are a must! Indeed, the best testers will have the ability, and confidence to question everything from the process, the approach, and the actual functionality under test. In terms of soft skills, the key ones are curiosity and questioning mindset, collaborative and communication skills, open-mindedness when considering approaches, and strong analytical skills in order to evaluate issues that are discovered and focus the team on the most important resolutions. Critical thinking and curiosity are a must! On top of that, the role has changed dramatically in recent years. A good tester requires flexibility of mindset, approach, and capability. For example, in the relationship between SDETs and
12
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
manual testers, there needs to be an understanding that ‘one size doesn’t fit all’, and it’s vital to look at things rationally and decide on the best approach for any single piece of work Finally, Steve highlights, collaboration, and communication are vital skills in the modern QA Tester armoury. From working with the business to ensure you understand what they require, collaborating with developers to ensure that understanding is shared prior to commencement, and acting as a link between all parties to ensure standards are adhered to whilst keeping the focus on the delivery. Divyanshi adds that there can be huge variations in technical skills needed for a QA person, such as: • Understanding the operating system, application & environment on which they are testing. For e.g., people testing a Unix-based application need to at least know Unix command; people testing on mainframe need to know TSO/ISPF commands; web tester requires a basic understanding of browsers, HTML, CSS, etc • SQL and understanding the relational database as sometimes QA need to query in a database for mining or creation of test data or to validate results. • The ability to think of scenarios including the boundary conditions and the attitude of what could possibly go wrong is most important. • In some organization, knowledge of automation and CI/CD (continuous integration & continuous delivery) fall in the category of basic skills only. So that means knowledge of a range of tools such as QTP, Selenium, Jenkins, etc • At least one programming language with a clear concept for test automation. According to Steve, it can be advantageous to have an appreciation and understanding of software, this is not quite as relevant in a Software Testing role, but in a QA role you are responsible for the Quality across the entire process, and that potentially could include more traditional Development tasks such as coding conventions, unit testing, and repository management. Hence, the more knowledge a tester has in this area, the more they can
recommend the correct approach from a Quality standpoint. In addition, in order for the tester to apply the best methods to test a specific delivery, the more technical skills they have at their disposal the better, whether that be Automation, Performance Testing, API Testing, etc. They may not be essential, but they certainly will not hinder the QA Tester.
Never assume you know everything you need to know!
QA & QE Testing For Divyanshi, Quality Assurance “assures” quality of the product, but quality engineering (QE) drives the development of quality products and processes. With QE, everyone on the project development teams understands the common business requirements and they develop and validates those requirements. Deborah also notes that QA traditionally means quality assurance and she highlights that no one, especially a tester, can assure quality. She even adds that QA could stand for Question Asker! Indeed, the role of a QA tester is more about uncovering information, advising the team
QA Testing is a Preventative activity helping to reduce the risk of bugs being introduced. 13
July 2021 PEOPLE & LEADERSHIP
Never undervalue your own importance and what your skill set, and mindset, can bring to a team. on findings, exploring the system to find what it does and doesn’t do, can and cannot do, should and shouldn’t do, and report bugs. For Steve, Software testing is in some ways a subset of a QA Tester. A software tester is expected to explore the system, product, or functionality under test and to find any bugs within it. A QA Tester could still have that core task as part of their remit, but in addition, has more widespread responsibilities and looks at the governance and implementation of Quality across the whole lifecycle. This can range from working with the Project Team on specification review and management, with the developers on code management and unit testing, and during warranty, periods to ensure the handover to the customer is a success. Moreover, Divyanshi states that software testers are often responsible for creating test-product documentation and have to participate in testing-related walk-through. Steve adds that Software Testing is a
testmagazine.co.uk
reactive activity, finding bugs that already exist. QA Testing is a Preventative activity helping to reduce the risk of bugs being introduced.
Working in QA and Software Testing Deborah believes that each role and company is different but it’s important to pick your battles when it comes to bugs or issues you find. Know which ones are worth pushing for and which ones can wait, find data to back up your findings e.g., users on X browser, % of customers who see that page can help. She also adds that you may not always be working with people who understand or respect the work of testers, so you need to build trust by working with them and not simply poking holes in their work or come across as delaying releases. You need to work as a team! Steve emphasizes that QA testers should be prepared to be constantly questioned. No matter how good a team is, no matter how collaborative they are, there is always going to be a perception that the rest of the team are trying to produce and progress whilst the Testers are trying to block that progress. For Divyanshi, testers should be prepared to handle project management, customer support as well as do some independent work. This is where the vital collaboration and communication skills need to be utilised the most: to educate the wider team in the value of the Test function and demonstrate where value is added, and that time is actually saved, and velocity
increased as a result of increased accuracy of the initial development.
Finding opportunities in QA testing In order to grow in QA testing, Deborah advises to mentor and help other testers, share your knowledge, learn new skills perhaps accessibility testing, security, etc, demonstrate your value/the value of testing to others (not just testers), suggest improvements to test processes. In terms of growing in your specific role, talk to your manager about what they’re looking for/expecting from you to progress too. They should be able to guide and support you into growth and potentially a promotion! To grow in QA Testing or in any field, Divyanshi highlights that you should always be open-minded, keep some room for improvement, learn from self or other’s mistake, and grab the opportunity whenever possible. Never assume you know everything you need to know, Steve underlines. Having worked in upwards of 20 test teams in his career, he says that each one works slightly differently in terms of setup, process, roles, and responsibilities. Hence, you need to keep learning. The more methods and approaches you have at your disposal, the more you are likely to have the right one for any situation you find yourself in. This also applies to the technical side of the role, the more tools, and skills you have at your disposal, the more likely you are to have the best solution for the team you are in.
What advice would you give to someone who wants to become a tester? Deborah recommends joining the Ministry of Testing and taking part in their events – conferences, courses, talks, etc. She also advises to follow testers on Twitter, get involved in conversations about testing, take care with attention to detail when applying for roles as that’s a key part of the job, like spelling mistakes, etc. Steve advises to keep learning and keep evolving your skills. Use the community, whether via gatherings and meetups, online groups, blogs, or seminars. There are so many people out there with decades of experience and knowledge, don’t be afraid to draw on it. He also recommends to never undervalue your own importance and what your skill set, and mindset, can bring to a team.
14
July 2021 testmagazine.co.uk
Now in its fifth year, the DevOps Industry Awards celebrate companies and individuals who have accomplished significant achievements when incorporating and adopting DevOps practices. The awards are open to all businesses, companies & organisations regardless of their size, stature and location. Over 100 companies will be entering in this year’s Awards program & 100s of industry professionals will be attending the ceremony.
ENTRIES NOW OPEN ENTER NOW devopsindustryawards.com 15
July 2021 INTERVIEWS
testmagazine.co.uk
Dono Greef Interview Test Magazine Dono Greeff is the Quality Assurance Manager at GAN. Dono takes pride in being a logical, practical and strategic leader dedicated to help his teams to solve challenges effectively. He strives to foster teams into collaborative setups where all work towards a common goals. His career started within the QA sphere, however, as that space is evolving so is he. During his career, Dono has led the transformations of QA and engineering functions within Currencycloud, Earthport, ClearBank and most recently Gelato. These transformations have ensured measurable increases in code quality and delivery along with implementing stable automated processes. He has good experience in building strong engineering teams and aligning them into existing, or helping to create new, cultures. 16
July 2021 INTERVIEWS
testmagazine.co.uk
What is your current role and responsibilities? As the QA Manager at GAN Plc, I am responsible for driving the message of quality throughout the business in our delivery. With the GAN QA Team, we act to verify that a product has been delivered to the quality standards agreed with the business, whilst ever pushing that bar higher. With this, our reach goes further than just testing or governing quality gates, but we look at all processes that we touch to suggest or work towards iterative improvement.
What inspired you to get involved in the IT industry? I have always been a techie at heart, this started as a teenager coding games on my then commodore 64. After a few years of working in hospitality, I stepped into a software support role with ambitions of learning development and eventually landing a developer role. As it happened, I got an internal opportunity to work in the QA team and fell in love instantly.
Can you tell me about your journey? I started as a manual QA with Micros, but my natural tendency to get involved with code got me started on automated testing with Cucumber and Ruby. From there, I moved roles and pursued a more SDET type path until at CurrencyCloud I got offered to lead the QA team. It was a baptism of fire for sure, learning a lot about leadership, often from mistakes. Again, I found myself really enjoying the new change with a focus more on strategic implementation. I then have progressed into other leadership roles helping companies drive for better quality processes with higher levels of efficiency. At GAN, I am guiding the team into the exploration of similar ideas to achieve a higher quality bar as a team, whilst being mindful of the ‘modern’ delivery approach and challenges around delivery timelines.
Who do you look up to for inspiration or mentorship? One real driver is my first QA manager, Paul Dillon, who I felt truly helped show me what a good leader is. He trusted us but at the same time was able to guide and enable us to succeed. From there, I have taken inspiration from
many leaders where I personally believe a message or approach aligns with where I am and who I want to be. I take a lot of this with internal reflections so I can continually improve myself. No one will be a better critique of me than myself.
you need to transition to a supportive role and let others do their job. A BIG thank you to CurrencyCloud for the guidance you gave me along with some great skills training.
What is your expertise and How do you keep your team what is a typical day for you? motivated despite conflicts and Truthfully, I am probably a jack of all obstacles? Conflicts are usually down to opinions and debate, I promote conversation within my teams so we can discuss ideas, different opinions, and ideas. So long as we are enabling constructive communication and ensuring we are both mindful but respectful that feedback can be hard, we should see a successful outcome. Even if it means multiple conversations. Obstacles I treat as challenges to solve. Motivating for this is simple as we highlight the wins and benefits for all sides. If there is only 1 side winning from this, then we should reconsider/re-evaluate the solution to ensure successful buy-in.
What are your current goals? My current goals are to prove my theories and ideas around software delivery from a Quality standpoint in GAN. I believe that as a tech team we have a great opportunity to be the tech leaders within the online gambling sector.
What are you the proudest of in your career so far? To pick one would be too hard. I am proud of the progress I have made in my career delivering improvements to the companies I have worked with along the way.
trades, master of none. But this is largely purposeful. I like to focus on solving the problem in front of me and pulling on the required skills to overcome this. If further learning is required, I adopt that quickly and again focus on what is needed. As for leadership, I feel my strategic mindset is what really sets me up well for this role. I am also compassionate and empathetic; these two traits help me to truly relate to my team’s blockers/obstacles enabling me to enable them better. There is no typical day within leadership, you are there to support the team and company, with that many curve balls will come at you daily.
What is the favourite part of your job? The strategic element for sure. I love to work towards a solution whilst thinking about the next few steps as part of the solution too. That and helping my team grow. It is incredibly rewarding to support someone on their professional growth path, through mentoring and coaching.
What have you learned from your experiences so far?
I am also proud of the several people that I have worked with and helped to grow into their next steps and where they are today. Just being a small part of that makes me incredibly humble but also proud. There are a few of you so I will abstain from making a list.
That you cannot please everyone. Hands down this is probably one of the biggest lessons I have learned. Whilst you can make sure you are considering everyone, giving particular interest to people who may need extra convincing, whilst acknowledging that it may not be what they wanted/expected.
What has been your greatest challenge?
Finally, do you have any advice for aspiring engineers and testers who want to grow in the tech industry?
Learning how to be an effective leader. Back in the days in my first management role I definitely struggled with the Do-er to Leader transition. It took some strong feedback and home truths for me to realize the power that comes with delegation. It is not about a lack of trust but rather a lack of experience with effective leadership. As a do-er, you generally have complete control of your work, whereas as a leader
Just reading or attending courses will not help you alone, you have got to reflect within yourself to see how you align, feel or even need to grow to achieve what you want. Other than that, reach. Without reaching for aspiration or dream you will not get there.
17
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
Quality Management: ''Do less with more'' “Here’s half of the agreed budget, please do everything in half of the time and by the way, keep the quality.” Ever heard something like this from your manager? Probably yes… In the past 10 years, software development has been evolving rapidly with the appearance of new tools which are driving software engineering into becoming more creative in the ways code is created, tested, and deployed. Modern business needs have also been accompanying the same drive. Software companies have innovated in their business models with the idea of accelerated development and all with the impetus of quality. Both software development and modern business needs seem to demand much more from companies, managers, and engineers than they did ever before. Significant considerations have to be
18
given to budgeting, managing deadlines and at the same delivering high quality in terms of development. But the demands extend well beyond the standard business logic, and to considerations with regards to, for instance, security, performance, accessibility, infrastructure, compatibility. So how do companies keep up? How is quality achieved with regards to all of these parameters while our teams are getting smaller and with time and budget constraints in software testing? Automation seems to be the ‘answer’, but there are many companies that still heavily rely on manual testing, or the automation
Luis Mendes Luis Mendes is an engineering manager with over ten years of experience in different areas of software development. He has contributions in different business areas from research, to telecommunications, security, banking and lastly in publishing. At Elsevier, he is currently responsible for overseeing and driving the testing architecture for some of the company’s core products. His main interest is in how to optimize team’s working cultures by maximizing the quality of their work to support business demands.
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
they build is not adequate hampering quality and creating more work for the future. The outcome? New project, new (testing) code. What we see is a lot of differences across code in projects making alignment and integration for future projects extra challenging, and contra-productively time-consuming. As software development shifts in priorities, architecture, tools, and businesses become more demanding than ever, creating a sustainable architecture for software testing seems fundamental. As an engineering manager, one of my core responsibilities is to find new ways to efficiently deliver more quality to the work we produce in order to support business development in a sustainable
Software companies have innovated in their business models with the idea of accelerated development and all with the impetus of quality. manner. So how do I improve the output quality of our teams? In particular, how do we, for instance, test more with a limited amount of people while keeping quality, considerations of numerous parameters to cover, and time and budget limitations? Over the years, one of my focal points has been to “Do less of continuously test code building, with more focus on imbuing quality in the
time we have a new project. Creating a sustainable (testing) architecture provides alignment among projects within a company, improves code quality, and shortens time to production. Below I share key elements which drive sustainable testing architecture and that can support your business development. The right culture. Understanding why we are building things in the way we are and how does that support the end-user/ customer. Team(s) collaboration is key to expanding your business in a sustainable way and making sure you do not constantly keep building legacy projects. Understanding why and how testing is relevant in your software development life cycle and how reusability supports innovation will motivate the team(s) to be more conscious in the process of (testing) code development. The “right” automation. Templating, templating, templating (i.e., building “Lego” blocks that can be reused by other teams or team members). Every time that we invest time in one testing initiative, we should try (if possible and if it makes sense) to build testing code in a way that can be reused by others. When generic enough to place it in a common repository where other engineers can contribute to it and where it can be used for sharing across products. Since reusing is key, it is therefore important that when we write these building blocks, we write clear code. Scaling the quality of your testing code. Extend your testing code
“Do less of continuously test code building, with more focus on imbuing quality in the testing code”.
testing code”.
with other areas besides business functionality.
It is not enough to build testing code per se, it is important to build testing code with the right quality and making it sustainable. What is critical to think about is reusing (testing) code so that there is no need for a completely new (testing) code or architecture every
Typically, the main approach from software engineers in testing is to cover every test case to the best of their knowledge while applying testing techniques. However, as mentioned before, software development requires
19
July 2021 testmagazine.co.uk
In its third year the North American Software Testing Awards celebrate companies and individuals who have accomplished significant achievements in the software testing and quality assurance market. Enter The North American Software Testing Awards and start on a journey of anticipation and excitement leading up to the awards night – it could be you and your team collecting one of the highly coveted awards.
ENTER NOW softwaretestingawards.ca
20
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
Team(s) collaboration is key to expanding your business in a sustainable way and making sure you do not constantly keep building legacy projects.
Automation by itself is not sufficient to solve all of the challenges posed by increasing software development and business demands and can in fact create more legacy for the future of your company
the engineer to be able to deliver not only the business logic but also other non-functional areas implying higher quality and more demands in terms of testing code. One of the ways to achieve this scalability in a company is by having a software engineer focusing on a particular topic of their choice related to the non-functional area. It is what we could call building knowledge expertise. One person could, for instance, focus on security and this can become a part of the engineer’s growth/career path during that particular year. They would expand their knowledge in the topic and then during designated ‘’knowledge sharing sessions’’ share their knowledge with the team and what they have done for their team in the relation to the topic so that the other members of the team can also adopt the already developed work. This allows engineers to not only grow their expertise but also to bring more quality to the testing code they produce, as well as sustainability to testing architecture by providing reusability for others. Expanding the knowledge share. You are not alone in creating testing code. Sharing acquired knowledge in a specific functional and non-functional area just with your team members is however not sufficient. Optimally, one should strive towards alignment and sharing
across the company to avoid building new testing code every time for every project. Making sure the teams share what they have built across the company, and how it leverages other groups to deliver faster, become more efficient, and grow their knowledge in different areas, is equally important as scaling the quality of one’s testing code. Conclusion. Automation by itself is not sufficient to solve all of the challenges posed by increasing software development and business demands and can in fact create more legacy for the future of your company. It is equally important to treat your (testing) code as development projects and share your code with other teams. Engage in specific areas of expertise and make it easy for others in your company to access this knowledge. Be critical and able to understand why we build things in the way we are and keep our end users/customers in mind in the process. But do take the advice with some consideration. These scaling/efficiency approaches do not apply to all companies/teams. Context is always key when making certain decisions for your teams. This approach seems to work for larger businesses with a larger group of teams where collaboration should spur innovation and sustainability for your company.
21
July 2021 PROCESS & DEVELOPMENT
testmagazine.co.uk
How can AI and automation revolutionize QA testing With digital transformation slowly taking over every industry, enterprises are looking to change the way quality assurance (QA) operates and keep up with how testing is evolving.
To do so, using artificial intelligence (AI) and automation is becoming inevitable. Hence, we have then gathered some opinions on the role AI and automation play in QA testing.
AI and Automation in QA Artificial Intelligence (AI) and Machine Learning (ML) are causing a lot of excitement in software testing and QA circles… Test Automation has been around for years but has always been dependant on human intelligence and decision-making in terms of
22
deciding what tests to run and when, Paul Davison states. This, added to the fact that traditional test automation usually requires a fair amount of maintenance in an Agile world. But, what if a tool could analyse an application and generate its own tests? What if a tool could analyse test statuses, recent code changes, code coverage, etc to decide which tests to execute, and then execute them? What if that tool could generate test data and even ‘self-heal’ to adjust to changes to the application it’s testing? This is some of what AI Automation promises. Thus, there are 3 key steps in implementing machine learned AI Automation.
Ron Quinto
Ron is currently working as a Software QA Engineer for McNichols in Tampa, Florida. He has over 20 years of experience in black box testing of consumer software in multiple languages and Web browsers on multiple operating systems. Ron has at least 4 years of experience in creating and running automated software tests, using multiple automation software packages. He has led teams of QA testers in the quality assurance efforts for multiple software products.
Usharani Sundaramoorthy
Usharani is a Professional Service Manager, Quality at Miipe Inc. in Toronto, Canada. She has been in IT for more than 18 years in different domains including Banking, Insurance, Healthcare, Hosting etc. She believes in handling every challenge with a positive attitude and that continuous learning and exploration keep the mind young and energetic. As a working mom, she likes having a good work-life balance by planning and organizing her work with yoga and meditation.
July 2021 PROCESS & DEVELOPMENT
testmagazine.co.uk
• AI Training: The ML model needs to be trained on a specific organizational dataset, including the codebase, application interface, logs, test cases, and specification documents. • AI Result Generation: The ML model generates test cases, checks existing test cases for code coverage, completeness, accuracy, and even performs tests. In all cases, a human tester needs to validate the output and ensure that it is usable. • Continuous AI Improvement: Regular use of the tool leads to an increase in the training dataset, meaning the AI system keeps learning and improving. Moreover, Usharani Sundaramoorthy notes that AI and automation are necessary to increase the efficiency and productivity of any systems development life cycle, especially as market trends
are evolving quickly. Indeed, it has now become simply impossible to deliver high quality without properly defined frameworks and test strategies. Hence, AI and Automation embedded in manual testing will undeniably play key roles in enabling quality delivery in fast-paced and demanding environments. Automation can be used where the QA testing involves redundant and repeated tests so as to make testing faster and more efficient. Besides, it can also be used when testing does not require much human intervention and critical thinking.
AI and Automation embedded in manual testing will undeniably play key roles in enabling quality delivery in fast-paced and demanding environments.
According to Usharani, the most common type of testing that is used for automation is regression suites. This can be applied either in waterfall or in an Agile framework and in continuous integration. She also notes that automation can be used in API testing as well, where it can identify integration errors faster.
Paul Davison
Paul is the Managing Director of Seriös Group. He is a highly experienced and motivated test professional who has spent the past two decades both defining, and delivering against, test strategies for major programmes and projects across both the public & private sector.
Automation can be used where the QA testing involves redundant and repeated tests so as to make testing faster and more efficient
23
July 2021 PROCESS & DEVELOPMENT
AI Automation will allow testers to develop beyond traditional manual and automated testing models and move towards an AI automated and precision-based continuous testing approach.
testmagazine.co.uk
Furthermore, automation can be used in performance, functional, and load testing. Indeed, automation can be implemented to validate the UI screen and for back-end validation. It is important to note that DevOps and CI/CD pipeline play a key role in implementing Automated Tests from development up to the implementation and Post Release Monitor. AI can be used in scanning millions of codes, analysing hundreds of defects, and generating reports. The results of it can then be used to make decisions and find the differences in UI changes. Ron Quinto highlights that AI and automation can be used in QA by writing and running test cases that draw upon the user’s previous behaviour in the same exact situation to predict what and how the user will use the system’s controls (buttons, dialog boxes, etc.) to do what they need and want to do.
AI and Automation for QA testers AI and Automation help QA testers develop more efficient ways of validating large and complex solutions in very little time, Usharani states. Indeed, it allows
testers to focus more on testing that requires human intervention and critical thinking such as end-to-end integrated user flow, and thus, eliminating costly defects. This also helps in keeping systems in check and making the system more reliable and durable. Paul also highlights that AI Automation will allow testers to develop beyond traditional manual and automated testing models and move towards an AI automated and precision-based continuous testing approach. For QA testers, AI will alter their discipline, with machines undertaking most of the test execution and enabling organisations to introduce more efficient testing methodologies. Software testers will adopt new supervisory roles training AI to execute tests, analyse metrics and work through large data sets efficiently. This shift will require testers to develop new skills such as creating machine learning algorithms, understanding data flow, and mathematical models, and conducting predictive analysis to form new AI strategies. Moreover, Ron underlines that AI and automation will bring to QA testers a certain level of confidence that the test cases that they write, and run can accurately predict how the user will use the system to do what they need and want to do. Emphasizing that point, Usharani adds that this allows QA testers to be less stressed and spend less time on monotonous tasks. QA automation makes QA testers gain more credibility and strength in the IT world. QA testers will then become more and more important within IT teams as the demand for QA architects will rise in the future.
The benefits & drawbacks According to Usharani, using AI and Automation in QA can lead to increased efficiency & productivity, fewer cost, reduced rework, fewer human errors, unbiased tests, better satisfaction, and higher ROI (return of investment).
AI Automation tests should be more complete, scalable, reusable, and resilient to change than traditional manual or automated tests. 24
For Paul, AI Automation tests should be more complete, scalable, reusable, and resilient to change than traditional manual or automated tests. AI Automation then facilitates shorter software development lifecycles by enhancing accuracy, giving greater code coverage, and delivering faster results with increased efficiency. AI and automation enable QA to write less inefficient and more accurate test cases.
July 2021 PROCESS & DEVELOPMENT
testmagazine.co.uk
All this will then lead to saved time and money, better quality code, and a reduction in software time to market. However, QA might need to give AI and automation more time than other approaches because AI and automation require a more accurate level of confidence in the user’s actions in similar situations. Thus, this level of confidence requires a lot of trial and error, which takes a lot of time.
The integration of AI and Automation alongside Machine Learning is going to be key in the future, it will reduce the direct involvement of developers and testers in repetitive tasks.
Besides, Usharani continues, QA testers might be limited by their knowledge in AI and adaptability to learn new technologies. Indeed, using AI and automation will require QA testers to change their mindset and moving towards more tech-based QE. Hence, QA testers will have to adapt and change the way they think to creatively apply strategies and scenarios for better solutions. Paul draws two main challenges concerning AI and Automation in QA: • The Human Element: Testers will need to develop the capability to build algorithms and models and undertake analysis to help define the AI Strategies. In turn, this requires that the tester doesn’t feel threatened, once the AI is implemented where is the need for the tester, are they essentially making themselves redundant? The answer to this is of course a resounding no. While it is predicted that AI will take over up to 70% of repetitive testing the testers need to be assured that they’re not replacing themselves. More than they will be able to focus on using their skills to ensure the remaining 30% of coverage is tested in an appropriate way. Currently, however, demand for qualified AI testers is outstripping the supply, until the level of AI expertise increases the advancements will be limited. • Data Cost: In order to process and analyse data to extract meaningful information it needs to be presented in a consistent format and structure to enable effective AI training. For many organisations the costs of getting their unstructured data into a state to be consumed by AI is prohibitive as they simply wouldn’t see a return on investment during the lifecycle of a project or programme of work.
The future of AI and Automation in QA Paul believes that the integration of AI and Automation alongside Machine Learning is going to be key in the future, it will reduce the direct involvement of developers and testers in repetitive tasks. Most test automation tools will run tests (that they are instructed to run) and present results that then have to be interpreted by a QA Tester. Imagine when the Automation is integrated with an AI capability that can review the test suite status, analyse code changes since the last execution, look at the code coverage requirements before deciding which tests to execute and running them. When you further extend this capability by introducing machine learning, you then allow the tool to essentially improve what it is doing by collecting and analysing the data produced during the testing process.
Usharani thinks that QA automation will embed a lot of artificial intelligence. Automating testing should be more friendly and easier, and hence, AI should play a vital role. Testers will have no time to sit and write code to automate 100s of scenarios integrating different platforms etc. Overall, Usharani emphasizes that AI and Automation together will dominate the testing world in the future in all business domains and QA testers will have great scope and growth. Ron also thinks that now and, in the future, AI and automation will play a more important role in QA. Paul adds that having worked in the testing industry for over 20 years, he believes that we are moving into the most exciting period of testing transformation that he’s ever seen during his career.
25
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
Leading a QA Team Quality Assurance, as a function, has come a long way. There is still no consistency in how each company defines the function. When we talk about senior leadership in most companies, most of them come from a Development background and despite everything, there is still prejudice in understanding QA and a gap in understanding what QA as a function can bring to the business. From my experience, I have been successful in making a mark on the glass wall. Yet, I am constantly iterating through words and actions how QA is a cross-functional team that bridges the gap between Business and Engineering teams. I am also working closely with Marketing and Customer service in order to understand the perception of Good Quality and build the
26
castle around it. Quality is often mistaken as delivering a product/service with lesser issues/defects. Although that is true, it is just the first step in building Quality as a culture. Being in QA for more than a decade, there are many things I have learned, implemented, and yielded benefits from. In my past few roles, I have been instrumental in building the QA function from scratch, and there are a few things that have worked well. I am a believer that a suit needs to be always tailored to fit perfectly and it does take time, resilience, and commitment. If you are looking for something to run longer
Priyanka Mondal With over 16 years in QA, Priyanka has gained experience across various domains and industries. Over the past 8 years, stepping into Senior leaderships roles have led her to be instrumental in setting up and building QA processes from scratch as well as aligning with existing QA setups and improving them by leading welldefined strategies that bring together business needs in terms of delivery deadlines without compromising the delivering Quality of code. She is also driving QA operations at organisation level and setting up standard process and quality gates that aid in building confidence level in the quality of code released.
July 2021 PEOPLE & LEADERSHIP
testmagazine.co.uk
and successfully, you need to make extra efforts in communication through the participation of everyone involved. Break them into consumable chunks, by knowing your audience first.
Phase 1: Share the responsibility of Quality First of all, you have to encourage QA to work closely with businesses in order to understand the requirements and be able to envision how to write testable tickets, with well-defined acceptance criteria. You also have to encourage developers to test their own work, to have as much unit testing, integration testing as possible – not an exhaustive list, but do the tests that can validate that the
code runs as expected. Choose the right developer support tools, like linting, that helps improve code quality, and doesn’t require a tester to point it out. Don’t forget to involve Developers and Product managers in test planning. You need to avoid duplicating tests but enhance test coverage through end-to-end tests. Always prioritize and test as well as keep the business in the loop wherever possible on your testing approach. Never measure QA effectiveness by how many defects QA is raising but measure it by a number of issues raised in Live.
I am constantly iterating through words and actions how QA is a crossfunctional team that bridges the gap between Business and Engineering teams.
Measure, improve, repeat > Retrospectively.
You have to encourage QA to work closely with businesses in order to understand the requirements and be able to envision how to write testable tickets, with well-defined acceptance criteria.
27
July 2021 PEOPLE & LEADERSHIP
The most powerful way of doing so is by introducing and encouraging positions and job titles that are at par with developer job titles.
testmagazine.co.uk
Always be prepared to change the test plan, so I prepare Plan A and Plan B (when there is no time for testing) – and you guessed it right, it’s mostly Plan B that is finally executed!
Phase 2: Introduce a Quality mindset Yes, Phase 1 is mostly what most companies do very well; but it is going that extra few miles that will give your customers a positive feeling and earning revenue for the company.
We hear about the Head of Engineering more than we hear about the Head of QA. We come across functions where the VP of Engineering, comes from a Development background, but that isn’t true for a person with a QA background.
In order to introduce a Quality mindset, you need to work with various business functions, DevOps, Digital Marketing, SEO teams to understand non-functional requirements, not only limited to performance and security, but to go beyond that. Areas like A11y, I18n, WebApps, NativeApps, Competitor study, and the likes of it. At the end of the day, we are all end-users of all products we use in our day-to-day life, having to explore all functions to identify and collect the bundle of ideas.
I have come across several organisations that hire SDET, who are basically developers who know how to test, so don’t say you are hiring a Tester, say you are hiring a developer. There is a Full Stack developer, so there should be Full stack testers too. Testers usually test both frontend, backend, at par with emerging and evolving technologies, but the recognition is low. Test architect is a role, seldom heard of, but very much required especially for larger teams, where a lot of thinking and planning is required.
And don’t forget to mix fun with work – have A/B test drives, Bugathon, etc.!
So, recognize and empower your QA team. The journey has just begun!
Phase 3: Empower the QA team Phase 3 is essential, although it is
28
something that is radically lost by senior management: Building the QA confidence. The most powerful way of doing so is by introducing and encouraging positions and job titles that are at par with developer job titles.
July 2021 testmagazine.co.uk
5th - 6th October 2021 at The British Museum, London
DevOps is a culture, movement or practice that emphasises the collaboration and communication of both software developers and other IT professionals, while automating the process of software delivery and infrastructure changes. It aims to establish a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably. Implementing the culture and practices of DevOps can be easier in small, lean organisations where engineers, developers, and IT operations all operate from the same office. However, it is likely to be a more difficult and complicated transition in large, established organisations with complex legacy systems. Here, organisations can be plagued by siloed business functions, with little or no communication across different silos. If an organisation wants to change critical IT infrastructure, achieving compliance and ‘buy-in’ from all departments can prove challenging. With DevOps it can be different – when development and operations collaborate and work together towards the same goal, the results can be extraordinary. Organisations regularly report increased deployment speed and frequency, higher quality product output and lower failure rates.
REGISTER devopsonline.co.uk/national-devops-conference
29
July 2021 INTERVIEWS
testmagazine.co.uk
Michael Robson Interview Test Magazine Michael Robson is the Head of Quality Assurance and Security Testing for Global based financial services. Mike is an experienced and accomplished individual with over 35+ years of experience in creating and delivering solutions over a wide variety of organisational environments. Mike is happy to share some of his experiences from when he started in industry to where he is at today to hopefully inspire the next generation.
30
July 2021 INTERVIEWS
testmagazine.co.uk
self-generate their own ecosystem. What is causing the obstacle, what as a team can we do, and do we need to get creative are the questions I ask the team. I’m looking for people who want to lead and manage to get over the obstacle. That team empowerment keeps my teams motived
What are your current goals? Grow older disgracefully within the bounds of the law. Mike Robson speaking at Bug Aloud Kaunas
What is your current role and responsibilities? I’m the Head of Quality Assurance responsible for software quality assurance making sure delivery teams follow a well-documented agile SecureSoftware Development Lifecycle (DevSecOps).
What inspired you to get involved in the IT industry? I’m not sure if I was inspired to work in IT after getting my first computer in 1981, a Commodore VIC 20 which predates the Commodore 64, or if it was due to an opportunity at work, led by my curiosity of if could manage to get that tin box in the corner of the office to work. Of course, it was followed by some failures and successes that inspired me to want to learn more about IT.
Can you tell me about your journey? I started out in engineering after leaving school, followed by working in telecommunications. My line manager at the time joking said “can you fix that tin box in the corner, the one that keeps breaking?” I literally had no idea, so I read the manual, press a few buttons and the PC started working. That was the start of the journey into IT. Over the years I moved around adding to my experiences gaining knowledge in delivery methods, practices, standards, and new technology. I’ve learned programming languages so I could automate tests that I had written to test the functionality, performance,
and security of the software. I’ve gained accreditation to help increase knowledge and/or establish any gap in my knowledge. The accreditations also helped on a couple of occasions with acquiring roles that enriched my overall capability. I was and I’m still not afraid to ask how you do this or what do I need to look out for when completing tasks. Learning, practice, failure, success, hard work and dedication, and some four decades of refinement keep me moving forward in IT as well as life.
Who do you look up to for inspiration or mentorship? I do not generally look up to anyone person per-say, as you can gain many inspirational moments by studying others. One person recently who unfortunately has just passed away is Captain Sir Tom Moore. At 100 years of age, he raised over thirty million pounds for the NHS. He lived an extraordinary life, a truly inspirational gentleman. His mantra was: “Tomorrow will be a better day “
How do you keep your team motivated despite conflicts and obstacles? Conflicts are difficult as they take many shapes and many forms. Conflict in a team takes work, willingness, and understanding. Cross division conflicts can be political gains for individuals or division groups which can drive toxic working environments. If I can shield my teams out of cross-divisional conflicts, then the teams can be motivated to
In other words, I’m not letting my age define me I still have plenty left that I want to achieve.
What are you the proudest of in your career so far? Teaching people to security test in a controlled manner.
What has been your greatest challenge? Finding the right opportunities to grow at the right time. It is never easy, and you do need a bit of luck at times.
What is the favourite part of your job? Helping departments continuously improve on a quarterly basis. Just recently, in the last few years, I never thought for one second that teaching people to do security test applications would get me some enjoyment, specifically watching them grow and improve their skills. What have you learned from your experiences so far? As you get older you start to realize that wisdom is not a gift, it’s something you have to work at.
Finally, do you have any advice for aspiring engineers and testers who want to grow in the tech industry? Life is a journey, hopefully, a very long journey. You will have to learn, you will need to practice what you have learned, you will have to face failures, you will have to adapt, and you will have successes. To be a master of your chosen craft, you need to take on life’s journey.
31
July 2021 PROCESS & DEVELOPMENT
testmagazine.co.uk
QA in DevOps: QAOps QAOps is a framework that combines Quality Assurance and Software Operations.
For example, in the agile methodology, regular builds are made where developers integrate user stories or bug fixes to the system under development (Continuous Integration). Software testing needs to be performed at regular intervals to ensure that the system is still stable when these builds are deployed. QAOps helps in finding issues of the Application Under Test (AUT) as soon it is made available for testing. QAOps use some concepts of DevOps such as Continuous Integration/Continuous Delivery (CI/CD) and bring collaboration between Dev, QA, and Ops. Automated Testing is a critical
32
component of the QAOps framework. Test automation helps in speeding test case execution without human interaction. As a start, a Build Verification Test can be implemented in the pipeline. A Build Verification Test (BVT) is a set of tests that is run after a build is made to ensure that the Application Under Test is ready for further testing. The test cases use in a BVT are covers the core functionality of the system. A set of test cases that are used for smoke testing can be automated and used in the BVT. Manual regression test cases can also be automated, this will reduce a considerable amount of time for the testers, which can help them do
Shabaaz Khan Seewoogoolam Shabaaz is a Software test engineer who has experience in testing Web/Mobile applications and REST API web services. He is a Member of the Mauritius Software Testing Qualifications Board (MSTQB), which helps to raise awareness of Software testing in the local community.
July 2021 PROCESS & DEVELOPMENT
testmagazine.co.uk
Parallel Testing is adopted in the QAOps mindset as it an automated testing process that enables Dev or QA engineers to launch multiple tests simultaneously. exploratory testing or automate other test cases for new user stories and bugs.
engineer can lose focus on their main activities because not everyone has the same level of learning. More experienced software engineers can find it difficult to adapt to new changes and may feel isolated.
Parallel Testing is adopted in the QAOps mindset as it is an automated testing process that enables Dev or QA engineers to launch multiple tests simultaneously. • Maintenance of Pipeline: Software The objective of parallel testing is to testing activities can be disrupted increase the speed of execution of a task when pipelines are down. Planning while maintaining the quality of the tests. is important to tackle this sort of For example, a regression pack consists situation. A backup plan can be made of 60 test cases that take 3 days to to mitigate risks. complete. The team can launch 3 • The implementation of QAOps can execution CI/CD pipelines that can run include new costs such as servers, 20 test cases each. The regression pack automation tools, employee training, will be executed in just one day, this will and cloud technologies. enable detecting issues of the build within one day and actions can be taken at the • Gap breaching tends to be difficult earliest. for various teams, work culture can be different across members. Some examples where parallel testing can be used: • Multiple browsers testing • Compatibility testing • Regression testing • Localisation and internationalisation testing • Multiple user simulation testing In a CI/CD model, testing loads can be scaled up and down to assess different behaviour of the application under test. Software Engineers can reuse components in future tests. Automation framework makes the creation of new tests less complex and more flexible. Developers and IT Operations can contribute to QA activities as part of the CI/CD integration. The developers can start writing automated test cases as they have technical knowledge about the application under test. IT operation can do exploratory testing or identify UI/UX issues with the assistance of QA engineers.
Challenges in adopting QAOps • Learning Curve: Adopting a QAOps mindset requires a set of skills. An
QAOps helps in finding issues of the Application Under Test (AUT) as soon it is made available for testing. QAOps use some concepts of DevOps such as Continuous Integration/Continuous Delivery (CI/CD) and bring collaboration between Dev, QA, and Ops.
Practices of QAOps
• Integration of Continuous testing in the SDLC • The team should keep their latest work on the CI/CD pipeline • The team (Dev, QA, Ops) should collaborate on a common objective • Engineers should be T-shaped skills
Final Thoughts QAOps helps to keep the pace of development by the automation of processes and tests for faster delivery. Software quality is not compromised by the fast execution of tests. It will help the squad to gain confidence for faster market delivery. The whole BUILD – TEST – DEPLOY process can occur without human interaction and instant feedback is available. Many organisations have already adopted this framework and will continue to expand through digital transformation.for faster market delivery. The whole BUILD – TEST – DEPLOY process can occur without human interaction and instant feedback is available. Many organisations have already adopted this framework and will continue to expand through digital transformation.
QAOps helps to keep the pace of development by the automation of processes and tests for faster delivery.
33
July 2021 TEST AWARDS
testmagazine.co.uk
It's almost time for the biggest events of the Year: The Awards! We are very proud to be running the European Software Testing Awards, the North American Software Testing Awards, and the DevOps Industry Awards for another year. If they are anything like last year, prepare yourself for great talents, fascinating projects, and a whole lot of inspiration!
‘You get the opportunity to look at things differently and get a real insight into what other people are doing.’ Rebecca Williams, judge for the European Software Testing Awards
‘The most important thing is how it creates value. It’s really important how you explore the opportunity and value of a project, a product.’ Darren Griggs, judge for DevOps Industry Awards.
If you want to participate to the European Software Testing Awards, click here.
If you want to participate to the DevOps Industry Awards, click here.
If you are still unsure about whether to participate or not, we have talked with some of our incredible judges to see what they think about the Awards and what advice they would give to participants.
‘As with all things DevOps, it’s the passion that excites me both in the entries submitted for assessment, but also in my fellow judges.’ Paula Cope, chair of the DevOps Industry Awards
‘[The Awards] bring people together and recognize the achievements and excellence.’ Joe Larizza, ambassador of the North American Software Testing Awards.
‘When the opportunity came up to be a judge, I was thrilled. I was always going to say yes. For me, the European Software Testing Awards fit my belief that testing should be recognized as a profession.’ Dan Camilleri, judge for the European Software Testing Awards
‘Be proud of what you have done, of embracing the opportunities to do things better, or your team members for going on that journey with you and know that every judge will enjoy reading your story, and they, in turn, will learn from it.’ Paula Cope, chair of the DevOps Industry Awards
‘Keep striving for excellence and don’t forget to make an entry. Even if you think you’re not going to win, make an entry because the competition is unbelievable.’ Joe Larizza, ambassador of the North American Software Testing Awards.
‘I’ve always looked at the European Software Testing Awards as a good benchmark for recognizing testing as a profession.’ Dan Camilleri, judge for the European Software Testing Awards
34
‘I think that is a great opportunity for me to expand my knowledge of what’s going on and understand how people are solving today’s challenges.’ Darren Griggs, judge for DevOps Industry Awards.
If you want to participate to the North American Software Testing Awards, click here. We are looking forward to seeing you at the Awards. It will be a memorable time!
July 2021 testmagazine.co.uk
21st – 22nd September 2021 at The British Museum, London
The National Software Testing Conference is a UK‑based conference that provides the software testing community at home and abroad with practical presentations from the winners of The European Software Testing Awards, and roundtable discussion forums that are facilitated and led by top industry figures. This premier industry event also features a market leading exhibition, which enables delegates to view the latest products and services available to them. The National Software Testing Conference is open to all, but is aimed and produced for those professionals that recognise the crucial importance of software testing within the software development lifecycle. Therefore, the content is geared towards C‑level IT executives, QA directors, heads of testing and test managers, senior engineers and test professionals.
REGISTER SoftwareTestingConference.co.uk 35
July 2021 testmagazine.co.uk
Sponsored by De Now in its eighth year the European Software Testing Awards celebrates companies and individuals who have accomplished significant achievements in the software testing and quality assurance market. The awards ceremony will be held at the Old Billingsgate, London in November 2021 Enter the European Software Testing Awards and start on a journey of anticipation and excitement leading up to the awards night – it could be you and your team collecting one of the highly coveted awards! WHY ENTER? The benefits of the entering the European Software Testing Awards are considerable: • Best-of-the-best: winning an award will ensure you are perceived by your industry peers and clients as a leading provider of software testing services and solutions • Marketing: just being shortlisted can improve brand awareness and promote your business to new customers and increase credibility • Employee motivation: awards recognise the hard work and achievements of your staff, so winning one helps boost morale and improve motivation • New talent: by promoting your business as the best-of-the-best you can attract the talent you need to push your business forward • Benchmarking: the application process alone forces you to look at your business from a different perspective and compare yourself to the competition.
SoftwareTestingAwards.co.uk 36