How Rally Does Front-end Testing


Will Klein

Let me tell you

a story

In a world...


Without tests

The Interview


Write these specs!

Pass these specs!

WTF am I doing?

What's the point?


Regressions

Documentation

Scale

Our dev process


Test planning

Building

Automated Testing

Code Review

QA

Merging

Test Planning


Involve dedicated QA

Review acceptance criteria

Tests we expect to write

Building


Spike out implementation

Write tests

Run tests

Run all tests

Automated Testing

Code Review


Did you write tests?

Are you missing tests?

Are your tests valid?

QA


Deploy to test cluster

Merging


Merge to master branch


#1: anything in the master branch is deployable


Better Software


~25k unit tests

~4k functional tests

a build pipeline to rule them all

The Reality


We break tests all the time - good!

We have flaky tests - ouch!

Builds take a while - hmm...


XKCD


What is the #1 programmer excuse
for legitimately slacking off?

Compiling Running Tests!

Continuous Integration (CI)


Jenkins

Front-end Tech


Jasmine 1.3

Sinon.js

CoffeeScript!!!

Grunt

Selenium

Chrome WebDriver

Back-end Tech


JVM-based

Java

Clojure

Functional Testing


Selenium

Ruby


Runs full app

Hits the UI w/ Selenium

They take forever (technical term)

Notice Polygot?


Java

JavaScript

+
CoffeeScript
Ruby

Build Pipeline


Jenkins

Also see:

CruiseControl

TeamCity

TravisCI

Functional Tests


They take forever to run locally


So we use on-demands

Demo Time!


Look at stuff

Thanks!


@willslab

github.com/willklein

google.com/+WillKlein

How Rally Does Front-end Testing

By Will Klein

How Rally Does Front-end Testing

HartfordJS, Apr 10, 2014

  • 2,004