I spent Monday and Tuesday making a third pass at my suite of web performance tests for an internal database tool. This time around, I wrote up a design document which detailed my proposed changes to the existing codebase and cleared it with my supervisor, to ensure that I wouldn’t overlook anything major again.
I am fairly happy with the results. I ended up with a package of standard tests which run through various functionalities of the tool, looking for errors and unacceptable response times. These will be executed nightly, so that if any daily development changes induce a bug, it will be caught right away rather than later (when it is much more expensive to fix). These standard tests are mostly component driven– I created a couple dozen components and updated existing components to be dynamic and data driven, whilst preserving compatability with legacy code. These components each execute simple tasks such as logging in, looking up a certain piece of data, making changes to various fields, and so on… the idea is that they are modular building blocks that can be used to create further tests.
I checked in my new tests to the source control and they are now being executed nightly, although there is still a bug with one of the tests that Ernie is going to take a look at. As you can tell, though, I am learning quite a bit about web performance test automation!
On Wednesday, I spent the afternoon shadowing Ernie as he troubleshooted some technical issues. Witnessing him winnowing down the various possibilities was a great chance for me to get a sample of exactly what a Senior SDET does. I also started reading a book on Service Oriented Architecture (SOA), in order to broaden my understanding of the relationships between the various software components the company uses. This will be invaluable moving forward in my career, as so many companies either already use SOA or are moving towards it.
I ended my week researching the topic of web test creation for Microsoft Silverlight applications. Silverlight is a web application framework with capabilities analogous to Flash or Java applets, and which uses an encoded binary body messaging protocol called msbin1. Unfortunately, official support for Silverlight is weak, and there is no built-in way to edit msbin1 messages in Visual Studio. So in order to make a quality & dynamic web performance test, you need some kind of third-party plugin to handle decoding & encoding of msbin1 objects.
At first, I tried to write my own plugin by following a tutorial on MSDN, but it didn’t really work that well. I did some research and found a third-party solution that I am pretty happy with, and presented it to my supervisor. The only problem with this third-party plugin is that documentation is very poor, so I have begun drafting a document which explains it’s use and capabilities. I will also create a few sample tests to demonstrate the plugin’s capabilities.
Friday, I came in to see a bag full of goodies sitting in my office chair. It was chock-full of Magic cards, Kaijudo cards, deck boxes, and a D&D soda cozy.
On the company culture side of things, I attended the employee pre-release party for Magic 2014. A giant booster-draft card tournament was held… I ended up winning two of my four matches, which I was relatively happy with, given how good at the game many of the employees there are. I also met several different people from around the company and learned about what they do. Oh, and pizza was provided… it seemed like there were around a hundred pizzas, although that could have been my imagination.
I walked away with a ton of booster packs, exclusive promotional cards, and good memories. Being an intern does pay!