I'm new to android testing. Can anybody please suggest me where I can get sample application along with test projects?
There's framework called
Robotium
http://code.google.com/p/robotium/wiki/Getting_Started
http://testdroid.com/tech/54/automated-ui-testing-android-applications-robotium
also
http://pivotal.github.com/robolectric/
http://pivotal.github.com/robolectric/user-guide.html
you might want to try it out.
Robotium is overkill for the moment, though you should remember it.
Start by reading the material regarding Testing in the Developers Guide. Its on the Dev Guide tab. One area at the bottom of Framework Topics, the other is under Developing.
There are two tutorials: Hello, Testing and Activity Testing. There's also a sample test project for the Note Pad sample app.
Of course, testing can mean many different things. I can't think of anything offhand that's for beginners. I know Beck's Test-Driven Development, and Working With Legacy Code (forgot the author, but you can Google it) for learning how to effectively unit test in OOP environments.
This should lead you in the right direction. It includes how to build a sample application and additional resources.
Related
I have to develop an android application that use geolocation, and I am confused to choose between web framework mobile and native Android application, and if I must to choose a web frawework which one do you recommend to me?
Actually there are many kinds of framework : like JQuery mobile , Phonegap , titanium , Windev for mobilephones
Regarding the firs part of your question, I'd say this depends on a couple of factors:
1.) Previous experience: Do you already possess experience working with HTML/CSS + JQuery or do you possess experience working with Java? If your answer is yes to the first part: go for web framework development. If your answer is yes to the second part (Java): go for native app development, trust me, it's really easy to pick up if you have already worked with Java before and possess basic knowledge about inheritance and working with packages etc., also, start with the tutorials on developer.android.com If your answer is no to both parts of that question then I'd suggest you go with native app development since picking up Java is relatively easier compared to HTML/CSS+Javascript, in my opinion. If your answer is yes to both parts of the question (i.e you've worked with both Java and HTML/CSS+JS) then look at point 2.
2.) Personal Preference: Clearly, you don't have one right now so just go with what feels easier.
3.) For a geolocation app I'd say native app development is easier, I've been working on a geolocation based app for a while now and I felt that using the Google Maps API was pretty easy and you'll also find significant amounts of help from stackoverflow since everyone and their mothers have tried to make a geolocation-based app. I found the answers to most of my problems here on SO.
If you need more suggestions on this matter don't hesitate from asking!
I want to test my project using an instrumentation test. I am a beginner at this.
Can anybody provide a basic tutorial for this?
Robotium is a great tool for testing Android app's you should take a look at it and it's very easy to use.
http://code.google.com/p/robotium/
To use ActivityInstrumentationTestCase2 we can create a wrapper over it. In order to do so you can try out example that this blog talks about.
testing Activities in simple way
The idea used is to take out common code in wrapper called BaseActivityTest so that while testing you just need to do minimum steps, and your activity gets tested too.
I am new to Android but not to programming. I have taken C++ in school and we have been taught how to create objects, but not how to build robust programs using multiple objects. So you can see that using java to build Android apps leaves me with questions.....
thinking like an object oriented programmer, do i just shop through a list of classes until i find ones that i think would suite my app
is there a definite method of choosing the best classes for your project
do i find an app similar to the one i am trying to create and try to find what classes they used
any thoughts appreciated!!!!!!
The best way to learn (for me, at least) is by making small incremental changes to an example so I can how all the various elements of it work.
Download the examples (listed here) - but accessible from your AVD and SDK manager tool from within Eclipse (Window -> Android SDK and AVD Manager).
Start by modifying those examples. They are the best possible examples you can get for much of what you will want to do.
I'd recommend you start with Tutorials and also read about Application Fundamentals - they should get you started. Also browsing Classes is useful if you like wading through lots of technical docs (I do). Those three links are definitely worth looking at.
Well first when building Android applications you need to:
Figure out what your application will be, and how it would work.
Next you would need to find out how you will implement the android classes.
i would recommend first reading a book on Android development. One that really helped me and made me an advance developer was CommonsWare
You should really get these books. When you finish you will be well on your way.
I'm looking at using Frank for UI testing our iOS application(s). Is there a similar library with support for Android? I'm currently using Robotium, but thought it would be nice to be able to specify tests in the same format across both platforms.
Would it be possible to get something like JBehave to run on Android?
As scompt.com said. The project is now officially open sourced and is called Calabash.
I wrote a short blog post about it:
http://blog.lesspainful.com/2012/03/07/Calabash-Android/
Calabash is also available on iOS and with a bit of work and two similar apps you can run the same feature on iOS and Android.
You can read more general stuff about Calabash here:
http://blog.lesspainful.com/2012/03/07/Calabash/
The guys from lesspainful.com have open sourced some of their special sauce on github. It lets you do cucumber testing on android in the emulator and local devices. Because it's the same code that they're running for their service, you should be able to test your features on multiple devices if you sign up.
Could you use Cuke4Duke to drive Robotium? Or use JRuby/Cucumber to drive Robotium?
No, robotium is a BDD on dvm not jvm thus no driver exists with jvm frameworks such as jbehave, etc
I've recently started using www.LessPainful.com - there are some limitations (you can't write your own steps) and it's quite an early stage company, but so far the testing has at least proved useful, especially with different screen sizes, plus they've automated some good things like orientation (I think they use motors on real phones!).
(for reference on iOS we're using Frank - https://github.com/moredip/frank- and on WP7 we've written our own - https://github.com/Expensify/WindowsPhoneTestFramework)
I've been able to open-source my work in this area:
https://bitbucket.org/proxama/windows_android_cucumber_runner
https://bitbucket.org/proxama/android_cucumdroid
It allows you to write your own features and steps to exercise the UI automator. This means it runs all on the device.
It's probably not as easy to use as it could be but the Windows gui app is designed to wrap the ANT tasks that make it actually run.
I have tested my app using MonkeyTalk. It may help you. https://www.cloudmonkeymobile.com/monkeytalk
I am currently starting to create an app for a small charity company. But I'm not entirely sure how to properly learn how to code for the Android OS. I have searched online for tutorials, but most stop at the same stage and only show you how to launch the "helloWorld" app.
My question is this:
1) Will using solely XML be sufficient to code an app? Does it require working in partnership with Java?
2) Does anyone know of any books, recommended books of course, that break everything down for you step-by-step?
Android Developer site very good to give you all ideas. Start from Hello, World
1.) Not at all. XML is ONLY used for the layouts.
2.) There are a few books out there that I'm sure someone will come along and recommend, but I've found the tutorials here to be the best start.
In your case, I'd look at AppInventor which allows you to create small Apps without coding (at least that's what it says, haven't used it yet myself)
1) No, you can use XML for interface, but you can't write an Android app in XML :) You are not required to work with Java, but Android language is based on Java, so knowing Java is an advantage while learning to code.
2) Did you installed Eclipse and the plugin for Android?
The Android Training is pretty useful, and I've learnt a lot from the tutorials and the sample code provided there. (The Notepad app is way more complex than the Hello World tutorial ;)!).
Also, take a look at the answers on that question: How can I learn Android?