This post is part of our Summer Intern Blog Series! Each of our most recent class of interns wrote a blog post on their biggest accomplishments and lessons of the summer. This installment comes from Oliver, a rising senior studying computer science at Worcester Polytechnic Institute. Other than computer science, his interests include, but are not constrained to food, music production, video games, and walking.
AppNexus has spoiled me. Between our campus community hackathon, company-wide field day (a day during which everyone in the New York office goes out to Liberty State Island to compete in lawn games), weekly catered lunches, and the various affinity clubs one can join, AppNexus goes well out of its way to create a fun, relaxed environment. Everyone is encouraged to pursue their interests and to help others pursue theirs. I joined AppNexus as a testing analyst on the Engineering Quality (EQ) team, where our primary responsibility is to create and run end-to-end tests on the technical frameworks that we build and maintain.
My very own test plan
Leading up to the start of my internship, my manager presented me with a few different options for my summer project. We worked together to decide which one I would pursue, based on my personal goals and expectations.
For context, the EQ team is split up into two groups, developers and analysts. The developers work to build and maintain the testing framework that analysts use to write and run tests. As an analyst, my project was to create and execute a new test plan. A test plan is a document that takes a close look at a particular client-facing feature or interaction of features offered on the AppNexus platform. It outlines the expected client use cases from which test cases are derived and implemented. Ideally, anyone in the company should be able to look at a test plan to learn about a new feature from both a technical and business perspective.
My project revolved around testing a new type of budget pacing. This new feature allows AppNexus to smartly control advertiser spend to ensure that their budget is spent as consistently as possible over a given time frame. To teach others about this part of the system, let alone test it, I had to learn everything there is to know about the behavior of the feature first.
Getting acquainted with budget pacing
On a technical level, I learned in-depth about several different applications on the AppNexus Platform, their interactions with each other, and their interaction with the feature I was testing. I also had to learn how this feature interacts with other pacing features that the company offers to make sure that I gathered all the appropriate client use cases. The next step was to take these categories of use cases and document actual test cases to develop. In my case, this was an organic process of trial and error, debugging, and lots of communication. Once the test plan was written, it needed to be reviewed by both the EQ team and the application owners who initially taught me about the feature. Finally, the last step was to write and run the tests using our testing framework.
Working on EQ been an eye-opening experience. Testing frameworks had never been the focus of any previous computer science courses I’ve taken, so this internship was full of new experiences. And as the last line of defense making sure new features work before they’re released to clients, the EQ team gets a uniquely broad and deep perspective of the entire AppNexus ecosystem. Getting the chance to become deeply familiar with a huge, enterprise-level platform made this a one-of-a-kind summer.