Work Term Report: PerkinElmer 2018
Introduction
I am a third year Software Engineering student with a minor in Business Economics. This page documents a summary of my first co-op work term at PerkinElmer, including information about the company, a summary and review of my goals for the work term and a description of my role. I worked as an Associate Quality Assurance Engineer from May 2018 - December 2018. I learned a lot in this work term and achieved many of my goals, so I am excited to share them with you here.
About PerkinElmer
I had the pleasure of working at PerkinElmer Inc., a global company focused in areas of life science research, diagnostics, food and biotechnology. The company has offices located in over 90 different countries that focus on research and development for various areas of life sciences. I worked in the Informatics division, which is responsible for unifying, visualizing and analyzing data. Some of the aims include creating software solutions that allows customers to gain insights from data analytics across R&D, translational research and clinical trial operations. The Guelph R&D team works on a product called Signals Medical Review(referred to as SMR). SMR makes it easy for medical reviewers and clinicians to aggregate and analyze data during clinical trials, so that they can focus on identifying any potential safety risks early on in the trial.
Job Description
As an Associate Software Quality Assurance Engineer, my role consisted of testing the SMR web application as well as the Line Listing Review Tool (a Spotfire addin). In addition to manual testing, I was also responsible for developing and maintaining the automation framework for the SMR web app. This included writing behavioural test cases in Cucumber, updating and writing new functions to execute the test cases, and also creating an automated test suite using Selenium for Java and an automated test plan for the purpose of soak testing. Another area of automation I had the opportunity to work on was to create a data generator program for SAS (Statistical Analysis System) data tables using SAS Programming as part of automating the process of soak testing. This project was a great opportunity for me to work on my software development skills as I had to take into consideration interfacing, abstraction, modularity and scalability into the project that I created. Furthermore, I participated in executing and planning for many different types of testing - from soak testing, regression testing and stability testing. I learned how to use SDLC tools such as JIRA for creating and tracking bugs and features of a project.
Goals
My goals for the 8 month work terms includes:
- Be more comfortable and confident in verbally communicating ideas
- Become proficient in writing automated tests in Selenium framework
- Become more knowledgeable about industry standard coding practices
- Improve Problem Solving and Decision Making skills
- Become familiar with the process of soak testing
The goals that I created were focused on improving two areas of skills: interpersonal skills and technical skills.
Interpersonal skills are crucial to any industry and position, so I wanted to make sure I made the most of my current opportunity to work on this area. My first goal in both work terms was to be more comfortable and confident in verbally communicating ideas. This was an important goal related to my daily tasks as every day our team did a stand-up meeting where we talked about what we did yesterday, what we are working on today and if we are blocked by any issues. This was a face to face meeting with the rest of the team members, so it was important that I was able to clearly and comfortably talk about what I was working on and any issues I was having. In the second half of the work term, I wanted to continue working on this goal by doing a demo or presentation on the project that I worked on. However, I didn’t get the chance to do this, but it is something I will keep in mind for my next work term.
My second interpersonal goal in the second half of the work term was to improve problem-solving and decision-making skills. I wanted to do this because I found myself being hesitant to create tasks or bugs in JIRA or changing the status of whatever task I was working on. I became more comfortable moving around tasks and bugs by figuring out the different aspects of the JIRA workflow as well as by asking my coworkers.
In terms of technical skills, I wanted to be able to 1) expand on my knowledge of an existing tool/technology/language and 2) learn new technologies/tools/languages. The goals related to my technical skills included becoming proficient in writing automated tests in the Selenium framework. I made great progress towards this goal in the first half of my work term as I was tasked with creating an entire automation framework using Selenium WebDriver for Java and Cucumber. Furthermore, I also contributed to updating the workflows and code for existing automated tests written in Selenium, so that gave me perspective on contributing to the existing automation framework.
My second technical goal in both work terms was to become more knowledgeable about industry-standard coding practices. In the first half of the work term I was able to do this by reading the company’s coding standard documents for Java to gain a better understanding of coding standards for that language. I also received feedback from our automation engineer regarding how I structured my automation framework, as well as by receiving code reviews from our other automation engineer. The feedback from senior engineers was crucial to gaining a better understanding of industry standard coding practices. The second half of my work term, I continued to work towards this goal by refactoring the code that I had written for generating data for SAS tables. I changed my code to be more clean, well documented and modular with a simple interface that would allow anyone to use the program easily.
My final technical goal for the second work term was to become familiar with the process of soak testing. I learned a lot about the process of soak testing by being directly involved with planning and executing the steps needed to perform a successful soak test, as well as evaluating the results of the soak test.
Conclusions
My experience at PerkinElmer has been one of the most valuable experiences in my career thus far. Not only did I get to work on a really cool product that is being used in real world applications, but I also had the opportunity to grow my interpersonal and technical skills as well as expand my network. I was able to build on my existing knowledge of Java and GitHub, as well as learn how to work with a wealth of new tools, languages, software and frameworks, all of which are summarized here:
- Selenium WebDriver for Java (a framework for automating web application for testing purposes)
- Cucumber (a tool that runs automated acceptance tests written in Behaviour Driven Development style, using plain language parser Gherkin)
- Eclipse (an integrated development environment for Java)
- Maven (software project management and comprehension tool, based on project object model that manages a project’s build, reporting and documentation)
- Git/GitHub (version-control system for tracking changes, GitHub being the web-based hosting service for version control)
- JUnit (a framework to write tests for Java)
- SAS System (a software product that is used for data entry, retrieval, management)
- SAS Programming (a language that is used to maintain and manipulate SAS data sets (similar to how SQL is used to manipulate SQL databases))
- Batch Scripting (command line interface for interacting with Windows operating system) 10. Jira (issue and project tracking software)
- Zephyr (Software testing tools and test management software)
- TIBCO Spotfire (Data visualization and analytics software)
Finally, the communication, teamwork and problem solving skills, as well as the newfound confidence I gained from working at PerkinElmer is something that I will carry with me for the rest of my career. I couldn’t be more grateful for the amazing learning experience these last 8 months have been.
Acknowledgements
I want to thank everyone on my team that I worked with this work term. I was a member of Team Canucks alongside my teammates Sarah, Mark, Chad, Wali, Sharath, Harry, Stephen, Val, Neha, Jen and fellow Guelph co-op students Jacob Young and Michael Vamvakas. A special thanks to Sarah for answering the hundreds of questions I would ask her, as well as Mark for working with me to help me achieve my work term goals. Special thanks to Jen for organizing fun events and teaching me about the invaluable life lesson that is couponing. We also collaborated with Team Chippewa from Buffalo, New Yorkand Team Sharks from Shanghai, China. It was an amazing experience getting to work with such kind and hard working people from around the world. I also want to give a big thank you to Guelph Co-op and Career Services for allowing me to have this amazing opportunity, with a special thanks to computing advisors Laura Gatto (who came by for a visit!) and Kate McRoberts.
Last, but definitely not least, a big thank you to academic advisor Greg Klotz for reading through the work reports of myself and many others