Banner Image

Business and Technology Insights

The Code to an Extraordinary Software Test Engineer

 
February 28, 2017

Practice Inclusive Assurance

To cope with fiercely competitive markets and ever-evolving customer requirements, businesses need to demonstrate renewed levels of business agility and release acceleration. To meet this challenge, most businesses have turned to digital adopting newer, accelerated methodologies such as Agile and DevOps. As a result, social media, mobility, analytics, Big Data, and cloud have made rapid inroads into enterprise IT landscapes. Markets too, are engulfed with new digital products from multiple manufacturers, specifically smart phones and tablets with different operating systems, specifications and capabilities.

While this digital proliferation positively impacts businesses through accelerated releases, real-time customer connects, and brand loyalty, it also introduces new demands on the software testing fraternity. For instance, the diverse device landscape demands rigorous testing across platforms, browsers, and device sizes testing that goes way beyond functional testing, encompassing usability, UI and responsiveness, security and performance – not only in test environments, but also in real-world business contexts.

In the Agile world, with recurrent, constant, and rapid changes being applied to systems, test engineers too, must move away from traditional waterfall testing to drive a paradigm shift in thinking, and start visualizing testing solutions for Agile. In line with DevOps thinking, test engineers must recognize the reality of shortened delivery cycles, and appreciate the need for Dev-Test integration – working with smaller teams, and adapting to frequent regression and continuous integration testing. As software development moves to Agile and DevOps, inclusive and all-encompassing assurance becomes essential. All this requires test engineers to be agile too always ready to accept new challenges, adjust accordingly, and respond well to changing situations.

Let me cite a personal instance to explain. During a recent assignment, the lead business analyst had to leave mid-way, and the testing team was asked to fill the gap and complete the design of the user story. We rose to the occasion, completing the design in the stipulated two-week period, and earning accolades and recognition from stakeholders. This brings me to an important requirement for being an extraordinary test engineer – domain knowledge. In this instance, we were able to complete the design, because we had developed the domain knowledge, facilitated by sound understanding of business workflows and scenarios, and user requirements from the customer perspective. This enabled the test team to effectively convert business requirements into user stories and design documents that were utilized by the development team too.

To write appropriate and effective test cases for Agile projects, in addition to domain knowledge, test engineers must also understand inner intricacies of the technology – specifically, its capabilities and limitations. There is no point in articulating acceptance criteria that a technology platform cannot support. Take white box testing, for instance. To articulate test cases with effective statement, branch, and path coverage, test engineers must understand the underlying technologies and programming language syntax.

The business need for faster time to market brings test automation to the forefront, signaling the usage of tools such as HP ALM, Altassian JIRA, and Selenium. With renewed focus on lowering costs, the adoption of open source tools and technologies is also gaining momentum. Unlike their commercial counterparts, open source tools come with minimal documentation, have a steep learning curve, and depend on community technical support. Adapting to this new combination of commercial and open source calls for significant learning investment – by both – organizations as well as test engineers. The open source commercial tools mix reminds me of another situation where our testing team added significant value with automation for a Fortune 50 US Insurance provider – cutting down metrics consolidation time from four hours to five minutes. After a short refresher training, we architected a test metrics automation solution, based on a combination of commercial and open source technologies, specifically, MS Excel, Visual Basic Macros, XML, XSLT, HTML, JavaScript, XML Starlet and Notepad++. In this case too, the test team was able to rise to the occasion because we sensed a value creation opportunity, and were able to quickly adapt to the situation, when our support was required the most.

Simply put, inclusive testing involving domain knowledge and technology expertise – is important to succeed as a software test engineer. In current times when digital is at the forefront of business, inclusive testing is not only a demand, but also our responsibility because we need to contribute to enterprise digital investments. To make the best of Agile, we too must first imbibe and practice the principles of Agility internally. Only then will we become extraordinary software test engineers.

Vikas Mehrotra is a pre-sales consultant for hi-tech and professional services at Tata Consultancy Services (TCS). He has an experience of 11 years in managing QA and testing teams across technologies and platforms in multiple geographies and across several verticals such as financial services, professional services, HCM, print media and insurance. He holds an MBA from Indian Institute of Management, Lucknow and a bachelor's degree in Computer Science & Engineering.