testdriven.com Wrangling quality out of chaos

Archive for the ‘Continuous Integration’ Category

Lessons Learned from the October 2013 SF Selenium Meetup

Lesson 1: When creating single-page applications in JS, its really worth it to do a thorough job of unit testing, because the same tests can be used to test the compatibility of your code across various browsers.


Lesson 2: Don’t fall into the pitfall of a slow build. Design your infrastructure and your tests to be parallelizable from day one. This relatively small investment upfront will save you years of anguish in the future trying to fix your Test Technical Debt.



Notes from SF Selenium Meetup

01.25.2012 · Posted in Continuous Integration, Events, Selenium

Today I attended an excellent presentation by Denali Lumma at the Selenium SF meetup. Especially pleasant for me was an “Aha!, I told you so” moment when she described Okta Continuous Integration setup that relied on Git Top Branches and Selective testing. When I ran CI for the Google Checkout project, the lowest point of the day was always the “5 checkins went in and the build is broken in non-obvious ways” — time to selectively do a local rollback of each changelist to figure out who broke it. Meanwhile the VCS was locked down. Ouch that hurts! After some time we implemented something we call a Submit Queue which allowed a single changelist to be merged with trunk in a temporary workspace and tests executed on it before it was committed. Some commercial CI servers provide this sort of pre-submit testing. Okta has implemented the same solution using Jenkins and Git Topic Branches — brilliant! Additionally, they have an automated script that does intelligent test selection based on real-time customer usage of system components — double brilliant! Finally, they also scripted the configuration and deployment of the Jenkins server. I confess that I don’t quite understand the context in which they had this need, but I am sure its likewise brilliant.