Test Automation Developer
@ Co-operators


avatar

Introduction

The purpose of this webpage is to give an overview of the projects that have I worked on and the concepts that I have learned during my time working at Co-operators (January-August 2024). I will be describing what Co-operators is, the goals that I set for myself during this internship, and my role in the company.

About Co-operators

Co-operators is a Canadian insurance company offering a range of financial services including home, auto, life, and business insurance, as well as investment products. Their headquarters is located in Guelph, Ontario.

New Guelph Location Outside


Old Guelph Location Outside

The Quality Engineering (QE) team is dedicated to ensuring the reliability and performance of the company's insurance applications through rigorous and continuous testing. They utilize a comprehensive suite of tools and technologies including Selenium for automated browser testing, Java and Python for scripting and back-end testing, Cucumber for behavior-driven development (BDD) and ensuring tests align with business requirements, JavaScript for front-end validation, and Jenkins for continuous integration and delivery. By integrating these tools into their workflow, the QE team can consistently identify and resolve issues, ensuring that all applications meet high standards of quality and functionality before reaching the end-users.

Job Description

As a Test Automation Developer at Co-operators, my responsibilities mainly consisted of the following:

  • Conducting regression testing on deployed applications
  • Enhancing a testing framework with Java and Selenium
  • Creating both front-end and back-end scripts for research spikes
  • Monitoring and tracking automated test runs using Jenkins

Term 1 (January-April) Goals

Entering this co-op term, I had several goals that I wanted to achieve with regard to developing new skills and strengthening existing ones:

  • Familiarize myself with the Selenium testing framework.
  • Gain a better understanding of the role that software engineering plays in the insurance industry.
  • Introduce new tools/processes that improve the team's efficiency


By becoming with familiar with the Selenium testing framework, I gain a thorough understanding of Quality Engineering concepts, and the role that testing frameworks play in them.

Through my previous co-op terms at Roche and RBC, I have learned first-hand the impact of software engineering on the pharmaceutical and banking industries. By working with the quality engineering team at Co-operators, and networking with other software development teams within the company, I can gain a better understanding of how software development has benefitted the insurance industry.

An important lesson that I have learned through my prior experience as a co-op student is that part of my job is to bring forth new ideas that can help increase the productivity and efficiency of the team that I work with. Introducing new tools and/or processes that can potentially help the test automation team meet their goals will significantly improve the value I bring to the table as a co-op student.


Reflection

I have gone above and beyond in achieving my original goal of familiarizing myself with the Selenium testing framework. My work with regression testing and debugging defects has helped me gain a very thorough understanding of how Selenium assists in the requirements of a quality engineering team. In addition, I was also given the task of monitoring the Jenkins automated daily runs that also uses Selenium-integration. By doing so, I have gained a proficiency in Selenium-based application testing both locally and on hosted servers.

I have shown great initiative in reaching out to different software development teams to learn more about how software engineering impacts the insurance industry. I was given the opportunity to connect with Austin Bursey from the Dev-Ops team to inquire about the role that his team plays in Quality Engineering for our insurance applications. He also linked me to a LinkedIn learning course that dives deeper into the role that Dev-Ops plays in deployment processes. I will be using that course to continue to better my understanding of Dev-Ops in the second half of my co-op term.

Throughout the first 4 months of this co-op term, I was able to improve the team's productivity and efficiency by suggesting and implementing the following:

  • A Excel workbook to JSON file converter Python script to automate the conversion of test data sources.
  • A GitHub-Microsoft Teams connector that notifies the team when a pull request is opened/edited/closed.

Term 2 (May-August) Goals

For my second work term with Co-operators, my goals were focused around building on the foundation of knowledge that I acquired in the first 4 months of this internship.

  • Collaborate with DevOps team to identify and resolve configuration related issues within the Jenkins pipeline.
  • Learn and implement new ways to compare and analyze test data in the Excel tracking sheet.
  • Network with people in management roles in the company.


These tasks will greatly benefit my next work experience by enhancing both my technical and interpersonal skills. Collaborating with the DevOps team to resolve Jenkins pipeline issues will deepen my understanding of CI/CD processes and foster teamwork and problem-solving skills in a cross-functional environment. Learning and implementing new methods for analyzing test data in Excel will strengthen my analytical abilities and proficiency in data handling. Additionally, networking with people in management roles will expand my professional network, provide insights into leadership paths, and help me learn from experienced colleagues.


Reflection

Reflecting on my efforts to achieve these goals, I am pleased with the progress I made in expanding my professional network and enhancing my technical skills. I attended all major in-person work events and took the initiative to introduce myself to several people in management roles. These interactions allowed me to learn more about the career journeys and leadership styles of experienced colleagues. By engaging in meaningful conversations and asking insightful questions, I was able to establish connections that could be valuable for my professional growth. These experiences have provided me with a broader perspective on the different paths to leadership within the company and have helped me build a network of mentors and peers who can offer guidance and support.

On the technical side, I effectively collaborated with the DevOps team to address configuration-related issues in the Jenkins pipeline. I set up a group chat with my team and a few representatives from DevOps to ensure continuous communication and real-time updates about any issues that occurred on our application. This proactive approach helped in quickly identifying and resolving problems, thereby improving the stability and efficiency of our pipeline. Additionally, I focused on improving our test data analysis by leveraging Excel charts and formulas to create comprehensive reports. These reports provided valuable insights, such as test case run times by server, test case pass rates by product line, and the number of defects per issue type. By presenting this data in an accessible format, I facilitated better decision-making and helped my team focus on areas that required attention, ultimately contributing to improved product quality and performance.

Conclusion

Throughout both my work terms at Co-operators, I have gained a thorough understanding of the role that Quality Engineering plays in insurance applications. My role on the QE Automation team has significantly strengthened my knowledge in concepts such as CI/CD pipelines, data collection, and defect reporting. Overall, these experiences have equipped me with a strong foundation in quality engineering practices and have prepared me to contribute effectively to future projects that demand a high standard of software quality and reliability.

Acknowledgements

I would like to express my heartfelt gratitude to my supervisor, Emil Sathiya, for his exceptional attentiveness to my learning objectives and his unwavering support in helping me achieve my goals during this co-op term. Emil's commitment to my professional development has been instrumental in my progress. I am also deeply appreciative of my teammate, Joseph Coffa, who has been a tremendous mentor throughout this experience. Joseph has been my go-to person for overcoming any blockers I've encountered in my tasks, and his approach to problem-solving and work ethic has been both inspiring and educational. Their guidance and support have greatly enhanced my co-op experience.