Vince Mansel
iOS Mobile Application Development
Show Menu


November 2012
« Sep   Feb »

A Jenkins Automated Build & Test Environment for iOS App Development Part 1


Yesterday, I attend the Mobile Test Summit 2012 in San Francisco. It was a great event. Listening to the speakers talk about a range a technologies and approaches, it occured to me that I could really benefit from an additional layer of automation in my freelance development enviroment for ShowPlan and other projects. So while I have a break in the ShowPlan development activities (I re-submitted ShowPlan to the AppStore to fix a submission bug in reference to guideline 11.3), I am tasking myself with architecting and deploying an automated build and testing enviroment.

From the project side, here is what I want to accomplish:

  • Use this project as a Proof of Concept
  • Learn by doing, experimenting and documenting my findings
  • Treat this as Hacker Quest (aka: a Vision Quest with a Hacker mindset) with a 4 day time limit
  • Follow a Rapid Learning Process, (i.e. investigate, learn on the fly, deploy and implement, iterate)
  • Prepare to teach others about the process, learnings, results and pitfalls.
  • Do a first hand analysis and evaluation of tools and technologies being used by leaders in the field
  • Blog at least once daily about the process, and definitely blog about quick successes and learnings

In terms of technologies, here is my initial approach before diving in

  • Use Jenkins for Continuous Integration
  • Deploy on a Mac Mini platform for automated build and test (for a freelance team of 1: this will be plenty. More about scaling to dev teams of 10, 100, and 1000 later)
  • Develop on a MacPro (already in place)
  • Unit Testing with SenTesting
  • Trigger automated for functional and integration testing after dev build passes unit test and commits to main github repository
  • Automate blackBox testing with a combo of Selinium, Appium, Bwoken, Calabash, Cucumber, Frank. (This is the evaluation part to see what can “attached” to the automation environment)

I will not focus on any new features of ShowPlan. With that, I plan to test ShowPlan’s use of ios-Trello API Wrapper so this will likely involve automatically building a new project from scratch, populating the project with its ShowFlow, Scenes and Production Elements, then pushing that ShowFlow to Trello for Sharing. To verify this integration, the automated test will need to access data from   Trello (board, lists and cards) and compare that information plucked out of the ShowPlan project CoreData store.

OK. Enough said. Off to the Apple Store to pick up the Mac Mini (2.5 Ghz/500MB/4GB)