Yasar Sulaiman, Director of Quality Assurance, Everest Re Group
The role of Quality Assurance and testing in today’s enterprise technology teams have been evolving with the trends in the industry. Software Quality Assurance and testing can no longer remain a supporting function which is treated as a bottleneck activity/overhead. Software Quality is an integral part of software development and there is an urgent need to make this function relevant not only to the technology team but also to business. The goals of the QA team should align with the goals of the business and the objectives of the testing team should be beyond validating the requirements but to help improve customer experience.
In my discussion with fellow Heads of Quality Assurance teams from a variety of fortune 500 companies, I have noticed a pattern of similar challenges that are being faced across the organizations and industry. Also, the solutions being implemented to address these challenges have a common theme. In the next few paragraphs, I will take you through what I have observed.
Here are some snippets worth noting the challenges faced by QA organizations today:
• Traditional testing teams not being able to catch up with the skillset required today
• QA model was designed for Waterfall, it does not work in Agile
• We don't have time to do traditional testing in the fast-paced development environment
• Testing usually delays our 2 weeks sprints
• want developers to do all testing
• Testing does not fit in DevOps model my company is currently pursuing
• Testing is slowing us down but we need to keep it as we are worried about compliance and regulations
• We have outsourced all of our testing needs and have no visibility on it
• We do all testing in-house but looking to outsource
• We need a tool that will solve all our issues
• We are stuck with legacy systems and the new ways of testing are not applicable to us
• We don't have enough test data to test
• We don't have sufficient test environments to test
• We are worried about test data privacy and theft
• All we care is no production defect, tell me how I can get that
Not only it was interesting to listen to the challenges these companies were facing but it was surprising to see the solutions the companies were looking at to solve these issues. Some notable solutions and my commentary below:
• We want to eliminate the Quality Assurance and testing team altogether (Yes you heard it right, one company has actually done this).
• I am not particularly sure about this drastic measure but this company claimed that it had saved them millions of dollars over the last few years and what started as a particular team’s initiative is being pursued throughout the enterprise
• We are looking for a unicorn (a term lightly used for SDET in this QA grouping).
• SDET is a term used a lot in the industry these days refers to Software Development Engineer in Test. It refers to a professional with the skills rivaling a developer who is embedded in the development team and mostly works with a test-driven development approach or helps with something like “White Box Testing” where SDETs performs what is similar to traditional Unit testing.
This helps push the testing left or sooner than what traditional testing teams would get involved. The problem is these resources are hard to find and many claimed that these are Unicorns or don't exist. I will go with the acknowledgment that current testing teams need to be reskilled so we are not looking for a unicorn but train our horses to run faster than a unicorn.
• We are adopting a DevOps model and use continuous integration and continuous testing. We use state of the art modern tools to perform testing and our QA team are continuously working hard to keep up with the automation so this does not fail.
• I think many companies have benefited a lot with this approach and probably this is a good way forward but we still have a lot of challenges to overcome. First, many large companies still use technologies that are considered legacy and they are not changing them anytime soon. They take the “don't fix something if it ain't broken” approach. Not all development and upgrade can fit into a continuous integration model and a lot of testing is still done manually or in-house automation scripts. Automation is slow and even if everything is automated, test data creation and management is a mess. Organizations need to step back and take a strategic approach to decide where they want to go and how to get there.
• We have outsourced every aspect of Quality Assurance and testing and have created a managed services model where we only monitor the SLAs and KPIs.
• This approach usually gives a big uplift to many organizations who go this route however it's worth noting that a managed service model will only be as good as what your organization can support. The company needs to be at a certain maturity level to get the benefits of this model. Also, the SLAs need to be aligned with your organization’s goals and other teams (Development, Business Analyst, Scrum Masters, project leads) have to be onboard to unleash the most potential. One challenge with this model is as your company evolves and takes on other transformation like Agile/DevOps transformation, cloud transformation, or adopting new technologies leveraging Artifical intelligence and machine learning the outsourcing vendor may or may not be equipped or willing to catch-up or transform the model.
• We are a small / nimble company we don't use the traditional testing approach and neither have the luxury or willingness to have a dedicated QA team.
• It can work as long as you are small and nimble. As your business grows bigger and complex, the agility and nimbleness may not be easy. The company’s culture might change as it grows and the decisions that were made faster will now get stuck in management layers or bureaucracy. It takes a lot of commitment from companies leadership to make constant and continuous efforts to keep the organization nimble. The challenges described above will sooner or later catch up with you.
• We are a company driven by compliance and regulations and cannot afford to do testing in any other way as the cost of audit failure is much higher than spending on testing resources.
• It is true that the companies that are heavily regulated like in the financial industry or medical industry cannot afford to compromise on the compliance and audit requirements but that does not mean that they cannot improve the inefficient processes that are not in line with the advances in the tech industry in general. Compliance and audits can also benefit from automation and use of better tools to make it easier and less of a burden to maintain the status-quo.
• We leverage DBAs and developers to help create test data and we also have a test data management tool to manage the test data, this is the best we can do under the current circumstances to address our test data needs.
• The biggest problem I see is not the absence of a tool or a role to address the test data management needs but the absence of test data management strategy. This topic needs an article of its own but for this article, my view is organizations are not doing enough in this area and tools providers are not able to help alleviate the issues companies are facing. Data privacy is a big concern and many organizations unfortunately still copy production data for testing which exposes them to countless risk that cannot be covered in this article. A test data management strategy which addresses the test data creation, test data masking/obfuscation, test data restoration, test data refresh and business scenario driven test data and test data on demand is the need of the hour.
• We have a separate environment for Development, testing, UAT and production and we are building more environments to make parallel development and continuous integration possible.
• This is another area which needs an article of its own. Building new and separate environments are solving one problem but creating other problems. The cost of Test environments are rising exponentially and there are still last minutes issues discovered resulting from code branching and merging. There is no easy fix but service virtualization and virtual test environments which can be spun off and decommissioned on the go is something which is needed. Service virtualization can help bring the testing, test data management and development in a overdrive mode to expedite software development.
The QA teams have gone through a lot of transformation and evolution already but much more is yet to come as the tech industry evolves but one thing we all can agree on is Quality is non-compromisable and role of QA has to evolve to match the current business needs and align with organization’s overall objective.
The views, thoughts, and opinions expressed in this article belong solely to the author, and not necessarily to the author's employer, organization, committee or other group or individual.