tech blog

AppNexus is today’s most powerful, open, and customizable ad tech platform. Advertising’s largest and most innovative companies build their businesses on AppNexus.

AppNexus Engineering@Scale: Building and Scaling a Test-Driven Culture

| Comments

AppNexus recently had Daniel “dB” Doubrovkine in the house as a part of our Engineering@Scale speaker series to talk to us about building and scaling a test-driven culture. dB is the head of engineering at Artsy, a New York City-based start-up that aims to make art accessible through its online platform to discover, discuss and collect art.

dB’s talk addressed two main points: what tools and technology are needed to test successfully and what a working culture of testing looks like.

Tools and tech for testing

As a self-taught engineer, dB is a big advocate for open source projects. He points to SQLite as the “holy grail” of test-driven culture, noting that SQL has 1000 times more test code than actual production code. Most corporations are on the other end of the spectrum however, with more devs than testers and no consistent model of testing across the organization.

Artsy’s model is somewhere in between: they have more devs than testers but run twice the amount of test automation code compared to production code. Artsy began to rely heavily on testing following the site’s launch on the NYTimes. Flooded with web traffic, their existing technology became inadequate. So the team began building node-based applications and writing Javascript, including Node, Mocha, Sinon, JSDom and Zombie.  You can’t have a test-driven culture if you don’t know how to write tests and dB stresses that it’s mission critical for engineers to understand these Javascript tools.

What a working test-driven culture looks like

According to dB the signs of a working test-driven culture are in the everyday, little things.

  • Everyone is on the same page about the value of testing and tests are second nature.
  • Bugs become opportunities to test and fix. And most importantly to learn.
  • Features start out as tests and grow from there.
  • Developers have lower stress-levels, especially when it comes to releasing code, because testing lets them be confident in their work.
  • Teams have confidence moving forward with things like refactoring code.

For dB, testing is a grassroots effort. Engineers have to count on themselves so ownership and collaboration are both key. dB suggests starting small – with bugs that become tests that become fixes – and slowly ramping up your test-driven culture from there.

Ultimately, a test-driven culture is about building something that is sustainable. Focusing on the testability of individual components is the best way to scale a system and a test-driven culture provides a rock-solid foundation for successful scaling.