Test Automation

Experience in Action

During my time at PNC Bank, I experienced many different approaches to Automation Testing. My teams often worked in a mix of both Behavior Driven Development (BDD) and User Story Driven Development (USDD), while also adapting some aspects of Test Driven Development (TDD) when we had a clear projection of expected functionality.

Working closely with my teams' Business Analyst(s), I was able to closely translate the User Acceptance Criteria outlined by various Product Owners into thorough and effective Test Cases in our Selenium based Testing Framework. Leveraging Cucumber and the Gherkin language my teams were also able to write clear Feature files that could be quickly interpreted by less technical team members while still leveraging much of the power and flexibility of Selenium Automation. This, along with the adoption of the BDD "Given-When-Then" formatting helped to create a library of reusable phrases to make Test Case creation easier and more streamlined.

A robust collection of Java based Selenium Test Steps also meant that maintain and updating the code base was also simple and streamlined, allowing myself or my team to on-board new Test Engineers quickly or allow our Developers to understand how the applications they were bringing to life were being tested beyond their Unit Testing requirements. While these automation test were often not seen by anyone beyond the testing team, I would often push for this level of clarity and share-ability across our testing suites so that in the off chance someone from the Business or Development teams were interested or found a need to take a look into our Automation Code, they would be able to peer behind the curtain and easily understand the efforts of the testing teams with little guidance.

To Summerize:

Communication

Working with all members of a Development team is paramount to understanding and ensuring that tests accurately reflect the needs and requirements outlined by your Business oriented team members or your end-clients.

Planning & Design

The Test Requirements outlined in your Test Plans are accurate to the expected functionality of a given application. Your tests should include and cover as many scenarios as possible, even those that may seem outlandish or unlikely. Many times a user will find many different and unexpected ways to interact with an application.

Development

Whether you hold the title of "Test Automation Engineer" or "Software Development Engineer in Test (SDET)" your main goal is to find the best and most efficient way to automate your tasks, spending less time manually evaluating an application and more time making the software tools work for you.

Testing Tasks

Whether following the "Given-When-Then" format of BDD or a more loose format in USDD, your Testing Tasks should aim to be clear and concise, containing all information needed to complete and replicate a given Test (Manual or Automated).