Stabilizing the CI By Re-runing Flaky iOS XCUI Tests

Stabilizing the CI By Re-runing Flaky iOS XCUI Tests

Automation, DevOps, iOSDev
Apple has released Xcode UI Testing a.k.a XCUI Test framework at WWDC 2015 which enable UI testing of iOS application straight from Xcode without any third party tools like Appium, Calabash or KIF.  These tools that call themselves mobile testing frameworks but they're actually little more than wrappers to UIAutomation or Instruments.  The release of iOS 10 has broken all these open-source mobile test automation frameworks as Apple stopped supporting Instruments technology. The only options remained was to use XCTest framework from Apple or wait for those tools to build a wrapper around XCUITest.  XCTest is not a new framework but it has evolved quite well with Xcode releases. You can read more about Pros and Cons of using XCTest for iOS app testing here XCUITest + Continuous Integration Problem XCUITest framework is still new and…
Read More
Top 5 reasons for Continuous Integration failure

Top 5 reasons for Continuous Integration failure

Automation, DevOps, iOSDev
Agile software development can't be perfect without effective Continuous Integration process. Continuous Integration a.k.a CI is a process of continuously analyse, build, test and deploy software. Continuous Integration checks an internal quality of the code and tests the business logic of the product before we release it to the production. Ideally, we shouldn't allow software to deploy to product when build is broken. You can read best CI practices here, however Continuous Integration not always works for every agile team. Some agile teams takes CI practices very seriously, some teams do it for sake of doing agile, some teams ignore it completely and some doesn't have CI server setup yet. There are various reasons, CI practices are being ignored within team because business has different priorities, Product Owner doesn't understand importance of internal quality,…
Read More

Pros and Cons of using Xcode Server for iOS Continuous Integration

Automation, DevOps, iOSDev
Continuous Integration a.k.a. CI is an integral part of iOS development process which gives early feedback when something breaks during application development. In an agile application development, producing working app is not only writing good code but also setting up infrastructure to deliver it continuously. The process of Continuous Integration and automating the build can help to achieve continuous delivery.  There are various continuous integration tools available in the market which can be used in the iOS team. The CI server solution can be self hosted or cloud. You can get whole list of CI servers here with recommendations. In the iOS development we have few challenging options while selecting self hosted CI server Xcode Server Jenkins TeamCity If you are looking for cloud solutions then there are some promising services like…
Read More
XCFit 2.0 Released : Full Stack BDD in Xcode + Page Object + Swift Package Manager

XCFit 2.0 Released : Full Stack BDD in Xcode + Page Object + Swift Package Manager

Automation, iOSDev
XCFit 2.0 Glad to announce new version of XCFit with brand new features. You can find release notes on Github here. If you are new to XCFit then XCFit a.k.a (XCUI, Cucumberish and Fitnesse Integrations Tests) is a full stack Xcode BDD framework for Swift iOS and macOS apps. XCFit allows us to write API level, UI and Acceptance Tests with Swift in human readable language using tools like Cucumber and Fitnesse in Xcode. We can still use Apple's brand new UI Testing framework (XCUI) under the hood of Cucumberish. XCFit is fully automated solution for Cucumberish and Fitnesse. You can use 80(Fitnesse):20(Cucumberish) formula to automate Acceptance and UI Testing for better coverage and faster feedback. XCFit is available on RubyGem,  CocoaPods and Swift Package Manager. XCFit 2.0 has just released ! XCFit 2.0 New Features Improved Xcode Templates with support of Page…
Read More

BDDfire: Continuous Integration with TravisCI and new webpage

Automation
BDDfire : New Home BDDfire is an instant Cucumber-BDD framework which allows us to setup entire Ruby-Cucumber frameworks in a minute. BDDfire is hosted on Rubygem server and currently  has more than 80K downloads. I am glad to announce that BDDfire has now got new home on GitHub pages. BDDfire is current hosted on static page generator by Github and can be accessed here . http://shashikant86.github.io/bddfire/  Or You can visit it by clicking on image below. Continuous Integration with TravisCI BDDfire was lacking CI support which was pain while contributing and merging pull requests. Good news is that BDDfire now supports Continuous Integration service using Travis CI and we got some tests ! Travis CI page for the BDDfire build will trigger after every PR and commit on master. The build status can…
Read More

WWDC 2016 : Continuous Integration with Xcode Server and XCTest updates

iOSDev
WWDC 2016 The Apple Worldwide Developers Conference ( WWDC 2016 ) brings us lots of improvements in softwares although there are no hardware release this time. There are many software release including iOS10, macOS Seirra, Siri on Mac, Xcode 8 etc etc there is brief  summary of the what has been announced at WWDC 2016 is here on The Next Web Blog. I would recommend watching the session "Platform State of the Union" which is kind of keynote for the Developers where you can find lots of the announcement about development tools including Xcode 8 Apple File System Swift 3 : Open-Source Status Swift Playground app Code Signing Improvements In this post we will cover whats new in terms of the Continuous Integration and Testing. Xcode Server and XCTest Apple…
Read More

Inaugural London Jenkins Area Meetup #jenkinsldn

Personal
London Jenkins Area Meetup I have had lot of fun organising London Jenkins area meetup at ThoughtWorks London office in Soho. I would like to thanks ThoughtWorks for sponsoring first ever London Jenkins meetup. There was massive crowd of Jenkins users all over London. The meetup had following agenda •  Registration, Networking with Pizza Beers started 6 pm onwards at ThoughtWorks office. Srinivas from ThoughtWorks has arranged everything there, big thanks to him. •  Announcement: 7pm •  Talk : Jenkins 2.0 by James Nord  : 7:05pm •  Twitter Competition:  Giveaway : Jenkins t-Shirts and Stickers:  8:00 pm I kicked off meetup with brief introduction of the Jenkins area meetup and what topics we going to cover in the future Then James Nord from CludBees given a talk on Jenkins 2.0,…
Read More

My Contribution to Jenkins 2.0 Press Release

Personal
Jenkins 2.0 Hope you are enjoying new and shiny features of Jenkins 2.0 since it's release. The press release is on Businesswire here . New feature include • Pipeline as Code  • Improved User Interface and User Experience  • Security & plugin Enhancements  • New Jenkins WebSite as one stop for getting started guide You can find out blog post from Kohsuke here about the release. In this post, I will cover my contribution to the release of Jenkins 2.0 project. Quote for the Press Release The full press release has published on BusinessWire on 26th April, detailed information of the Jenkins 2.0 feature. Business Wire, a Berkshire Hathaway subsidiary, is a company that disseminates full-text press releases from thousands of companies and organizations worldwide to news media, financial markets, disclosure systems,…
Read More

Get started with brand new Jenkins 2.0 with Docker

Automation, DevOps
Jenkin 2.0 The new version of the Jenkins a.k.a Jenkins 2.0 will be released very soon. Jenkins 2.0 will be bringing us some new amazing features. Pipeline as Code  Improved User Interface and User Experience  Security & plugin Enhancements  New Jenkins WebSite as one stop for getting started guide The detailed information about the new release can be found out here In this post, let's try out new version of the Jenkins with it's own Docker image. Jenkins inside Docker The fastest way to get started is getting the docker image and run containers. The CloudBees has already created a Docker image jenkinsci/jenkins with tag of '2.0-beta-2'. Assuming that, you have Docker ToolBox or similar setup on your machine, you can get the latest image. You can follow my previous post on practical…
Read More

BDDfire 2.0 with Docker, Gatling and Accessibility support

Automation, BDD, DevOps
BDDfire BDDfire allows us to setup Ruby Cucumber framework within a minute with all related toolkit. It became very popular as it gives us ability to setup Ruby-Cucumber framework without wasting time while setting up test framework for new projects. You don't have to spend months and months setting up your frameworks and research the tools. BDDfire currently has more than  69,000 downloads and glad to know that few companies already started using it. What's new in BDDfire 2.0 Today, I am glad to announce BDDfire 2.0 with Docker, Gatling and Accessibility support. It means with BDDfire you can perform Load testing, Accessibility Tests and execute your scenarios inside the docker containers. You can find all the details on README file on Github. With BDDfire 2.0  you can Setup instant Ruby-Cucumber…
Read More