About Xiris Automation Inc.
Xiris Automation Inc. is a company that creates products for the welding community. The company was founded in 1989 in Burlington, Ontario. Although the original company was not in the welding industry, that is where their primary focus is now. They have become influential in this community, selling to countries all over the world. Their products reach a wide range of industries including additive manufacturing, automotive, aerospace, power generation, and more. Their products include weld monitoring cameras, weld inspection systems, and weld thermal cameras. Within these categories, there are different products that serve different functionalities.



The cameras work alongside a software product called WeldStudio. WeldStudio allows the user to view the footage coming from the camera and analyze it through a variety of machine vision tools. One example of these tools is the measuring tool, this tool estimates the distance between two spots on the image. Another example is the edge detector, which helps the user distinguish parts of the image.
List of Machine Vision Tools:
- Distance measuring tool
- Edge detector
- Blob detector
- Pseudocolor
- Pixel reader
- Caliper
- Light reader
- Pattern matcher
My work focused mostly on the software product WeldStudio and less with the cameras and systems. However, I was able to work with a camera to assist with the testing of WeldStudio.

About My Role
I worked as a junior software tester this work term. A lot of the work I did was independent. The main two people I communicated with was my boss and my fellow Co-op student. I would update them on what I was finding through my testing.
I had 3 main projects that I worked on throughout the summer.
My first project was testing the WeldStudio from the user side. Since I was coming into the company with no previous knowledge of the product, I was able to come from the perspective of a consumer. I was not given a lot of background information, only the manual and installer. I then went through the set up process and familiarized myself with the application. As I was doing this, I would document my thoughts, any confusions I had, and suggestions on how to make the set up process as smooth as it could be. Once I was familiar with the product, I was given a camera to use with the software, allowing me to test all the features. I documented everything in Microsoft Word. Whether it was obvious bugs or planned tests, their execution, and results. I would frequently compile reports on what I had found, to share with my boss.
The second main project I worked on was testing the C wrapper for their SDK. The C wrapper was written by a fellow Co-op student, so I would communicate with him often. The majority of the testing I did for this was manual. I wrote tests in C to test each function and documented my findings. I also explored C Unit, writing some tests with the goal of automation. I only used C Unit for the most basic functions of the SDK such as connecting to a camera and streaming from it. I did not use C Unit to test the machine vision tools due to a lack of time and knowledge.
While the previous two tasks took up a lot of my time, I also spent time updating the documentation of their C++ and .NET SDK using Doxygen. I worked on this throughout the whole term, first going through the help file that was created from the doxygen comments in the source code. I would look for mistakes or things that could be changed. I then went through the files to find the location of these mistakes and fix them. I documented these fixes and changes in excel. I would have to check that the correct changes were made by compiling the help file again with the updated documents. Although this was not a complex task, it was very time consuming and tedious. I got to have some fun with it by making the help file a little bit prettier.
Technology used:
- Visual Studio Code
- C
- C++
- Doxygen
- C Unit
- Tortoise SVN

My Goals
Goal 1: Technological Literacy
I decided I wanted to learn about automated testing because I knew it would be a skill I could use in the future. My future goal is not to become a software tester but knowing how to automate tests will be useful while working on personal projects or professional ones. I decided I would accomplish this by researching different automated testing softwares and tools and practice them. I experimented with NUnit for C++ and worked with C Unit for C. I was able to create some automated tests to help me with my testing of the C Wrapper of the SDK, but I would not say I am proficient with it. I would like to continue researching and practicing automated testing.
Goal 2: Written Communication
The purpose of testing is to ensure the software works as well as it can, however, you often find things that need to be fixed. In order to fix these bugs, the developer needs to have a clear understanding of the issue itself. Since I had only ever tested for my own projects, I did not have to communicate my findings to anyone else, so I decided I wanted to improve in that area. Written communication will always be a useful tool in school and the professional world. I worked on this by exploring different tools and deciding what works best for me.
I ended up being consistent with word and excel. I found word worked best for most of my testing because I could keep a consistent format while also having the flexibility to add more detail if I wanted. I used excel to record the documentation updates. I found this more useful because most of the updates I made were small and there were many of them. I kept track of the file, the function or method, the change, the status (planned, executed, checked), and extra notes. As I completed them I could change the status, this made it easy to see my progress.


Goal 3: Creativity
Although testing can be tedious, it also involves a lot of creativity. I decided to develop my creativity so I could see the software and the product in different perspectives. Having multiple perspectives allowed me to come up with new testing scenarios. Creativity is something that is also very helpful with problem solving, I think developing this skill has made me a better programmer. I did this by researching testing techniques before beginning a new project and when I would get stuck in the middle of a project. Since testing an application and a C Wrapper of an SDK are very different, I was allowed to explore different techniques for both of those. Some include black box testing, white box testing, unit testing, etc. I also found it helpful to take breaks and come back to the project after I had worked on other tasks. This allowed me to see possibilities I had been looking over. Overall, I think my creativity did improve and I have more experience to look back on for examples.
Conclusion
Working at Xiris Automation Inc. was a wonderful experience and I learned a lot. Previous to this work term, I had not worked in person, working in an office was a great experience and allowed me to grow as a professional. Working with the camera was an interesting experience as well, as I had not worked with an external device while programming before (other than a mouse and keyboard). I am grateful for this experience and I hope to bring the skills I have learned into my next Co-op.
