Posts

iOS native app testing using Frank

Image
From quite some time I have been exploring mobile application testing. Primarily I have been looking into Calabash and Frank . Let's talk about Frank a bit more in this post. Frank is developed by a fellow thoughtworker  Pete Hodgson . It's a light weight UI based automation tool. It's very easy to set up and is apt for testing native iOS app.  It's based on cucumber and UISpec and can be used to write acceptance test for iOS app. Let me brief some steps needed to set it up, it's suggested that you traverse to the iOS application root's directory and then run these commands : You need to install the frank-cucumber gem. Run the command " gem install frank-cucumber " Next command is " frank setup ". This command will create the Frank sub-directory which will contain files needed to generate the Frankified version of the application. Next command is " frank build " which will create the Frankified version of the applica...

What Test Automation won't do for you ?

Test Automation is a main stream activity and it's goal is to strengthen the rapid pace of development and augment the continuous release process. In order to keep up the with the pace of development, there has to be a sustained effort to maintain and update the test automation suite.  So test automation has to be a planned activity and included/incorporated in the project planning.  I think I have enough write ups on test automation where in ether I am detailing a new tool or some tool comparison or some tricks and tips or explaining how to set up stuff or best practices etc. This post is to highlight what test automation won't do for you. This is mostly out of my experience and conversation with different people from various roles. Definitely when you read you will have more to add or subtract (which is fine and individual's opinion). Test automation won't substitute for manual testing.  It's an on going activity. It's not a one time investmen...

sh: make: command not found

Image
I was trying to set up my personal mac for playing around with calabash . So I started following the instructions mentioned here . When I ran the command "gem install calabash-android" I got the below error. Then after googling on web I realised that this is happening because I upgraded my Xcode post the Mountain Lion update. So now I am running Xcode version 4.6. Once you install Xcode, you will have to install " Command Line Tools ". This will be available under XCode -> Preferences -> Downloads . Once the command line tool is installed try running the following command in terminal: which make and you will see the result as " /usr/bin/make ". Then I tried running the gem install calabash command again and it worked.

Managing a Production release every 2 weeks

Image
Production release ??? Every 2 weeks ??  I am sure the title of the post would have compelled you to think twice but thats what we have been doing here in Thoughtworks in one of the project. And I am happy to share that I am not the only one who is enjoying this 2 week release cycle, there are bunch of other projects which has the same delivery cycle. Since this is repeatable and has been achieved by other team as well, so we must be sharing some commonality in terms of process and techniques which helped us achieve this.  What are those processes ? How big is the QA team ? Do you have a separate release management team ? How much is the automation coverage ? Do you automate all the regression tests ? I am sure you would be having these questions in mind as you are going through the post. Let me explain what empowers us to make a production release every 2 weeks. We here in ThoughtWorks follow agile methodology. I am sure if you are reading this post you ...

Education Based Startups

Image
When we hear the word " education " the first thing which comes to the mind is a " formal system of education "- going to school, colleges, engineering colleges etc.  I have subscribed to a bunch of blogs which I generally try to go through to keep myself updated on tech happenings across the world. Off late I noticed that there are quite a lot of education startups, not only in US but few in India as well. I have published the list at the bottom of this post which I found on Quora*.  Problems they are trying to solve? If you go through their website, you would find that most of these startups are trying to solve the problem of : bringing the courses online to cater a large group of audience providing specialized courses like course on coding, K-12 learning innovating the way courses are delivered community based learning What online education offers? Before I discuss if there is a market (which surely is) for online education, we need ...

How to set up Calabash for Android App Testing

Calabash is an open source project for testing mobile apps. It's based on cucumber  so allows one to author test in business readable domain specific language. Calabash is available on Github . I have a machine running Mac OSX (version 10.8.2) and I will be detailing steps on how I installed Calabash and got my first test running. Couple of things which you would need before installing Calabash is : Xcode, Ruby and Android SDK.  I installed Homebrew which actually helped me upgrading the ruby to version 1.9.3 pretty easy. Once you install Xcode, you would have to install Xcode command line tools. This would be in  Xcode Preferences --> Downloads Tab, select the Command Line Tools and click on Install. Post the Xcode you would want to check the ruby version, you need 1.8.7 or higher. If you have brew installed then running " brew install ruby " would upgrade the ruby else if you have rvm installed then try running " rvm install 1.9.3 --with-gcc=c...

Agile Testing & Importance of Stubs

Image
Generally when we are trying to develop any application which exists in the ecosystem of other applications, we tend to spend a lot of time in solving dependency issues. There are many times when these external components would be down and would stop your related testing activity. There is a smarter way of tackling with components which do not directly impact you - which is Stubs. It has it's own merits and demerits. I will be touching a little upon the importance of stubs from testing point of view. I am trying to highlight what I have been working on for quite some time. Stubs as defined on wikipedia is a piece of code which represents other programming functionality.  For around 7 months, I was working on a project where in we were trying to create a product/software (let's cal it X for sake of simplicity) which would fit in a stack of systems. Product X was dependent on other systems and would need to get it's input from bunch of other systems (let's say...