I originally joined Samsung as a tester for voice recognition software, and I gradually received more and more responsibilities as time went by. I eventually became a team lead of a group of language experts tasked with reviewing tens of thousands of strings as well as developing rules for the natural language understanding system of our software. Over the years I worked at Samsung, I was able to use my technical skills to make quite a number of contributions to the team:
Automated Test Prep Procedures
Early on, I noticed that certain procedures we needed to do in order to prepare our devices for tests were cumbersome and time-consuming. Creating contacts was something that we needed to do regularly and often in large quantities, since we were testing voice recognition software and would thus be trying many different names. I created a C# tool that would create .vcf files for us, allowing us to extract the names from our tests very quickly and have a vCard ready all in a few clicks. Another task I was able to automate was creating music with metadata. Again, since we were testing voice recognition software, we needed to test a lot of song, artist, and albums names, so I created a tool that could set up all the music we'd need for a test with all the right information.
Macros For Managing Tester Work
Our team had been given an Excel macro for compiling our work, but we often received test templates with different columns and formatting. The macro's code had to be changed each time in order to work for those templates. I completely rewrote this macro so that there was a list of template types available on a sheet that could be changed by anyone with no coding changes necessary. After that, I went on to create a macro for reviewing tester work to ensure that templates did not have any errors, such as logs not being present, incorrectly marked passes or fails, or missing tester information. I also created a macro for helping split up test templates into assignable pieces. That macro could then randomly assign out those pieces to testers, trying to keep the workloads as balanced as possible. It was great having all of these tools to help make things we had to do on a daily basis much quicker, and the review macro really helped to ensure that our results were free from human error, allowing the developers to get good, reliable metrics.
Macros for Randomizing Testing
The largest macro I worked on was for randomizing sentences in our test templates. The macro let us replace certain words in the sentences with tags, and then my macro would go through and replace those tags with randomized words or phrases. For example, you could say "Call Alex." Alex could be randomized to any name. I set up the system in such a way that information could be put into the tags regarding what kind of information the contact needed to have, such as an office number or maybe two email addresses. My macro would create a table with all of the contacts it had to create while going through the template and give all of those contacts the information they needed in order to fulfill the test requirements. The C# tool I created for automating contact creation could then be used to create a vCard from that data. In just two clicks, we'd have an entirely new test template and the vCard we'd need in order to run the tests.
Various Tools for Making Tasks More Efficient
I also created a couple of smaller C# tools to help us with a few other miscellaneous tasks, such as listening to audio recordings from our tests. My tool would help organize the files, play them, and also copy file names to the clipboard to make it easy for us to paste those names into our templates.