<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>General &#8211; Wiebe Elsinga</title>
	<atom:link href="http://wiebe-elsinga.com/blog/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiebe-elsinga.com/blog</link>
	<description>Blog</description>
	<lastBuildDate>Tue, 26 Nov 2013 09:23:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.8</generator>
	<item>
		<title>Functional testing for Android</title>
		<link>http://wiebe-elsinga.com/blog/functional-testing-for-android/</link>
					<comments>http://wiebe-elsinga.com/blog/functional-testing-for-android/#comments</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Tue, 26 Nov 2013 02:18:52 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Functional testing]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=1480</guid>

					<description><![CDATA[Applying functional testing is not a new technique during the development of Java software. Writing functional tests gives you a good understanding about the stability of an application or system, during code modifications or if new features are added. But what about using functional testing when developing an Android application, it is also easy to achieve? &#8220;And, is the application still works?&#8221; or &#8220;Is the application broken?&#8221;, these are questions that developers should be able to answer if a code change has been made or an improvement has been added. This is no different when developing an Android application. Also, the use of TDD (Test Driven Development), in which first the test is written, after which the code follows, is good practice. Automated functional testing has become part of software development. Using Selenium and Fitnesse for testing Java application, combined with Jenkins has become avery day pratice to most Java developers. So you would expect that this would differ during the development of Android app. Unfortunately this is not (yet) the case. Because of the relatively rapid growth of Android, these testing methods aren&#8217;t yet mature enough. Lets look at four testing framework that can be used during Android app development: How to install the specific framework is not part of this article. With the use of code examples pros and cons will be explained for the specific framework. &#160; The Android application that is being tested is a simple calculator. The common test scenario we will be implementing is testing if ‘1’ + ‘3’ gives a result of ‘4’. UIAutomator The Google test framework UIAutomator makes it possible to write simple Java (and JUnit) functional tests. The framework is not tied to the application that needs to be tested, but also has access to the Android platform itself. This makes it possible to adjust your Android emulator or physical phone settings while running your test(s). This means that you can test the behavior of the test application if, for example, the internet connection is being switched off. UiObject allAppsButton = new UiObject&#40;new UiSelector&#40;&#41;.description&#40;&#34;Apps&#34;&#41;&#41;; allAppsButton.clickAndWaitForNewWindow&#40;&#41;; UiObject appsTab = new UiObject&#40;new UiSelector&#40;&#41;.text&#40;&#34;Apps&#34;&#41;&#41;; appsTab.click&#40;&#41;; UiScrollable appViews = new UiScrollable&#40;new UiSelector&#40;&#41;.scrollable&#40;true&#41;&#41;; appViews.setAsHorizontalList&#40;&#41;; UiObject calculatorApp = appViews.getChildByText&#40;new UiSelector&#40;&#41;.className&#40;android.widget.TextView.class.getName&#40;&#41;&#41;, &#34;Calculator app&#34;&#41;; calculatorApp.clickAndWaitForNewWindow&#40;&#41;; UiObject oneButton = new UiObject&#40;new UiSelector&#40;&#41;.text&#40;&#34;1&#34;&#41;&#41;; oneButton.click&#40;&#41;; UiObject plusButton = new UiObject&#40;new UiSelector&#40;&#41;.text&#40;&#34;+&#34;&#41;&#41;; plusButton.click&#40;&#41;; UiObject threeButton = new UiObject&#40;new UiSelector&#40;&#41;.text&#40;&#34;3&#34;&#41;&#41;; threeButton.click&#40;&#41;; UiObject eqButton = new UiObject&#40;new UiSelector&#40;&#41;.text&#40;&#34;=&#34;&#41;&#41;; eqButton.click&#40;&#41;; UiObject text = new UiObject&#40;new UiSelector&#40;&#41;.className&#40;&#34;android.widget.EditText&#34;&#41;.text&#40;&#34;4&#34;&#41;&#41;; assertTrue&#40;text.exists&#40;&#41;&#41;; Unfortunately there is little documentation available. Also the framework only supports Android 4.1 or higher. In short: Fully control device Code written in Java Extends JUnit framework Easy to read Only for Android 4.1 and higher Little documentation available &#160; Robolectric The Java-based testing framework Robolectric is the best of the tested frameworks in terms of performance. This is because it is not running on a device or on the Android emulator, but uses his own visual UI simulator. As a result, the delaying factor of starting an emulator or installing the app on a device has no influence on running the test(s). This makes Robolectric a good choice for TDD. @RunWith&#40;RobolectricTestRunner.class&#41; public class MainActivityTest &#123; private MainActivity _activity; @Before public void setUp&#40;&#41; throws Exception &#123; _activity = Robolectric.buildActivity&#40;MainActivity.class&#41;.create&#40;&#41;.get&#40;&#41;; &#125; @Test public void testAdding&#40;&#41; throws Exception &#123; Button btnOne = &#40;Button&#41; _activity.findViewById&#40;R.id.num_1&#41;; Button btnAdd = &#40;Button&#41; _activity.findViewById&#40;R.id.op_add&#41;; Button btnThree = &#40;Button&#41; _activity.findViewById&#40;R.id.num_3&#41;; Button btnEquals = &#40;Button&#41; _activity.findViewById&#40;R.id.op_equ&#41;; btnOne.performClick&#40;&#41;; btnAdd.performClick&#40;&#41;; btnThree.performClick&#40;&#41;; btnEquals.performClick&#40;&#41;; EditText resultText = &#40;EditText&#41; _activity.findViewById&#40;R.id.editText1&#41;; assertEquals&#40;&#34;4&#34;, resultText.getText&#40;&#41;.toString&#40;&#41;&#41;; &#125; &#125; Because Robolectric uses a non-visual UI simulator its not possible to test a problem which only occurs on say a Samsung device. In short: Does not require emulator or device Code written in Java Extends JUnit framework Fastest in terms of performance Does not run on actual device &#160; Robotium The idea behind Robotium is that a functional test should description what the user sees and can do. This framework is a good choice if you are just &#8220;black box&#8221; testing your application. Besides extensive documentation, there are some well described examples available and the API is easy to use. public class MainActivityTest extends ActivityInstrumentationTestCase2 &#123; private Solo _solo; public MainActivityTest&#40;&#41; &#123; super&#40;MainActivity.class&#41;; &#125; @Override protected void setUp&#40;&#41; throws Exception &#123; super.setUp&#40;&#41;; _solo = new Solo&#40;getInstrumentation&#40;&#41;, getActivity&#40;&#41;&#41;; &#125; public void testAdding&#40;&#41; &#123; _solo.assertCurrentActivity&#40;&#34;Is app started&#34;, MainActivity.class&#41;; _solo.clickOnButton&#40;&#34;CLR&#34;&#41;; _solo.clickOnButton&#40;&#34;1&#34;&#41;; _solo.clickOnButton&#40;&#34;+&#34;&#41;; _solo.clickOnButton&#40;&#34;3&#34;&#41;; _solo.clickOnButton&#40;&#34;=&#34;&#41;; EditText editText = &#40;EditText&#41; getActivity&#40;&#41;.findViewById&#40;com.elsinga.calculator.R.id.editText1&#41;; assertEquals&#40;&#34;4&#34;, editText.getText&#40;&#41;.toString&#40;&#41;&#41;; &#125; &#125; In short: APIs are easy to use Tests are text-based Good for &#8220;black box&#8221; testing &#160; Calabash-Android Like Robotium, the functional tests described in Calabash Android is written as &#8220;What you see you test&#8221;. The only difference is that the tests are not written in Java, but in Cucumber (a text-based structure). This makes it possible that tests can be written/used by non developers. A drawback, because test(s) aren&#8217;t written in Java, is that &#8220;debugging&#8221; a failing test is not possible. Feature: Adding Scenario: add I should see &#34;1&#34; Then I press &#34;1&#34; And I press &#34;+&#34; And I press &#34;3&#34; And I press &#34;=&#34; Then I see &#34;4&#34; In short: Well documented Test(s) can be writen/used bij non developers What you see, you test ‘Debuggen’ of tests isn&#8217;t possible &#160; Conclusion Functional testing of Android applications is possible. Which test framework you want to use, dependents on the what you want to do with it. To choice with one fits best, ask yourself who is going to make the tests, what needs to be tested and/or on which device the tests are running on.In any cast, there is enough choice to start writing functional tests. Source code can be found here]]></description>
										<content:encoded><![CDATA[<p>Applying functional testing is not a new technique during the development of Java software. Writing functional tests gives you a good understanding about the stability of an application or system, during code modifications or if new features are added. But what about using functional testing when developing an Android application, it is also easy to achieve?</p>
<p>&#8220;And, is the application still works?&#8221; or &#8220;Is the application broken?&#8221;, these are questions that developers should be able to answer if a code change has been made or an improvement has been added. This is no different when developing an Android application. Also, the use of TDD (Test Driven Development), in which first the test is written, after which the code follows, is good practice. Automated functional testing has become part of software development. Using Selenium and Fitnesse for testing Java application, combined with Jenkins has become avery day pratice to most Java developers. So you would expect that this would differ during the development of Android app. Unfortunately this is not (yet) the case. Because of the relatively rapid growth of Android, these testing methods aren&#8217;t yet mature enough.</p>
<p>Lets look at four testing framework that can be used during Android app development:</p>
<div style="background: lightgray; padding: 12pt;">How to install the specific framework is not part of this article. With the use of code examples pros and cons will be explained for the specific framework.</div>
<p>&nbsp;<br />
The <a href="https://github.com/welsinga/sample_testsing" target="_blank">Android application</a> that is being tested is a simple calculator. The common test scenario we will be implementing is testing if ‘1’ + ‘3’ gives a result of ‘4’.</p>
<h2>UIAutomator</h2>
<p>The Google test framework <a href="http://developer.android.com/tools/help/uiautomator/index.html">UIAutomator</a> makes it possible to write simple Java (and JUnit) functional tests. The framework is not tied to the application that needs to be tested, but also has access to the Android platform itself.<br />
This makes it possible to adjust your Android emulator or physical phone settings while running your test(s). This means that you can test the behavior of the test application if, for example, the internet connection is being switched off.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:100%;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">UiObject allAppsButton <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiObject<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">description</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Apps&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
allAppsButton.<span style="color: #006633;">clickAndWaitForNewWindow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiObject appsTab <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiObject<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">text</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Apps&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
appsTab.<span style="color: #006633;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiScrollable appViews <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiScrollable<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">scrollable</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
appViews.<span style="color: #006633;">setAsHorizontalList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiObject calculatorApp <span style="color: #339933;">=</span> appViews.<span style="color: #006633;">getChildByText</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">className</span><span style="color: #009900;">&#40;</span>android.<span style="color: #006633;">widget</span>.<span style="color: #006633;">TextView</span>.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>, <span style="color: #0000ff;">&quot;Calculator app&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
calculatorApp.<span style="color: #006633;">clickAndWaitForNewWindow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiObject oneButton <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiObject<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">text</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
oneButton.<span style="color: #006633;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiObject plusButton <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiObject<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">text</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;+&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
plusButton.<span style="color: #006633;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiObject threeButton <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiObject<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">text</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
threeButton.<span style="color: #006633;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiObject eqButton <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiObject<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">text</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
eqButton.<span style="color: #006633;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
UiObject text <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UiObject<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> UiSelector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">className</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;android.widget.EditText&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">text</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;4&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
assertTrue<span style="color: #009900;">&#40;</span>text.<span style="color: #006633;">exists</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Unfortunately there is little documentation available. Also the framework only supports Android 4.1 or higher.<br />
In short:</p>
<ul>
<li><span style="color: #339966;">Fully control device</span></li>
<li><span style="color: #339966;">Code written in Java</span></li>
<li><span style="color: #339966;">Extends JUnit framework</span></li>
<li><span style="color: #339966;">Easy to read</span></li>
<li><span style="color: #ff0000;">Only for Android 4.1 and higher</span></li>
<li><span style="color: #ff0000;">Little documentation available</span></li>
</ul>
<p>&nbsp;</p>
<h2>Robolectric</h2>
<p>The Java-based testing framework <a href="http://pivotal.github.io/robolectric/index.html" target="_blank">Robolectric</a> is the best of the tested frameworks in terms of performance. This is because it is not running on a device or on the Android emulator, but uses his own visual UI simulator. As a result, the delaying factor of starting an emulator or installing the app on a device has no influence on running the test(s). This makes Robolectric a good choice for TDD.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:100%;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">@RunWith<span style="color: #009900;">&#40;</span>RobolectricTestRunner.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainActivityTest<br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">private</span> MainActivity _activity<span style="color: #339933;">;</span><br />
<br />
@Before<br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+exception"><span style="color: #003399;">Exception</span></a><br />
<span style="color: #009900;">&#123;</span><br />
_activity <span style="color: #339933;">=</span> Robolectric.<span style="color: #006633;">buildActivity</span><span style="color: #009900;">&#40;</span>MainActivity.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
@Test<br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> testAdding<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+exception"><span style="color: #003399;">Exception</span></a><br />
<span style="color: #009900;">&#123;</span><br />
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a> btnOne <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a><span style="color: #009900;">&#41;</span> _activity.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">num_1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a> btnAdd <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a><span style="color: #009900;">&#41;</span> _activity.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">op_add</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a> btnThree <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a><span style="color: #009900;">&#41;</span> _activity.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">num_3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a> btnEquals <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+button"><span style="color: #003399;">Button</span></a><span style="color: #009900;">&#41;</span> _activity.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">op_equ</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
btnOne.<span style="color: #006633;">performClick</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
btnAdd.<span style="color: #006633;">performClick</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
btnThree.<span style="color: #006633;">performClick</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
btnEquals.<span style="color: #006633;">performClick</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
EditText resultText <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EditText<span style="color: #009900;">&#41;</span> _activity.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">editText1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
assertEquals<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;4&quot;</span>, resultText.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Because Robolectric uses a non-visual UI simulator its not possible to test a problem which only occurs on say a Samsung device.<br />
In short:</p>
<ul>
<li><span style="color: #339966;">Does not require emulator or device</span></li>
<li><span style="color: #339966;">Code written in Java</span></li>
<li><span style="color: #339966;">Extends JUnit framework</span></li>
<li><span style="color: #339966;">Fastest in terms of performance</span></li>
<li><span style="color: #ff0000;">Does not run on actual device</span></li>
</ul>
<p>&nbsp;</p>
<h2>Robotium</h2>
<p>The idea behind <a href="https://code.google.com/p/robotium/" target="_blank">Robotium</a> is that a functional test should description what the user sees and can do. This framework is a good choice if you are just &#8220;black box&#8221; testing your application. Besides extensive documentation, there are some well described examples available and the API is easy to use.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:100%;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainActivityTest <span style="color: #000000; font-weight: bold;">extends</span> ActivityInstrumentationTestCase2<br />
<span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">private</span> Solo _solo<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">public</span> MainActivityTest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span>MainActivity.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
@Override<br />
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> setUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+exception"><span style="color: #003399;">Exception</span></a><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">setUp</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
_solo <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Solo<span style="color: #009900;">&#40;</span>getInstrumentation<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, getActivity<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> testAdding<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
_solo.<span style="color: #006633;">assertCurrentActivity</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Is app started&quot;</span>, MainActivity.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
_solo.<span style="color: #006633;">clickOnButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;CLR&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
_solo.<span style="color: #006633;">clickOnButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
_solo.<span style="color: #006633;">clickOnButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;+&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
_solo.<span style="color: #006633;">clickOnButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
_solo.<span style="color: #006633;">clickOnButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
EditText editText <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EditText<span style="color: #009900;">&#41;</span> getActivity<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>com.<span style="color: #006633;">elsinga</span>.<span style="color: #006633;">calculator</span>.<span style="color: #006633;">R</span>.<span style="color: #006633;">id</span>.<span style="color: #006633;">editText1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
assertEquals<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;4&quot;</span>, editText.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>In short:</p>
<ul>
<li><span style="color: #339966;">APIs are easy to use</span></li>
<li><span style="color: #339966;">Tests are text-based</span></li>
<li><span style="color: #339966;">Good for &#8220;black box&#8221; testing</span></li>
</ul>
<p>&nbsp;</p>
<h2>Calabash-Android</h2>
<p>Like Robotium, the functional tests described in <a href="https://github.com/calabash/calabash-android" target="_blank">Calabash Android</a> is written as &#8220;What you see you test&#8221;. The only difference is that the tests are not written in Java, but in <a href="http://cukes.info/" target="_blank">Cucumber</a> (a text-based structure). This makes it possible that tests can be written/used by non developers. A drawback, because test(s) aren&#8217;t written in Java, is that &#8220;debugging&#8221; a failing test is not possible.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Feature: Adding<br />
<br />
Scenario: add<br />
I should see &quot;1&quot;<br />
Then I press &quot;1&quot;<br />
And I press &quot;+&quot;<br />
And I press &quot;3&quot;<br />
And I press &quot;=&quot;<br />
Then I see &quot;4&quot;</div></div>
<p>In short:</p>
<ul>
<li><span style="color: #339966;">Well documented</span></li>
<li><span style="color: #339966;">Test(s) can be writen/used bij non developers</span></li>
<li><span style="color: #339966;">What you see, you test</span></li>
<li><span style="color: #ff0000;">‘Debuggen’ of tests isn&#8217;t possible</span></li>
</ul>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>Functional testing of Android applications is possible. Which test framework you want to use, dependents on the what you want to do with it. To choice with one fits best, ask yourself who is going to make the tests, what needs to be tested and/or on which device the tests are running on.In any cast, there is enough choice to start writing functional tests.</p>
<p>Source code can be found <a href="https://github.com/welsinga/sample_testsing" target="_blank">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/functional-testing-for-android/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>It&#8217;s going to be a great year (I hope)</title>
		<link>http://wiebe-elsinga.com/blog/its-going-to-be-a-great-year-i-hope/</link>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Sun, 06 Jan 2013 07:16:30 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=1389</guid>

					<description><![CDATA[When starting a new year I always get the urge to rethink my goal, do doesn&#8217;t right!. Questions that go thru my mind are: am I still going where I want to go, do I need to change my direction, what will bring the new year. And like every year I can still say I&#8217;m going the right direction. Like last year I&#8217;m hoping to give more talks on conferences, and visit others. And regarding our &#8220;side project&#8221;, the Dutch Android User Group things are going awesome. We are planning new meet-ups, and will turn into a Foundation. So I hope I will see you soon at one of our meet-ups this year.]]></description>
										<content:encoded><![CDATA[<p>When starting a new year I always get the urge to rethink my goal, do doesn&#8217;t right!. Questions that go thru my mind are: am I still going where I want to go, do I need to change my direction, what will bring the new year. And like every year I can still say I&#8217;m going the right direction.<br />
Like last year I&#8217;m hoping to give more talks on conferences, and visit others. And regarding our &#8220;side project&#8221;, the Dutch Android User Group things are going awesome. We are planning new meet-ups, and will turn into a Foundation. </p>
<p>So I hope I will see you soon at one of our meet-ups this year.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Android 4.2 minnor bug</title>
		<link>http://wiebe-elsinga.com/blog/1245/</link>
					<comments>http://wiebe-elsinga.com/blog/1245/#respond</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Sun, 18 Nov 2012 08:02:14 +0000</pubDate>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Android4.2]]></category>
		<category><![CDATA[AndroidDev]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=1245</guid>

					<description><![CDATA[Looks like Android 4.2. has a &#8220;minnor&#8221; Bug. They aren&#8217;t celebrating Christmas at Google because Android 4.2 lacks the month of December.]]></description>
										<content:encoded><![CDATA[<p>Looks like Android 4.2. has a &#8220;minnor&#8221; Bug. They aren&#8217;t celebrating Christmas at Google because Android 4.2 lacks the month of December.</p>
<p><a href="http://wiebe-elsinga.com/blog/wp-content/uploads/2012/11/Untitled.png" rel="lightbox[1245]" title="Untitled"><img loading="lazy" class="aligncenter size-medium wp-image-1246" title="Untitled" src="http://wiebe-elsinga.com/blog/wp-content/uploads/2012/11/Untitled-300x196.png" alt="" width="300" height="196" srcset="http://wiebe-elsinga.com/blog/wp-content/uploads/2012/11/Untitled-300x196.png 300w, http://wiebe-elsinga.com/blog/wp-content/uploads/2012/11/Untitled.png 761w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/1245/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Must read: ItudeMobile</title>
		<link>http://wiebe-elsinga.com/blog/must-read-itudemobile/</link>
					<comments>http://wiebe-elsinga.com/blog/must-read-itudemobile/#respond</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Thu, 27 Oct 2011 21:37:00 +0000</pubDate>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[ItudeMobile]]></category>
		<category><![CDATA[Must read]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=876</guid>

					<description><![CDATA[Did you look at the media channels of Itude Mobile already?. You don&#8217;t know Itude Mobile! From 2005 Itude Mobile has provided mobile websites and mobile applications to a variety of organisations such as Cordys, BinckBank, Alex.nl and content providers such as Tonetastic. These applications and websites provide complex and highly integrated functions to consumers in a secure and user-friendly way. Here are their channels]]></description>
										<content:encoded><![CDATA[<p>Did you look at the media channels of <a href="http://www.itude.com/en/home" target="_blank">Itude Mobile</a> already?. You don&#8217;t know <a href="http://www.itude.com/en/home" target="_blank">Itude Mobile</a>!</p>
<p>From 2005 Itude Mobile has provided mobile websites and mobile applications to a variety of organisations such as Cordys, BinckBank, Alex.nl and content providers such as Tonetastic. These applications and websites provide complex and highly integrated functions to consumers in a secure and user-friendly way.</p>
<p>Here are their channels</p>
<p style="text-align: center;"><a title="Blog" onclick="window.open(this.href); return false;" onkeypress="window.open(this.href); return false;" href="http://blogmobile.itude.com/"><img style="border: none; height: 48px; width: 48px;" src="http://daarom.com/wp-content/uploads/2010/04/wordpress.jpg" alt="" /></a><a title="Twitter" onclick="window.open(this.href); return false;" onkeypress="window.open(this.href); return false;" href="http://twitter.com/mobileItude"><img style="border: none; height: 48px; width: 48px;" src="../../auteur_files/droppedImage.png" alt="" /></a><a title="Facebook" onclick="window.open(this.href); return false;" onkeypress="window.open(this.href); return false;" href="http://www.facebook.com/itudemobile"><img style="border: none; height: 48px; width: 48px;" src="http://www.ernohannink.nl/wp-content/uploads/2011/01/facebook_logo.png" alt="" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/must-read-itudemobile/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Goodbye Mr. Jobs</title>
		<link>http://wiebe-elsinga.com/blog/goodbye-mr-jobs/</link>
					<comments>http://wiebe-elsinga.com/blog/goodbye-mr-jobs/#respond</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Wed, 05 Oct 2011 21:40:51 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Steve Jobs]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=726</guid>

					<description><![CDATA[Apple&#8217;s website announces the sad news that Apple co-founder and former CEO Steve Jobs has passed away. Jobs was 56 years old, and had been struggling with complications related to pancreatic cancer over the past several years. Apple leaves the following message on their website in tribute to Jobs Apple has lost a visionary and creative genius, and the world has lost an amazing human being. Those of us who have been fortunate enough to know and work with Steve have lost a dear friend and an inspiring mentor. Steve leaves behind a company that only he could have built, and his spirit will forever be the foundation of Apple. More BREAKING: Steve Jobs Has Died Steve Jobs: 1955 – 2011 Apple’s Board of Directors on Steve Jobs Apple Pays Tribute to Steve Jobs Newspapers React to the Death of Steve Jobs [PICS] Jobs Family Statement: “Steve Died Peacefully” Steve Jobs Remembered: 10 of His Most Magical Moments [VIDEO] Mark Zuckerberg Pays Tribute to Steve Jobs Google Founders: Steve Jobs Was an Inspiration President Obama on Steve Jobs: “The World Has Lost a Visionary” Steve Jobs, 1955-2011: The Web Remembers Google’s Homepage Pays Tribute to Steve Jobs Disney CEO: “Jobs Was Such an Original”]]></description>
										<content:encoded><![CDATA[<p>Apple&#8217;s <a href="http://www.apple.com/" target="_blank">website</a> announces the sad news that Apple co-founder and former CEO Steve Jobs has passed away. Jobs was 56 years old, and had been struggling with complications related to pancreatic cancer over the past several years. Apple leaves the following message on their website in tribute to Jobs</p>
<blockquote><p>Apple has lost a visionary and creative genius, and the world has lost an amazing human being. Those of us who have been fortunate enough to know and work with Steve have lost a dear friend and an inspiring mentor. Steve leaves behind a company that only he could have built, and his spirit will forever be the foundation of Apple.</p></blockquote>
<p><img loading="lazy" class="aligncenter" src="http://www.geeky-gadgets.com/wp-content/uploads/2011/10/Steve-Jobs-RIP.jpg" alt="Steve Jobs" width="238" height="178" /><br />
More</p>
<ul>
<li><a href="http://mashable.com/2011/10/05/breaking-steve-jobs-has-died/">BREAKING: Steve Jobs Has Died</a></li>
<li><a href="http://mashable.com/2011/10/05/steve-jobs-obituary/">Steve Jobs: 1955 – 2011</a></li>
<li><a href="http://mashable.com/2011/10/05/steve-jobs-board-statement/">Apple’s Board of Directors on Steve Jobs</a></li>
<li><a href="http://mashable.com/2011/10/05/apple-com-tribute-steve-jobs/">Apple Pays Tribute to Steve Jobs</a></li>
<li><a href="http://mashable.com/2011/10/05/steve-jobs-newspapers-react/">Newspapers React to the Death of Steve Jobs [PICS] </a></li>
<li><a href="http://mashable.com/2011/10/05/steve-jobs-family-statement/">Jobs Family Statement: “Steve Died Peacefully”</a></li>
<li><a href="http://mashable.com/2011/10/05/steve-jobs-remembered/">Steve Jobs Remembered: 10 of His Most Magical Moments [VIDEO]</a></li>
<li><a href="http://mashable.com/2011/10/05/mark-zuckerberg-steve-jobs/">Mark Zuckerberg Pays Tribute to Steve Jobs</a></li>
<li><a href="http://mashable.com/2011/10/05/google-founders-steve-jobs/">Google Founders: Steve Jobs Was an Inspiration</a></li>
<li><a href="http://mashable.com/2011/10/05/president-obama-steve-jobs/">President Obama on Steve Jobs: “The World Has Lost a Visionary”</a></li>
<li><a href="http://mashable.com/2011/10/05/steve-jobs-twitter/">Steve Jobs, 1955-2011: The Web Remembers</a></li>
<li><a href="http://mashable.com/2011/10/05/google-homepage-steve-jobs/">Google’s Homepage Pays Tribute to Steve Jobs</a></li>
<li><a href="http://mashable.com/2011/10/05/disney-ceo-jobs/">Disney CEO: “Jobs Was Such an Original”</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/goodbye-mr-jobs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Functioneel Testen voor Android</title>
		<link>http://wiebe-elsinga.com/blog/functioneel-testen-voor-android/</link>
					<comments>http://wiebe-elsinga.com/blog/functioneel-testen-voor-android/#respond</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Thu, 06 May 2010 03:49:40 +0000</pubDate>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Robotium]]></category>
		<category><![CDATA[Selenium]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=169</guid>

					<description><![CDATA[Zoals vele collega&#8217;s ben ook ik bezig met het ontwikkelen van een Android applicatie. Na 4 uurtjes was daar toch mijn eerste Android app. Ja en als goede software ontwikkelaar natuurlijk doet, unit-testen. Met JUnit de code getest. Maar ik wou ook de &#8220;frond-end&#8221; functionaliteit testen, en daar stookte het. Tijdens mijn dagelijkse ontwikkel werkzaamheden maak ik Web applicaties en lever ik middels Selenium ook functionele testen op. Helaas ben ik tot de conclusie gekomen dat dit nog ontbreekt bij het ontwikkelen van Android applicaties. Ik heb gekeken of Positron (een Google code project) iets is. Positron voorziet in het uitvoeren van Android Activiteiten om zodoende een test scenario na te spelen. Ik heb ook gekeken naar Robotium. Dit is nou precies wat ik zoek, dus ben nu bezig om dit te gebruiken om functionele test te maken. [qrcodetag/]]]></description>
										<content:encoded><![CDATA[<p><a href="http://wiebe-elsinga.com/blog/wp-content/uploads/2010/05/android.jpg" rel="lightbox[169]" title="android"><img loading="lazy" class="size-thumbnail wp-image-170 alignleft" style="padding-right: 10px;" title="android" src="http://wiebe-elsinga.com/blog/wp-content/uploads/2010/05/android-150x150.jpg" alt="Android" width="150" height="150" srcset="http://wiebe-elsinga.com/blog/wp-content/uploads/2010/05/android-150x150.jpg 150w, http://wiebe-elsinga.com/blog/wp-content/uploads/2010/05/android-300x300.jpg 300w, http://wiebe-elsinga.com/blog/wp-content/uploads/2010/05/android-200x200-cropped.jpg 200w, http://wiebe-elsinga.com/blog/wp-content/uploads/2010/05/android.jpg 500w" sizes="(max-width: 150px) 100vw, 150px" /></a>Zoals vele collega&#8217;s ben ook ik bezig met het ontwikkelen van een <a title="Android" href="http://www.android.com/" target="_blank">Android </a>applicatie. Na 4 uurtjes was daar toch mijn eerste Android app.<br />
Ja en als goede software ontwikkelaar natuurlijk doet, unit-testen. Met <a title="JUnit" href="http://www.junit.org" target="_blank">JUnit</a> de code getest. Maar ik wou ook de &#8220;frond-end&#8221; functionaliteit testen, en daar stookte het.</p>
<p><span id="more-169"></span></p>
<p>Tijdens mijn dagelijkse ontwikkel werkzaamheden maak ik Web applicaties en lever ik middels <a title="Selenium" href="http://seleniumhq.org/" target="_blank">Selenium</a> ook functionele testen op. Helaas ben ik tot de conclusie gekomen dat dit nog ontbreekt bij het ontwikkelen van Android applicaties.</p>
<p>Ik heb gekeken of <a title="Positron" href="http://code.google.com/p/autoandroid/" target="_blank">Positron</a> (een Google code project) iets is. Positron voorziet in het uitvoeren van Android Activiteiten om zodoende een test scenario na te spelen.<br />
Ik heb ook gekeken naar <a title="Robotium" href="http://code.google.com/p/robotium/" target="_blank">Robotium</a>. Dit is nou precies wat ik zoek, dus ben nu bezig om dit te gebruiken om functionele test te maken.</p>
<p>[qrcodetag/]</p>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/functioneel-testen-voor-android/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Twitter</title>
		<link>http://wiebe-elsinga.com/blog/twitter/</link>
					<comments>http://wiebe-elsinga.com/blog/twitter/#respond</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Thu, 06 May 2010 01:40:44 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=167</guid>

					<description><![CDATA[Het is er dan toch van gekomen, ondergetekende zit nu ook op twitter.]]></description>
										<content:encoded><![CDATA[<p>Het is er dan toch van gekomen, ondergetekende zit nu ook op <a title="Mijn twikker lokatie" href="http://twitter.com/welsinga" target="_blank">twitter</a>.</p>
<p style="text-align: left;"><a title="Mijn twitter lokatie" href="http://twitter.com/welsinga" target="_blank"><img loading="lazy" class="aligncenter" title="Twittel" src="http://a0.twimg.com/a/1273086425/images/twitter_logo_header.png" alt="" width="155" height="36" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/twitter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Footballfans.eu</title>
		<link>http://wiebe-elsinga.com/blog/footballfans-eu/</link>
					<comments>http://wiebe-elsinga.com/blog/footballfans-eu/#respond</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Thu, 06 May 2010 00:24:12 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Private]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=163</guid>

					<description><![CDATA[het WK voetbal komt eraan, mooi moment om eens te kijken welke site we in de gaten moeten houden als het gaat om uitslagen. Oké, ik moet toegeven dat voetbal niet echt een sport is waar ik warm voor loop, maar ach het nationalisme neemt bij mij toe bij evenementen zoals het EK en WK. Dus dan moet ik natuurlijk bij blijven met de uitslagen. De site footballfans.eu biedt perfect de mogelijkheid op uitslagen te volgen. Eigenlijk biedt deze site nog veel meer. In de tijd van social networks/communities is dit een perfect voorbeeld van hoe informatie wordt aangeboden voor (in dit geval) voetbal fans. Niet alleen de uitslagen, maar ook de beleving die een voetbal fan heeft met bijvoorbeeld de club komt hier voor tot zijn recht. Zelfs foto&#8217;s tijdens wedstrijden kunnen ge-upload worden en zo deelt iedereen de beleving op dat moment.]]></description>
										<content:encoded><![CDATA[<p>het WK voetbal komt eraan, mooi moment om eens te kijken welke site we in de gaten moeten houden als het gaat om uitslagen.<br />
Oké, ik moet toegeven dat voetbal niet echt een sport is waar ik warm voor loop, maar ach het nationalisme neemt bij mij toe bij evenementen zoals het EK en WK. Dus dan moet ik natuurlijk bij blijven met de uitslagen.</p>
<p>De site <a href="http://www.footballfans.eu/">footballfans.eu</a> biedt perfect de mogelijkheid op uitslagen te volgen. Eigenlijk biedt deze site nog veel meer. In de tijd van social networks/communities is dit een perfect voorbeeld van hoe informatie wordt aangeboden voor (in dit geval) voetbal fans. Niet alleen de uitslagen, maar ook de beleving die een voetbal fan heeft met bijvoorbeeld de club komt hier voor tot zijn recht.</p>
<p>Zelfs foto&#8217;s tijdens wedstrijden kunnen ge-upload worden en zo deelt iedereen de beleving op dat moment.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/footballfans-eu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>God en de IT</title>
		<link>http://wiebe-elsinga.com/blog/god-en-de-it/</link>
					<comments>http://wiebe-elsinga.com/blog/god-en-de-it/#respond</comments>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Thu, 01 Mar 2007 23:30:07 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://wiebeelsinga.wordpress.com/2007/03/02/god-en-de-it/</guid>

					<description><![CDATA[Een opmerkelijk interview dat de makers van Podtech.net met zuster Zoebelein hebben geeft antwoordt hoe God denkt over de IT. Zuster Judith Zoebelein is sinds 1995 verantwoordelijk voor de website van het Vaticaan. Een mooie opmerking is dat ze veel overeenkomsten ziet tussen IT en geloof. Ze heeft het over het mysterie van God en het mysterie van internet. &#8220;Het mysterie van de mens is het mysterie van zijn Schepper. En internet is een uiting van dat mysterie.&#8221; Play Bronvermelding: Nu.nl (www.nu.nl), Podtech (www.podtech.net)]]></description>
										<content:encoded><![CDATA[<p>Een opmerkelijk <a href="http://www.podtech.net/scobleshow/technology/1363/meet-the-techie-sister-behind-vaticans-website" target="_newwin">interview</a> dat de makers van Podtech.net met zuster Zoebelein hebben geeft antwoordt hoe God denkt over de IT. Zuster Judith Zoebelein is sinds 1995 verantwoordelijk voor de website van het <a href="http://www.vatican.va/" target="_newwin">Vaticaan</a>.</p>
<p>Een mooie opmerking is dat ze veel overeenkomsten ziet tussen IT en geloof. Ze heeft het over het mysterie van God en het mysterie van internet.</p>
<p align="center"><em>&#8220;Het mysterie van de mens is het mysterie van zijn Schepper. En internet is een uiting van dat mysterie.&#8221; </em></p>
<p><span style="text-align:center;display:block;"></p>
<p><a href='http://media1.podtech.net/media/2007/02/PID_010264/Podtech_ScobleShow_WebSister.flv&amp;postURL=http://www.podtech.net/scobleshow/technology/1363/meet-the-techie-sister-behind-vaticans-website&amp;totalTime=1509000&amp;breadcrumb=3F34K2L1' >Play</a><br />
</span><br />
Bronvermelding: Nu.nl (<a href="http://www.nu.nl">www.nu.nl</a>), Podtech (<a href="http://www.podtech.net">www.podtech.net</a>)</p>
]]></content:encoded>
					
					<wfw:commentRss>http://wiebe-elsinga.com/blog/god-en-de-it/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
