Is there any functional automation tool for testing native iPhone applications? - iphone

I have been involved in doing web automation and Android automation testing. Currently we are looking for any iPhone functional testing tool which will help us to reduce the number of hours for regression testing. We are looking for an open source tool like Selenium or Robotium, where test cases are easier to write and implement.

If you wait until iOS 5 is released, I am sure you will find a component in Instruments that will do just what you want.

Non open source option could be SeeTest from experitest. It support both Android and iOS.

These days there are a number of projects to automate testing for native applications, including iphones. These two are the ones i see first on github searches.
https://github.com/TestingWithFrank/Frank
https://github.com/ios-driver/ios-driver
I remember there must be more but i do not recall their names

Related

Smartphone Development Framework & Platform?

I am a C Sharp.NET & Silverlight developer and now thinking to swicth to SmartDevice development specially for iPhone & Andriod based phones. I have looked over web and found some cross platform development frameworks like
http://developer.openplug.com
http://www.phonegap.com/
http://android.xamarin.com/Welcome
but not sure about which to choose. Naturally I would like to keep my learning curve less but also would like to choose platform which provides more power, so I am looking for your suggestions and 'Getting Started' tips and also which device you think will be in demand in future iPhone or Android ? .
Thanks,
Maverick
I wouldn't recommend any of those. The problem is, that those "cross-platform" development frameworks, still aren't cross-compilable. This means you still need to develop an application for each platform, but you can reuse heavy calculations if you are using models af MVC.
Another thing is that those frameworks still aren't 100% native supported, so you'll loose some features from the native frameworks when developing applications.
I've read a lot of articles and to be honest, these cross-platforms seems to be dying out, cause both Android and iOS are moving very fast in each their direction and the cross-platforms cant keep up. But it's still up to you.
In would recommend you to choose one of those platform and learn it from scratch. With your C Sharp background, maybe iOS and Objective-C would be the most natural choice.
Enjoy
Edit: Regarding you last question:
I dont think it matters which one you choose, both will be domination for a long time. You should pick the one you can identify yourself with.
since you are C# dev, go for MonoTouch. I heard good things about it.
Miguel de Icaza is behind Xamrin. He wrote the most prolific .NET platform for UNIX, mono. I believe both he and his team have the capacity to bring you the most coverage for common features on Droid and iOS. My friend has a startup and is releasing an app shortly for iOS on Xamrin. It is a video streaming app.
HTML 5 will get you the most cross platform for the investment. Of course, like everyone else has said, if you need lots of native integration or if you want to use the latest APIs upon availability, you have to go native.

Multiplatform development options

I have an application (actually a game) that I'm close to starting work on for iOS and the web, however I'd like to DRY up my code bases as much as possible so that I don't have to maintain so many aspects for platform portability. So essentially my two requirements are to run on iOS and the web, but I wouldn't mind it if I could also deploy it for Android as well.
What options exist?
If possible, which I am doubting at the moment, I have considered using Cappuccino (http://cappuccino.org/) to build out the app and then utilize NimbleKit for iOS compilation. Any ideas if this is possible?
What would work better if anything? Are there any frameworks in particular that would scale across platforms and mobile devices well + allow it to easily run on the web?
Also, Flash comes to mind, would that perhaps be best if developed properly such that it will compile over and not utilize non-compatible iOS functions?
The recently released monkey development framework deploys to both iOS and Flash:
http://www.monkeycoder.co.nz/
It's so new that I wouldn't necessarily recommend it, but it has a great pedigree: the creator made Blitz3D and BlitzMax before, and those were great game development tools.
That said, I would strongly recommend a combo like Corona for iOS and Flash for web, so that you're using optimal tools for each platform.
Check out Unity 3D. Works for iOs, Android, Web, Mac, and Pc. Not free for the mobile platforms, but it's worth a try.
You should try Titanium (it's free). You can use javascript and HTML5 to build your game and it can be compiled for iOS and Android. Since you will be using web standards to code, your application can be deployed for the web with few (or no) modifications.
You can use this project as a start point.

Functional testing automation tools for iPad/iPhone?

There doesn't seem to be many choices out there for running functional tests on the iPad/iPhone. A quick search brought up a few options: FoneMonkey, Frank, UI Automation.
Does anyone have experience with any of these or have suggestions for better solutions?
I'm the FoneMonkey project founder, so admittedly a bit biased, but I would strongly recommend you give FoneMonkey a try. It provides robust recording and playback for native iPhone and iPad apps, and you can easily extend custom scripts with Objective-C logic to automate virtually any UI scenario.
The next release (due out later this week) generates UIAutomation-based tests in JavaScript, as well as ready-to-run OCunit tests.
Stu Stern
I also found these:
UISpec: http://code.google.com/p/uispec/
Squish: http://www.froglogic.com/products/editions.php
Are there some more?
This is another tool that could be used for UI testing.
Debugging with console environment.
libcat : interactive iPhone application development
https://github.com/wookay/libcat
There is also one more app in app store. Name of app is TestStudio from Telerik. (http://www.telerik.com/)
It is good but you require Mac Book to install their extension where you can register your app and then use that app on iPad to test.
Hope this will help.

what are the main limitations of titanium as a mobile development platform?

I intend to start an iphone/android project with the titanium SDK for mobile. Do you know what are the main feature-wise pitfalls to avoid ? what sort of features will be very hard or impossible to achieve ?
I understand that there is a plugin system to circumvent these limitations. Do you have information on that ?
Thank you for your help,
Jerome Wagner
I have yet to find a particular piece of Android functionality that is missing from Titanium. Not sure if widgets are in the current 1.5.1 mobile release or are coming in 1.6. In any case, the coverage is pretty decent, as you will see if you try out the "kitchen sink" app.
But here are some things I find lacking:
Titanium's Android support is still much buggier than iPhone support. For instance, I can't get global events to work properly--that's pretty important functionality.
documentation isn't complete; the API docs are skimpy
you're on your own; Appcelerator employees don't bother to answer questions online (even when they concern obvious bugs on their end), unless you subscribe to a support plan
That said, I've found developing Android apps with Titanium to be much more enjoyable than dealing with the Android SDK!
I agree with most of what #Drew stated above.
The API documentation is for the "most part" pretty complete, yes there are a few missing pieces, but hey the framework is free, they push releases pretty frequently and all the source code is available for you to go through yourself. You also have full access to the Continuous Integration Builds
I believe the 1.6.0 release has addressed additional issues with Andorid support, there is also a bug tracking system for you to investigate and report issues.
You are not on your own any more than with any other similar framework... Occasionally employees will review specific issues that show up in the Q&A Forum but the forum is very active and there is tons of community support. I would be surprised if you could write most of an application from just cutting and pasting from the Q&A questions and you will find the rest in the Kitchen Sink Example or Tweetanium Example Projects.
You asked about a plugin system. Titanium offers the ability to develop your own custom native modules.
The Titanium's Module Developers Guide (PDF) isn't the best, but it will get you started.
As Drew said, many of the Titanium's Android support is buggier compared to iPhone.
Titanium is meant for people who never wanted to learn the native iphone and Android programming. If you know to develop applications using objective C and you wanted to develop applications for iPhone then don’t even think of Titanium, the same case applies to Android too. Only if you are lazy to learn a language, you can opt for Titanium.
1.The size of the Application is a big concern here.
2. Some of the features in Android which was shown to be working in developer reference were not working. Even after being filed as bugs, they were not updated in developer’s reference that it works only in iPhone. For example, “focus” events of the window is handled only in iPhone and never in Android.
To get to know in details, the problems Titanium can bring you read the following post:
http://mobworld.wordpress.com/2011/01/10/titanium-framework/

Make Phone Applications Across All Operating Systems [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Write once deploy on Windows Mobile 6, Windows Phone 7, Android and iPhone?
Currently I have created a 2 simple apps for iphone and 1 for windows phone. When I go to promote these apps they usually....well do you have this for android or blackberry or whatever.
Do I have to rewrite my applications in every environment in order to have them compatible across all the operating systems out there? Is there tools that address this or do you guys simply recreate the app in eclipse, xcode, visual studio etc..?
Complex applications generally need to be created with the native environment.
Simple applications can be created with cross platform tools like Titanium and PhoneGap:
- http://www.appcelerator.com/
- http://www.phonegap.com/
#Fraggle (see comment)
I have quite some experience with Appcelerator Titanium. The choice for native v.s. cross-plafrom completely depends on the kind of application you need and your knowledge. General considerations:
Can the application be created with web technologies like HTML, CSS and JavaScript?
What language / environment do I know the best (native vs web technologies)?
How much time and money can I spend?
Do I really need cross-platform compatibility?
Most mobile phone applications only provide an easy interface for internet services like news updates, traffic info, social media and video. Those applications can be easily written with web technologies. Therefor most mobile applications can be written with tools like Titanium. The great thing about Titanium: Get the native experience on multiple devices while only maintaining one code-base. Cheap way of developing cross-platform applications.
Many developers use Titanium because they don't know the native language (objective-C / java), but they have extensive knowledge about web technologies. This way they can create pretty nice applications without learning new languages. Titanium is actually used for many non-cross-platform applications.
Complex graphics, device specific tools and complex interfaces still require the native environment.
Native applications will always perform better and use device specific features, but do you really need that degree of perfection? Yes, develop native applications for every device. No, simply create one cross-platform application.
Check this page to see what Titanium can do:
http://www.appcelerator.com/showcase/applications-showcase/
You may be able to use a third party tool like http://www.phonegap.com.
There are many options for cross-platform app development, but I would suggest Adobe AIR as it is also supported on the Blackberry Playbook by RIM. As far as I know, it's the only cross-platform runtime that is supported by a major platform owner.
I have also seen it do well on Android, and iOS support is also advertized.
Well there are definitely some supposed "write once, run everwhere" solutions out there. Here is one from RhoMobile which specializes in this space. But that is just what a quick Google search turned up. I haven't tried any of them.
I had an app that was developed for Android, and I ended up essentially re-writing it in Objective-C when I wanted to port it over to iPhone. It worked out pretty well and took less time than I thought (considering I hadn't done any iPhone programming prior). But now of course I have 2 code bases that I have to maintain and when I add features I'll have to do it for both the Android and iPhone version.
So having a single code base that lets me build apps for multiple platforms would be great. Do any of the tools out there work well? Not sure. Do they give you full control to make your app look and operate the way you want it, and make us of all the OS's features? Not sure.
Qt (now owned by Nokia) is another provider of a cross platform mobile framework
http://qt.nokia.com/
Even though iphone and android seem to be missing from their official Supported Platforms list I think there is an Android 2.3 release just around the corner. Qt for Iphone also seems to be in the works.
HTML5 may be one solution if the app you providing is simple enough. Google is doing it this way. Otherwise, even you have anything "cross-phone" it may still feels alien.