Showing posts with label Jenkins. Show all posts
Showing posts with label Jenkins. Show all posts

Thursday, September 5, 2013

When a Wish Falls into Your Lap

I cannot say the word "PumpKing" without this image
popping into my head ;).
This is a bit amusing, a bit serendipitous, and a whole lot of awesome all rolled into one. I don't typically talk about my company in this blog unless it's to make a general point or to highlight something I find interesting, and today's comments fall squarely into the latter.


For quite awhile now,  I've been hoping for a window of opportunity to look at and open up some venues of more technical engagement for both myself and the software testing team, in ways that go beyond writing automation scripts. One of those opportunities literally fell into our laps a couple of weeks ago.


My company has a long running and enterprise level product that was originally written in Perl. As part of the development process, over the years, we have had a movable role of build manager, code health manager, deployment specialist, front line troubleshooter, and whip cracker all rolled into one. The term (that has a lot of history in the Perl community) for this role is the "PumpKing" (holder of the pumpkin, they who keeps the system afloat, the puller of the strings, themz who pulls the taps to keep the good stuff flowing, call it what you will).

The responsibility of PumpKing has been handed off week after week to the various programmers in a round-robin fashion. A few weeks ago, I made an aside about one of the programmers (who I happen to be good friends with) not living up to their responsibility as "PumpKing". This had to do with running stand-up that morning, i.e. it starting late, and my comment was totally in jest. Their response was (and with a smile, I might add):


"Well, Michael, if you would like to get into the PumpKing rotation, we can certainly arrange that!"


I chuckled, thinking the comment was likewise in jest.


It wasn't.


At our next Engineering team meeting, said programmer made a motion that "all software testers should join the PumpKing rotation". I snickered again, thinking this was follow-up on the joke. What I was not prepared for was when our VP of Engineering said "I think that's a great idea!"


After I did my double take, and realized that I was not being punked, I stopped and thought about what an awesome opportunity had just been handed to us. Why is this an awesome opportunity? Because in one fell swoop, the potential number of "active duty build and deployment engineers" just went up considerably. For a group of software testers looking for an excuse/opportunity for more technical engagement with the development team, we were just given the keys to a gold mine.


Needless to say, there's a lot of learning to be done so that we can do end to end builds, merges, CI, testing, deployment to various environments and interacting with Ops to make the final pushes to production. Additionally, the PumpKing runs stand-up during their week, is on call for issues, interacts with front line support for rapid response of issues, etc. It's kind of a big deal!


I'm excited because this is a real opportunity for those of us that want to have an avenue to better understanding of the technical underpinnings to really get into it. We have the potential to do hot fixes if needed, we are responsible for pushes in our development and staging environments, as well as with pushes to production. It's visible, it has the potential to get wild, and it's a great way to get knee deep in the muck and grime of the real code base and understand how everything fits together. In short, it's a dream come true for a software tester wishing there were some way to more effectively blur the lines between programmer and tester.


These past couple of weeks have been all about learning the ropes, practicing along with the current PumpKing, and getting ready for my turn in the saddle... which starts this coming Monday morning and extends to the following Monday morning.


Let the festivities begin ;).

Wednesday, March 14, 2012

WebDriver and Jenkins and Robots, Oh My!

Another Wednesday, another San Francisco Selenium Meetup. It's been ages since I've hit two Selenium meetups in a row, so my thanks for holding them on Wednesday nights lately.


Our intrepid flock of fellow nerds has gathered at Eventbrite, which is just a couple of blocks from Caltrain (yay!) and they've brought in bahn-mi sandwiches of a dizzying variety, beer, soda and water a plenty, and there's a standing room only crowd.


Tonight, we are learning about how to use Selenium (webDriver) with Jenkins, which is a Continuous Integration server I've wanted to play with for some time. Jenkins Creator Kohsuke Kawaguchi gave a fast paced presentation and demo of Jenkins and how it can interact with the Selenium Grid. He also shared some frustrations and some requests for how selenium could be extended, such as not having to programmatically create the URL, allow for easier proxy settings, and a native report generator (output can be captured with code hacks already, but having a native report formatter would be a sweet addition).


Selenium's creator, Jason Huggins, sporting a very hipster beard these days, showed off his robot called Bitbeam. Now maybe the idea of a robot doesn't seem all that interesting, but how about a robot that can play Angry Birds? Well, that's what Bitbeam does. It uses an actuator to act as a finger, and that finger gets lowered onto a table, and that actuator actually fires Angry Birds at targets (quite well, I might add :) ). You can check out the back story of the robot at bitbeam.org. The sub-title of the talk was "How Robots are the Future of Testing". The idea is that the robot could potentially be used to automate testing on smart phones or tablets. It's an intriguing idea to do location type tests. It's automated "manual" testing taken to a whole new level.


Theo Cincott and John Shuping, both engineers with Eventbrite, took the last spot to show off specifically how they are using Jenkins and Selenium in their production environment. Eventbrite deploys each week, which makes sense considering their market (they sell tickets to events, so they need to update regularly). They also do daily bug fix releases. In Eventbrite's environment, Jenkins is the central hub of their builds, their firing off for tests (unit and Selenium) then to their production systems and the rest of the world. So often we hear people talk about how they do this stuff with little in the way of actual details. This talk shared the flow and the challenges they face when they are doing their deployments. Too much to type here, but I'm sure the slides will be posted soon :).


Again, my thanks to Ashley Wilson and the rest of the team at SauceLabs that puts on these meetups month after month for us nerds to see how our fellow nerds are using this stuff and making it work in their environments. It helps make those of us still learning about all this get an opportunity to get just that much better.