Going Digital - Humanism & Design Thinking: Operating Principle
3D Printing Requires Wildly Different Thinking
On Artificial Intelligence and Ethics
The Maturity of Managed Print Services (MPS)
The Importance of Omni-Channel Communications in the Insurance...
Denise McCauley, Executive Vice President & Chief Operating Officer, WoodmenLife
A Health System Moves Toward Paperless
Tabitha Lieberman, SVP Clinical and Revenue Cycle Applications, Providence St. Joseph Health
Thank you for Subscribing to CIO Applications Weekly Brief
Better Quality Assurance is the End Game
By Sita Bharathala, VP, Quality and Release Engineering, Veeva Systems
Ease of deployment on mobile and web has led to a revolution in the way software companies think about software releases. Companies no longer release monolithic updates thrice a year, but rather have switched to weekly over-the-air updates. While this means that customers will have new features and bug fixes faster, it can also lead to pushing code without a full vetting. Test Engineering is now challenged with creating processes that are rigorous and efficient, without creating a significant overhead in release timelines. I will elaborate on two key aspects.
First is a need to shorten the initial feedback loop. If we can provide insights immediately to the development team, they can address the concerns when they are top of their mind. We can tackle this through automated testing and parallel test execution, but there are plenty of challenges remaining in making this even more efficient. Second is ensuring test engineering is in lockstep with the development team. Part of this requires us to invest more in having a technical QA team that can understand the software as it is being developed. But part of this also requires the QA team to tightly integrate with the development team, challenging the basic QA approach of siloed test cycles.
2. Could you elaborate on some interesting and impactful project/initiatives that you’re currently overseeing?
A key initiative that we think about a lot is how to keep our global team productive. With employees around the world, it is important to make sure that everyone can hit the ground running when they get to work. To that end, we’ve moved our nightly builds and test environments from local machines to the cloud, eliminating set-up overhead and reducing the potential for environment-based test failures. By providing offshore teams with the right tools and support we set them up for success.
Another important initiative we have is new testing technology development. Most recently, we have started looking at static analysis tools to help us in two areas. The first is within test coverage. Static analysis computes what lines of code are covered by which tests and more importantly which lines of code are not covered by any tests. Using this tool, we can guarantee that all written code is being tested and monitored. The second is for decreasing the number of tests that are run per deployment.
Quality is everything you do to have happy and satisfied customers.
By knowing which tests cover which lines we can be very targeted in our approach to testing changes.
A third initiative is guaranteeing that tests only fail when there is an issue in the code. This may seem obvious, but there are many reasons why a test can fail for other reasons: inefficient test scripts, environment issues, and async processes to name a few. My team created a tool that monitors all tests and assigns a “stability score” that quantifies how often a test fails due to an instability. This tool helps us identify flaky tests and leads to better automated tests in the long-run.
3. What are some of the points of discussion that go on in your leadership panel? What are the strategic points that you go by to steer the company forward?
In my leadership panel, we think about a wide variety of issues, here’s a sample of some of our recent discussions.
As mentioned earlier, one initiative that we work on is new testing technology development.I believe that the key to efficiency is leveraging all available tools both within the company as well as outside. Thus, a few members of the organization are constantly searching for new tools that have outsized productivity benefits. This helps us both in reducing the cycle time spent in QA and in detecting bugs earlier on.
Another point we often discuss is how to balance the needs of the company’s customers with those of our internal customers like the release engineering and technical operations teams. Making internal customers successful by introducing efficient processes is a winning strategy in the long-run but can distract us from the core mission of keeping our code bug-free for our customers. Finding that balance is something we continuously work on.
Finally, I am a strong believer that quality should not be reserved for the test engineering team but should be a mindset that pervades the whole company. The end game is not about testing for quality; it’s about building it into the product. Quality is everything you do to have happy and satisfied customers.
4. Can you draw an analogy between your personality traits, hobbies and how they reflect on your leadership strategy?
Growing up with four siblings, I learned from a young age that everyone has an opinion and the importance of creating an inclusive environment where no idea is dismissed unfairly. In addition, being one of the youngest, I learned that the key to having others listen to you is confidence. I work hard to have that same culture in my organization. Members of my org and others across the company have such diverse backgrounds that keeping an open mind allows me to harness their experiences taking ideas from pen and paper to successful initiatives.
5. How do you see the evolution of the Software Testing arena a few years from now with regard to some of its potential disruptions and transformations?
Perhaps a controversial take -- I believe software testing as an independent division will not exist in a few years. With faster development cycles and agile processes, companies will benefit by employing more “generalists”, those comfortable wearing multiple hats (Dev, QA, DevOps, etc.) depending on the need of the hour. This is not a bad thing -- rather it’s an opportunity for current QA engineers to expand their scope and directly contribute to the development of the product. Being able to think in a test-first mindset also gives these engineers a leg-up in writing quality code, leading to more stable products on the market.
6. What would be the single piece of advice that you could impart to a fellow or aspiring professional in your field, looking to embark on a similar venture or professional journey along the lines of your service and area of expertise?
Be confident -- do not doubt your ability to make a difference.