<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Aaron Train</title>
 <link href="http://aaronmt.github.com/atom.xml" rel="self"/>
 <link href="http://aaronmt.github.com"/>
 <updated>2013-02-19T08:17:50-08:00</updated>
 <id>http://aaronmt.github.com</id>
 <author>
   <name>Aaron Train</name>
   <email>atrain@mozilla.com</email>
 </author>

 
 <entry>
   <title>Firefox for Android   UI Testing (Robocop) Update</title>
   <link href="http://aaronmt.github.com/blog/2013/02/18/firefox-for-android---ui-testing-robocop-update"/>
   <updated>2013-02-18T00:00:00-08:00</updated>
   <id>http://aaronmt.github.com/blog/2013/02/18/firefox-for-android---ui-testing-robocop-update</id>
   <content type="html">&lt;p&gt;&lt;span&gt;&lt;em&gt;For more information on Robocop Automation, see this &lt;a href='https://wiki.mozilla.org/Auto-tools/Projects/Robocop'&gt;Mozilla Wiki entry&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Short update of where we (Mozilla QA) are at with our recent automation efforts in converting our smoke-tests to automated tests. As of this month there are now approximately &lt;a href='http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/tests/'&gt;forty-five&lt;/a&gt; available Mochitest-Robotium (Robocop) tests with approximately thirty currently enabled and running per-checkin (&lt;a href='https://tbpl.mozilla.org/php/getParsedLog.php?id=19850040&amp;amp;tree=Firefox'&gt;&lt;em&gt;see example run here&lt;/em&gt;&lt;/a&gt;). Each individual test is ran (see &lt;a href='https://tbpl.mozilla.org/'&gt;Firefox - Tinderbox Pushlog&lt;/a&gt;) in-part of a growing suite of automated user-interface tests that exercise in probing and injecting various native events to the Java front-end of Firefox for Android. In-turn, these provide automation for our list of identified browser &lt;a href='https://moztrap.mozilla.org'&gt;smoke-tests&lt;/a&gt; (manual testing). While we have steady progress henceforth, we are always looking for more interested to-be test-authors who wish to help us continue to grow our automation efforts.&lt;/p&gt;

&lt;p&gt;Short summary on some of the blocking situations we have recently ran into and some details on their solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Due to a number of user-interface differences between various Android devices, it was deemed necessary to create a Device and Navigation support class in &lt;a href='http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/tests/BaseTest.java.in'&gt;BaseTest&lt;/a&gt;. Further investigation revealed that was it also necessary to map navigation (Back, Forward and Reload) due to different types of Android devices (i.e, tablets vs phones and varying Android platform versions) &lt;em&gt;see &lt;a href='http://bugzil.la/747835'&gt;bug 747835&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Test stablization on the Panda and Tegra boards has been tricky. After further investigation we found out that the Tegra boards run Android 2.3 (API Level 11), and Firefox for Android serves the small-screen mobile user-interface for phones running Android 2.3. The Panda boards run Android 4.0.4 (API Level 15) and Firefox for Android serve the larger-screen mobile user-intreface optimized for 7-inch tablets running Android 4.0+. This split environment was rather sub-optimal.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;On Android 3.0+ (API Level 12+), the system Cancel and Ok buttons were switched around (gee, thanks Google!) so it was deemed necessary to use a clickOnButton(name); function instead of clickOnButton(index);. This was causing some failures early on.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Again on Android 3.0+ (API Level 12+) pop-up notification buttons were not accessible at times due in part to the to an invocation of the system virtual keyboard, which would overlay cover the testable view. This was a result of having prior, entering text via the sendKeys() function. Thus this requires dismissing the virtual keyboard first and foremost before trying to click any buttons &lt;em&gt;see ongoing investigation in &lt;a href='http://bugzil.la/838596'&gt;bug 838596&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Depending on the Android device, platform and screen-size we have varying user-interfaces thus it was required to check for proper navigation depending on the environemtn (e.g, we have a function to check for the &amp;#8220;More&amp;#8221; and &amp;#8220;Tools&amp;#8221; submenus in order to access items), &lt;em&gt;see &lt;a href='http://bugzil.la/830755'&gt;bug 830755&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;We had to hack around finding a solution for traversing the number of views in Firefox for Android&amp;#8217;s settings user-interface. In detail, we had to dynamically fetch the number of checkboxes available to ensure that if further items are to be added, these will not affect the running test. This requires disecting the settings menu and asserting if each component is a checkbox, &lt;em&gt;see ongoing investigation in &lt;a href='http://bugzil.la/830834'&gt;bug 830834&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='current_work_and_areas_we_need_help_in'&gt;Current work and areas we need help in&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Expanding our set of tests, &lt;a href='https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdDJBT2dlbVJwUk9PSy1RbHo4WVNiUGc#gid=8'&gt;&lt;em&gt;see existing coverage here&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Stabilize set of problematic tests (intermittent failures and timeouts), &lt;em&gt;see mozilla-central&amp;#8217;s &lt;a href='http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/tests/robocop.ini'&gt;test manifest&lt;/a&gt;; specifically, &lt;a href='https://bugzilla.mozilla.org/show_bug.cgi?id=825152'&gt;bug 825152&lt;/a&gt;, &lt;a href='https://bugzilla.mozilla.org/show_bug.cgi?id=746876'&gt;bug 746876&lt;/a&gt;, &lt;a href='https://bugzilla.mozilla.org/show_bug.cgi?id=824067'&gt;bug 824067&lt;/a&gt;, &lt;a href='https://bugzilla.mozilla.org/show_bug.cgi?id=813107'&gt;813107&lt;/a&gt;, &lt;a href='https://bugzilla.mozilla.org/show_bug.cgi?id=757475'&gt;bug 757475&lt;/a&gt;, &lt;a href='https://bugzilla.mozilla.org/show_bug.cgi?id=738890'&gt;bug 738890&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='how_you_can_help'&gt;How you can help&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Run our &lt;a href='https://moztrap.mozilla.org/manage/cases/?filter-suite=8'&gt;manual set of smoke-tests&lt;/a&gt; against &lt;a href='http://nightly.mozilla.org'&gt;Nightly&lt;/a&gt; builds of Firefox on your Android phone or tablet&lt;/li&gt;

&lt;li&gt;Contribute towards writing additional tests (see: &lt;a href='https://wiki.mozilla.org/Auto-tools/Projects/Robocop/WritingTests'&gt;writing Robocop tests&lt;/a&gt;); individual tests are tagged as either automatable or not in Moztrap&lt;/li&gt;

&lt;li&gt;Contribute towards improving the Robocop framework (see: &lt;a href='https://wiki.mozilla.org/Auto-tools#Want_to_Help.3F'&gt;Auto-tools&lt;/a&gt;); see &lt;a href='http://goo.gl/vUX8f'&gt;open Robocop related bugs&lt;/a&gt;, &lt;a href='http://hg.mozilla.org/mozilla-central/file/148ea95584b4/build/mobile/robocop'&gt;source code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>Dabbling with Marionette and Gaia UI layer testing</title>
   <link href="http://aaronmt.github.com/blog/2012/11/26/marionette-gaia-ui-testing"/>
   <updated>2012-11-26T23:00:00-08:00</updated>
   <id>http://aaronmt.github.com/blog/2012/11/26/marionette-gaia-ui-testing</id>
   <content type="html">&lt;p&gt;Over the last few weeks in-between &lt;a href='https://wiki.mozilla.org/RapidRelease/Calendar'&gt;Firefox for Android&lt;/a&gt; release cycle work, I have been bestowed on the interests of contributing to the &lt;a href='https://wiki.mozilla.org/Gaia'&gt;Gaia&lt;/a&gt; UI automation efforts established from the Mozilla Web QA and Automation &amp;amp; Tools teams by assisting in writing, extending and building upon the available tests and APIs. Preliminary development of an extensive test suite of basic functional &lt;a href='https://etherpad.mozilla.org/smoketest-tests'&gt;smoke-tests&lt;/a&gt; tests is underway.&lt;/p&gt;

&lt;p&gt;Reviewing the available &lt;a href='https://wiki.mozilla.org/Gaia'&gt;Gaia&lt;/a&gt; &lt;a href='https://etherpad.mozilla.org/smoketest-tests'&gt;smoke-tests&lt;/a&gt;, the feasible test-cases can be written into Python based manifest-driven tests that are executed by Mozilla&amp;#8217;s own automation driver, &lt;a href='https://developer.mozilla.org/en-US/docs/Marionette'&gt;Marionette&lt;/a&gt;. Sharing much of the same API as &lt;a href='http://code.google.com/p/selenium/wiki/JsonWireProtocol'&gt;Selenium and Web Driver&lt;/a&gt;, it makes writing tests rather easy. For example, a &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/gaiatest/tests/test_music.py'&gt;first test I have written recently&lt;/a&gt; is able to launch, interact and assert content behaviors of HTML elements in the bundled &lt;a href='https://github.com/mozilla-b2g/gaia/tree/master/apps/music'&gt;Gaia music application&lt;/a&gt; with relative ease — afterall, each application is merely HTML.&lt;/p&gt;

&lt;p&gt;Each test that is built upon the &lt;a href='https://developer.mozilla.org/en-US/docs/Marionette'&gt;Marionette&lt;/a&gt; foundation utilizes a Python package named &lt;a href='https://github.com/mozilla/gaia-ui-tests'&gt;Gaiatest&lt;/a&gt; (available on PyPi &lt;a href='http://pypi.python.org/pypi/gaiatest/0.3'&gt;here&lt;/a&gt;) that is in-fact based on &lt;a href='https://developer.mozilla.org/en-US/docs/Marionette'&gt;Marionette&lt;/a&gt;. It is used specifically for writing tests against &lt;a href='https://wiki.mozilla.org/Gaia'&gt;Gaia&lt;/a&gt; and has a growing variety of atomic &lt;a href='https://wiki.mozilla.org/Gaia'&gt;Gaia&lt;/a&gt; related APIs such as: &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/gaiatest/atoms/gaia_lock_screen.js'&gt;unlocking the device home-screen&lt;/a&gt;, &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/gaiatest/atoms/gaia_data_layer.js'&gt;toggling WiFi/cellular data&lt;/a&gt;, &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/gaiatest/atoms/gaia_data_layer.js'&gt;setting volume&lt;/a&gt; and interactions with other device settings, etc. For example, here is the current &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/gaiatest/atoms/gaia_data_layer.js'&gt;data_layer.js&lt;/a&gt; file where we can write functions that interact with accessible public interfaces from the variety of available &lt;a href='https://wiki.mozilla.org/WebAPI'&gt;WebAPI&lt;/a&gt;. In turn we can we abstract and create APIs for use in our tests (e.g, preliminary tests such as &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/gaiatest/tests/test_dialer.py'&gt;test_dialer.py&lt;/a&gt; disables device volume and soon to be &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/gaiatest/tests/test_browser.py'&gt;test_browser.py&lt;/a&gt; where one can toggle WiFi and or celluar data).&lt;/p&gt;

&lt;p&gt;I would encourage all those who are currently writing Gaia applications to try out &lt;a href='https://developer.mozilla.org/en-US/docs/Marionette'&gt;Marionette&lt;/a&gt; and &lt;a href='https://github.com/mozilla/gaia-ui-tests'&gt;Gaiatest&lt;/a&gt; and to contribute to our UI automation efforts by writing well-tested tests to expand our current test-suite. The &lt;span&gt;Github&lt;/span&gt; repository is where all activity is at with chatter taking place on #appsqa on Mozilla IRC.&lt;/p&gt;

&lt;p&gt;Further information on running &lt;a href='https://developer.mozilla.org/en-US/docs/Marionette'&gt;Marionette&lt;/a&gt; tests can be read &lt;a href='https://developer.mozilla.org/en-US/docs/Marionette/Running_Tests'&gt;here&lt;/a&gt; alongside a &lt;a href='https://github.com/mozilla/gaia-ui-tests/blob/master/README.md'&gt;README&lt;/a&gt; for installing and setting up &lt;a href='https://github.com/mozilla/gaia-ui-tests'&gt;Gaiatest&lt;/a&gt;.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Testing H.264/AAC/MP3 decoding in Firefox Beta for Android</title>
   <link href="http://aaronmt.github.com/blog/2012/10/13/firefox-android-h264-help"/>
   <updated>2012-10-13T14:00:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/10/13/firefox-android-h264-help</id>
   <content type="html">&lt;p&gt;My last post on modifying an Android Stagefright H.264/AAC/MP3 decoder preference in Gecko, which toggles software and hardware decoding of those formats in Firefox for Android briefly talked about how that override can be usful for testing. As part of our Firefox Beta testing cycle we want to extend our efforts in widening the degree of testing in leveraging the community for assistance in areas of testing different Android 4.0 (Ice Cream Sandwich) and Android 4.1 (Jelly Bean) based devics through different video based websites.&lt;/p&gt;

&lt;p&gt;We could use your help testing but not limited to the following video and audio centric websites such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://html5.grooveshark.com'&gt;Grooveshark&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.bloomberg.com'&gt;Bloomberg&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.funnyordie.com'&gt;FunnyOrDie&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.dailymotion.com'&gt;Dailymotion&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.soundcloud.com'&gt;Soundcloud&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are also looking for testing around different types of popular online video platforms where playback issues may exist. Recently, we have seen an issue where &lt;a href='http://www.brightcove.com'&gt;Brightcove&lt;/a&gt; was identifying Firefox as unsupported due to a mismatch in the naming of profiles used in the list of supported video formats returned from the video.canPlayType() JS API. Their &lt;a href='http://admin.brightcove.com/html5support/index.html'&gt;player test-page&lt;/a&gt; now currently identifies Firefox for Android as supported.&lt;/p&gt;

&lt;p&gt;We are also seeking out any potential playback issues with Android devices.&lt;/p&gt;

&lt;p&gt;The following are example bugs related to devices of issues of which we have seen thus far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://bugzil.la/785275'&gt;Bug 785275&lt;/a&gt; - Galaxy S III hardware decoder shows green bars when playing non-720p videos (OMX_COLOR_FormatYUV420SemiPlanar)&lt;/li&gt;

&lt;li&gt;&lt;a href='http://bugzil.la/797364'&gt;Bug 797364&lt;/a&gt; - Stagefright: Galaxy SII &amp;amp; Galaxy Note hardware decoder video yields green layer over video&lt;/li&gt;

&lt;li&gt;&lt;a href='http://bugzil.la/784329'&gt;Bug 784329&lt;/a&gt; - No video playback on the Galaxy Nexus&lt;/li&gt;

&lt;li&gt;&lt;a href='http://bugzil.la/783830'&gt;Bug 783830&lt;/a&gt; - Playback on Samsung Galaxy SIII intercepted by AwesomePlayer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Currently, support is restricted to Ice Cream Sandwich and Jellybean devices with Gingerbread in development. The following devices are known to work and have been tested at Mozilla:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTC One X (Android 4.0)&lt;/li&gt;

&lt;li&gt;HTC One V (Android 4.0)&lt;/li&gt;

&lt;li&gt;Samsung Galaxy Note (Android 4.0)&lt;/li&gt;

&lt;li&gt;Samsung Galaxy Nexus (Android 4.0, 4.1)&lt;/li&gt;

&lt;li&gt;Samsung Galaxy SII (Android 4.0)&lt;/li&gt;

&lt;li&gt;Samsung Galaxy SIII (Android 4.0)&lt;/li&gt;

&lt;li&gt;Samsung Nexus S (Android 4.0, 4.1)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='how_to_help'&gt;How to Help&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;First, we would like for you to download the new Firefox on Android (currently on the Beta channel) &lt;a href='https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta'&gt;available here&lt;/a&gt; and install it onto your Android device&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Try out different video-based websites that serve HTML5 video and audio, identify playback (player, audio, and video) issues&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Create a Bugzilla account in our bug tracker so that you can file bugs you find against Firefox on Android in Bugzilla. Reminder, effective bug reports are likely to be fixed. There are excellent bug writing guidelines for your pleasure to read &lt;a href='https://developer.mozilla.org/en/Bug_writing_guidelines'&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Join and chat with us on &lt;a href='irc://irc.mozilla.org/QA'&gt;Mozilla IRC&lt;/a&gt; to talk with Mobile QA and mobile developers to let us know of any issues. We are particularily interested in the state of playback on other Android mobile devices and which sites work and which sites dont work&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>Mozilla Mobile QA (Firefox for Android) and AppThwack</title>
   <link href="http://aaronmt.github.com/blog/2012/10/02/appthwack"/>
   <updated>2012-10-02T15:28:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/10/02/appthwack</id>
   <content type="html">&lt;p&gt;Here at Mozilla, we’re always looking and investing in different ways that our mobile related testing efforts and strategies can evolve and expand into new avenues as Firefox for Android mature as a product. We’re always engaged in seeking out different yet worthwhile services and tools that can integrate into our regular QA process.&lt;/p&gt;

&lt;p&gt;Whilst we continue to operate as a small team (Mobile QA for Firefox on Android is about two-full time employees); we’re seeking all the help we can get whether it be from &lt;a href='https://wiki.mozilla.org/QA/Fennec/Armv6Compatibility#Unofficial_Community-Driven_Device_Testing_Table'&gt;community&lt;/a&gt; or from those who have created &lt;a href='http://www.keynotedeviceanywhere.com'&gt;services&lt;/a&gt; and &lt;a href='http://testdroid.com'&gt;utilities&lt;/a&gt; to assist mobile QA efforts.&lt;/p&gt;

&lt;p&gt;We react in seeking solutions by continuing to identify and respond to problems. In identifying our areas of contention, we still see &lt;a href='http://developer.android.com/about/dashboards/index.html'&gt;Android device fragmentation&lt;/a&gt; and access on-demand to &lt;a href='http://www.android.com/devices/'&gt;Android devices&lt;/a&gt; as major paint-points of Android testing. To administer any type of soluton would involve boasting and utilizing the services and assistance from others. Currently we use DeviceAnywhere for one-off direct device testing; but we desired a service that targets automation.&lt;/p&gt;

&lt;p&gt;A couple months ago we stumbled upon &lt;a href='http://www.appthwack.com'&gt;AppThwack&lt;/a&gt;, a service that manages mobile application and fragmentation issues by deploying uploaded &lt;a href='http://en.wikipedia.org/wiki/APK_(file_format)'&gt;Android Package (APK)&lt;/a&gt; files and deploying (installation) on &lt;strong&gt;real&lt;/strong&gt;Android based phones and tablets. The devices are hosted and interfaced through web front-end that makes it easy to view and extract results ran from automated tests (currently self-written and provided &lt;a href='http://developer.android.com/tools/help/monkeyrunner_concepts.html'&gt;MonkeyRunner&lt;/a&gt; tests are available, and on-track towards deploying &lt;a href='http://code.google.com/p/robotium/'&gt;Robotium&lt;/a&gt; and &lt;em&gt;possibly in the near future&lt;/em&gt; Mozilla based &lt;a href='https://wiki.mozilla.org/Auto-tools/Projects/Robocop'&gt;Robocop&lt;/a&gt; tests). Alongside, screen-shots are provided from multiple device orientations which make it usful for identifying any user-interface issues. A test-run takes a couple minutes and any data collected may be bundled and downloaded together to deploy towards any new Bugzilla bug for track-keeping.&lt;/p&gt;

&lt;p&gt;Currently, we are utilizing their service for testing Firefox for Android builds during our &lt;a href='https://wiki.mozilla.org/RapidRelease/Calendar'&gt;rapid release Beta cycle&lt;/a&gt; and are looking at different strategies of integration for the other channels within our cycle.&lt;/p&gt;

&lt;p&gt;If you would like to see what a test-run looks like &lt;a href='http://www.appthwack.com/public/WrPWGZz58L'&gt;click here&lt;/a&gt;.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Site Compatibility Testing for Firefox for Android</title>
   <link href="http://aaronmt.github.com/blog/2012/09/27/site-compatibility"/>
   <updated>2012-09-27T14:47:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/09/27/site-compatibility</id>
   <content type="html">&lt;p&gt;The Mozilla Developer Network has recently accepted an excellent informational article written by Jason Smith, Lawrence Mandel, and Janet Swisher essentially entailing the largely problematic issue of browser and content compatibility with the mobile web. If you are interested in site testing for Firefox for Android, please give the article a read; and help us improve the web. Let us know if you have any questions about compatibility testing or want to become involved in Mozilla’s mobile web compatibility effort, please sign up for the compatibility@lists.mozilla.org mailing list. https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_for_Android/Compatibility_Testing&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Debug preference for testing H.264/MPEG-4 AVC in Firefox for Android</title>
   <link href="http://aaronmt.github.com/blog/2012/09/12/debug-h264-firefox-android"/>
   <updated>2012-09-12T15:14:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/09/12/debug-h264-firefox-android</id>
   <content type="html">&lt;p&gt;&lt;a href='http://nightly.mozilla.org'&gt;Nightly&lt;/a&gt; for Android has recently adapted a new &lt;a href='http://kb.mozillazine.org/About:config'&gt;about:config&lt;/a&gt; preference for using and more-so testing Android H.264/MPEG-4 AVC decoding. The preference is media.stagefright.omxcodec.flags&lt;/p&gt;

&lt;p&gt;Utimately, this preference allows one to override whether Firefox uses Android’s H.264/MPEG-4 AVC software or hardware decoder. As Chris Peterson mentions in the same &lt;a href='https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.platforms.mobile/KgkqfFb_ISA'&gt;announcement&lt;/a&gt;, this is useful for debugging different configurations and conveinent for testing.&lt;/p&gt;

&lt;p&gt;Flags values to note:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;0 - Android will use either hardware or software decoding (&lt;strong&gt;default&lt;/strong&gt;)&lt;/li&gt;

&lt;li&gt;8 - Force software decoding&lt;/li&gt;

&lt;li&gt;16 - Force hardware decoding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reference: &lt;a href='https://github.com/android/platform_frameworks_base/blob/ics-plus-aosp/include/media/stagefright/OMXCodec.h#L35'&gt;OMXCodec::CreationFlags&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Firefox for Android - Website Compatibility Testing</title>
   <link href="http://aaronmt.github.com/blog/2012/08/19/website-compatibility-testing"/>
   <updated>2012-08-19T15:37:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/08/19/website-compatibility-testing</id>
   <content type="html">&lt;p&gt;Firefox for Android Testers,&lt;/p&gt;

&lt;p&gt;Website compatibility testing will be a covered and focused area as part of the release testing process for Firefox for Android 15.0, and we want you to help us during our testing cycle.&lt;/p&gt;

&lt;p&gt;We want you to use Firefox on Android (on the &lt;a href='http://www.mozilla.org/en-US/firefox/aurora/'&gt;Aurora&lt;/a&gt;) channel to assist us in identifying any noticeably major issues found in websites. Issues can range from pages that do not look right due to layout and positioning problems to interactivity and font related issues. We are also looking for testing around top-sites to identify areas where content served to Firefox differs from other mobile browsers.&lt;/p&gt;

&lt;p&gt;How you can help us?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download &lt;a href='http://www.mozilla.org/en-US/firefox/aurora/'&gt;Aurora&lt;/a&gt; for Android&lt;/li&gt;

&lt;li&gt;Run the &lt;a href='http://mzl.la/fennectest'&gt;website compatiblity testing tool&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;File issues found on &lt;a href='https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20for%20Android'&gt;Bugzilla&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='https://lists.mozilla.org/listinfo/compatibility'&gt;Join our website compatiblity testing and evangelism mailing list&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Join us on &lt;a href='http://irc.mozilla.org/'&gt;IRC&lt;/a&gt; in the #mobile and #qa channels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bringing a better Firefox to Android will guide us all towards fulfilling Mozilla’s &lt;a href='http://www.mozilla.org/about/mission.html'&gt;mission&lt;/a&gt; of providing access to one Web that everyone can access, regardless of device or location.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Discover and Help Test Web Apps in Firefox for Android on Friday August 24th, 2012</title>
   <link href="http://aaronmt.github.com/blog/2012/08/19/web-apps-testday"/>
   <updated>2012-08-19T15:37:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/08/19/web-apps-testday</id>
   <content type="html">&lt;p&gt;This upcoming Friday, we would love for you to solicit your support towards testing and contributing to the process of qualifying a new alpha-release version of Firefox for Android on the Aurora channel as part of our rapid release testing cycle. We will be focusing on the process of &lt;a href='https://marketplace.mozilla.org/en-US/'&gt;discovering&lt;/a&gt;, installing, managing and using &lt;a href='http://www.mozilla.org/en-US/apps/'&gt;web applications&lt;/a&gt;inside of Firefox for Android.&lt;/p&gt;

&lt;p&gt;This event is open to &lt;strong&gt;all&lt;/strong&gt; those interested: newcomers, experienced testers, developers, and anyone interested in testing and using Firefox on Android.&lt;/p&gt;

&lt;p&gt;We would like for you to use the new version of Firefox on your Android phone, and take a close look at the latest Aurora product in order to assist us in identifying any noticeably major issues found, and ensure that all feature functionality that is included in this upcoming release is on its way to a feature and testing complete state with the added emphasis on discovering and using &lt;a href='http://www.mozilla.org/en-US/apps/'&gt;web applications&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To cover the work throughout the whole day we have created an &lt;a href='https://etherpad.mozilla.org/testday-20120824-apps'&gt;EtherPad&lt;/a&gt; test-plan. Please feel free to read and use it as a companion during the testday event. There will be moderators at hand in the IRC channel: &lt;a href='http://goo.gl/ci7qp'&gt;#testday&lt;/a&gt;, to answer any questions you have.&lt;/p&gt;

&lt;p&gt;Together with your help we want to make this testday a success and ensure the high quality of Firefox for Android for mobile devices for all of our users world-wide. If you have time on Friday August 24th, 2012, please join us on IRC, we will have Mozilla community and testers on hand to help answer any of your questions.&lt;/p&gt;

&lt;p&gt;Your testing and feedback is &lt;strong&gt;highly valuable&lt;/strong&gt;, and we hope to see you attend our test day event.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Destroy all the activities!</title>
   <link href="http://aaronmt.github.com/blog/2012/06/30/destroy-all-the-activities"/>
   <updated>2012-06-30T19:46:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/06/30/destroy-all-the-activities</id>
   <content type="html">&lt;p&gt;These past few days, an &lt;a href='https://support.mozilla.org/en-US/questions/931141'&gt;influx&lt;/a&gt; &lt;a href='https://support.mozilla.org/en-US/questions/931056'&gt;of&lt;/a&gt; &lt;a href='https://support.mozilla.org/en-US/questions/930825'&gt;reports&lt;/a&gt; &lt;a href='https://support.mozilla.org/en-US/questions/931107'&gt;have&lt;/a&gt; &lt;a href='https://bugzilla.mozilla.org/show_bug.cgi?id=769269'&gt;arrived&lt;/a&gt; with users reporting that the new Firefox on Android will ’&lt;em&gt;ultimately&lt;/em&gt; &lt;em&gt;fail to properly load web-pages’&lt;/em&gt;as strongly convened from investigating the multiple reports.&lt;/p&gt;

&lt;p&gt;Turns out for whatever reason folks seem to be enabling a tucked away Android 4.0 (Ice Cream Sandwhich) developer option — ’&lt;strong&gt;Don’t keep activities&lt;/strong&gt;’ with the description: ’&lt;strong&gt;&lt;span style='text-decoration: underline;'&gt;Destroy&lt;/span&gt;&lt;/strong&gt; &lt;strong&gt;&lt;span style='text-decoration: underline;'&gt;every&lt;/span&gt;&lt;/strong&gt; &lt;strong&gt;&lt;span style='text-decoration: underline;'&gt;activity&lt;/span&gt;&lt;/strong&gt; as soon as the user leaves it’, which means that Gecko is likely killed when a user tries to visit a URL from the browser’s ‘Awesome Screen’.&lt;/p&gt;

&lt;p&gt;As Kevin Brosnan points out in our tracking &lt;strong&gt;&lt;a href='http://bugzil.la/769269'&gt;bug 769269&lt;/a&gt;,&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;~~~~ Firefox requires a background activity because of its hybrid Java/C++ design ~~~~&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is a nice find and an interesting case. Moral of the story please keep this developer option disabled to prevent destruction of &lt;em&gt;all&lt;/em&gt; the activities!&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Android MonkeyRunner Automation</title>
   <link href="http://aaronmt.github.com/blog/2012/04/21/android-monkeyrunner-automation"/>
   <updated>2012-04-21T20:42:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/04/21/android-monkeyrunner-automation</id>
   <content type="html">&lt;p&gt;A few folks have asked me what’s involved with my simple automation script that ultimately produces screenshots of running browsers on Android. It’s rather uncomplicated, I am using the &lt;a href='http://developer.android.com/guide/developing/tools/MonkeyRunner.html'&gt;monkeyrunner&lt;/a&gt; tool that is bundled with the &lt;a href='http://developer.android.com/sdk/index.html'&gt;Android SDK.&lt;/a&gt; As the Android Developers guide indicates:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The monkeyrunner tool provides an API for writing programs that control an Android device or emulator from outside of Android code. With monkeyrunner, you can write a Python program that installs an Android application or test package, runs it, sends keystrokes to it, takes screenshots of its user interface, and stores screenshots on the workstation. The monkeyrunner tool is primarily designed to test applications and devices at the functional/framework level and for running unit test suites, but you are free to use it for other purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Intended mainly as a tool for synthesizing input on Android, one can also easily get a capture of the Android screen with its Python/Jython API. The code below listens and connects to an Android device, loops through a list of provided Android browser package/activities, visits a site (provided by a CSV), waits a couple seconds for page-load (Hack! How can I go about better doing this?), snaps a picture and writes it out to a directory provided by argument.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import sys, csv

browsers = [&amp;#39;com.android.chrome/.Main&amp;#39;,
                &amp;#39;org.mozilla.fennec/.App&amp;#39;]

# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()

#Start each browser activity with the provided URL
for run, browser in enumerate(browsers):

    # Visit each site
    for visit, site in enumerate(csv.reader(open(sys.argv[1]).readlines())):

        # Start the activity with the provided site
        device.startActivity(component=browser, uri=site[0])

        # Wait for page load timeout        MonkeyRunner.sleep(20)

        # Snap a screenshot of the running activity
        device.takeSnapshot().writeToFile(&amp;quot;%s%s-%s.png&amp;quot; % (sys.argv[2], visit, run), &amp;#39;png&amp;#39;)&lt;/code&gt;&lt;/pre&gt;</content>
 </entry>
 
 <entry>
   <title>Call for Help - Testing Firefox on your Android Device</title>
   <link href="http://aaronmt.github.com/blog/2012/04/20/call-for-help-testing-firefox-for-android"/>
   <updated>2012-04-20T18:15:00-07:00</updated>
   <id>http://aaronmt.github.com/blog/2012/04/20/call-for-help-testing-firefox-for-android</id>
   <content type="html">&lt;p&gt;As part of Mozilla Mobile QA&amp;#8217;s release criteria for continually testing Firefox on Android, we want to again extend our efforts in leveraging the community for assistance in areas of device.&lt;/p&gt;

&lt;p&gt;We want you to test and provide feedback in regards to how Firefox operates on your Android device.&lt;/p&gt;

&lt;p&gt;A problematic challenge we face is the ability to truly test and qualify the ever increasing and vast assortment of Android based devices (phone, tablet and soon to be more) out there in the wild; the nature of which the carriers and combination of an open platform presents us with. With so many devices available, it is difficult to to ultimately attest and standby the truth in acknowledging if a device will be truly compatible with Firefox or not based on a range of criteria. Compatibility on each device can also very well be a subjective opinion based on overall experience, fulfillment and value. As each device has different hardware and different processes and configurations, it is challenging to produce an appropriate label and or level of compatibility for a device. This is where we want your help.&lt;/p&gt;

&lt;p&gt;To gather information from community based testing, we have created a simple survey that can assist in defining and painting the overall picture of a device at hand. We currently have a backlog of untested devices that we not have access to, and we could use your help in testing!&lt;/p&gt;

&lt;h2 id='how_to_help'&gt;How to Help&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;First, we would like for you to download the new Firefox on Android (currently on the Nightly channel) &lt;a href='http://nightly.mozilla.org'&gt;available here&lt;/a&gt; and install it onto your Android device&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Create a Bugzilla account in our bug tracker so that you can file bugs you find against Firefox on Android in Bugzilla. Reminder, effective bug reports are likely to be fixed. There are excellent bug writing guidelines for your pleasure to read &lt;a href='https://developer.mozilla.org/en/Bug_writing_guidelines'&gt;here&lt;/a&gt;. Detail the issues you find to significantly increase the chances that a developer can act on the bug thus increasing the likelihood of positive resolution — provide in-browser &lt;a href='http://www.itworld.com/mobile-wireless/269948/heres-how-grab-screenshot-nearly-any-smartphone'&gt;Android screenshots&lt;/a&gt;, website URL, browser build information, and steps to reproduce the issues&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Join and chat with us on IRC on the server irc.mozilla.org in the rooms #mobile and #qa to talk with Mobile QA and mobile developers.&lt;/p&gt;

&lt;p&gt;A few minutes of your time in completing the survey will be largely valuable, and you will be contributing towards the testing efforts of Firefox.&lt;/p&gt;</content>
 </entry>
 
 
</feed>