Apps/QA/Native Install Android: Difference between revisions

From MozillaWiki
< Apps‎ | QA
Jump to navigation Jump to search
 
(45 intermediate revisions by one other user not shown)
Line 10: Line 10:
|- valign="top"
|- valign="top"
| '''Lead Developer:'''  
| '''Lead Developer:'''  
| Anant Narayanan
| [mailto:hkirschner@mozilla.com Harald Kirschner]
|}
|}


==Q4 OWA (Native Android Application)==
== Quick Start Guide ==
Here is a quick start guide to get you to install a signed copy of the latest version for install in Android of the native open web apps application:


=== Introduction ===  
Github Repository: [https://github.com/mozilla/soup https://github.com/mozilla/soup]
 
Build instructions
# Clone the [https://github.com/mozilla/soup Git repository]
# Download the [http://developer.android.com/sdk/index.html Android SDK]
# Import the project into [http://www.eclipse.org/ Eclipse]
# Configure the project properties to target Android API Level 8 (Android 2.2 (Froyo))
# Build and Run
 
Compile and build 'Soup' from the Android project (targeting [http://developer.android.com/sdk/android-2.2.html Android API Level 8]). Enable 'Install form Unknown Sources' on your Android device under Application Settings. Once installed, you may find the application in the Android application launcher.
 
Join us on [http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23openwebapps #openwebapps] and [http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23QA #QA]
 
Prebuilt Android Package Binaries
* [http://people.mozilla.org/~dclarke/openwebapps/Soup/latest/Soup.apk Tap here to download]
 
== Introduction ==  


This quarter we will see emerge the essential Mozilla application store marketplace and native Android open web application management application. The application will be built using [http://www.phonegap.com/ PhoneGap] utilizing cross-platform languages such as HTML/CSS and JavaScript, and using APIs provided by [https://developer.mozilla.org/en/WebApps/Apps_JavaScript_API Apps JavaScript API] and [http://addons.mozilla.org addons.mozilla.org] to provide a list of installable applications. In essence, upon completion of a transaction (wether it be installing a free or paid open web application), the result of the install action is to download and install an open web application to the users Android home screen. Invoking an open web application will launch its associated web site in a [http://www.webkit.org/ WebKit] runtime.
This quarter we will see emerge the essential Mozilla application store marketplace and native Android open web application management application. The application will be built using [http://www.phonegap.com/ PhoneGap] utilizing cross-platform languages such as HTML/CSS and JavaScript, and using APIs provided by [https://developer.mozilla.org/en/WebApps/Apps_JavaScript_API Apps JavaScript API] and [http://addons.mozilla.org addons.mozilla.org] to provide a list of installable applications. In essence, upon completion of a transaction (wether it be installing a free or paid open web application), the result of the install action is to download and install an open web application to the users Android home screen. Invoking an open web application will launch its associated web site in a [http://www.webkit.org/ WebKit] runtime.


==== Mobile Technologies ====
== Mobile Technologies ==
* Mobile
Native Android Application
** Support for installable applications
* Support for installable applications
*** The Android application understands what a web application is, and helps one manage ones list of applications
** The Android application understands what a web application is, and helps one manage ones list of applications
**** Application metadata storage
*** Application metadata storage
**** Installation query/management API
*** Installation query/management API
** Support for permission requests
* Support for permission requests
*** When an application is installed, it can request a number of permissions at once
** When an application is installed, it can request a number of permissions at once
** Installed Open Web Applications
* Installed Open Web Applications
*** When one invokes an open web application, it invokes in a chrome-less window providing the appearance of a traditional Android application
** When one invokes an open web application, it invokes in a chrome-less window providing the appearance of a traditional Android application
* Support for purchasable applications
** Ability to cycle through and purchase applications through PayPal transactions
* BrowserID sign-on
** Single point BrowserID sign-in providing transition from dashboard to market


=== Risks ===
== Risks ==


With such an assemblage of utility as described from the requirements, there are multiple negative risks.
With such an assemblage of utility as described from the requirements, there are multiple negative risks:


* Deliverance of dependancy of deployed market with curated applications
* Deliverance of dependancy of deployed market with curated applications
* Deliverance of PayPal integration to support the handling of paid applications
* Deliverance of PayPal integration to support the handling of paid applications
* BrowserID integration
* BrowserID integration
* AppSync integration and utilization
* Cross-platform compliance to iOS using a PhoneGap solution
* Cross-platform compliance to iOS using a PhoneGap solution


=== Plan ===
== Milestones ==
 
Testing of the native Android application must focus on a variety of modules that comprise the specified requirements including native installation capabilities and launching of associated open web applications in a chromeless window. In essence, we should extract all requirements and specifications from the application to create manual regression test cases. Exploratory methods and smoke-tests should also cover a more advanced set of test cases. A proper sandboxed environment should be used for testing.
 
The testing process involves:
 
# Tester should install (if builds are hosted) or compile latest code from [https://github.com/mozilla/soup this Github repository]; alongside [https://bugzilla.mozilla.org/ Bugzilla].
# Tester will verify any bugs that have been resolved with the associated build
# (''Tester will run automation tests to make sure no regressions have occurred'')
# Tester will run using manual test cases and exploratory testing as well
# Teser will file new bugs as necessary
# Tester will create new test cases as necessary and make sure the current test cases are up to date


{| cellspacing="1" cellpadding="1" border="1" style="width: 1000px; height: 130px;"
'''NOTE''': A new product will be created on [https://litmus.mozilla.org/ Litmus], and test-run will be created on [https://litmus.mozilla.org/ Litmus] in order to run the manual suite of tests.
 
'''Soup for Android'''
 
{| cellspacing="1" cellpadding="1" border="1"
|-
| align="center" colspan="3" | '''Major Milestones''' / '''Stories'''<br>
| colspan="2" | '''Date'''<br>
|-
| colspan="3" | Native installation and management capabilities
| colspan="2" | Q4 2011
|-
| colspan="3" | Implement device permissions
| colspan="2" | TBD
|-
|}
<br>
'''Soup base code on WebKit'''
 
{| cellspacing="1" cellpadding="1" border="1"
|-
|-
| align="center" colspan="3" | '''Major Milestones''' / '''Stories'''<br>  
| align="center" colspan="3" | '''Major Milestones''' / '''Stories'''<br>  
| colspan="2" | '''Date'''<br>
| colspan="2" | '''Date'''<br>
|-
|-
| colspan="3" |  
| colspan="3" | Implements navigator.mozApps
| colspan="2" | <br>
| colspan="2" | Done
|-
| colspan="3" | Talks to AppSync service
| colspan="2" | Q4 2011
|-
| colspan="3" | Integrates with BrowserID
| colspan="2" | Q4 2011
|-
| colspan="3" | Provide simple "about:apps" app list
| colspan="2" | Q4 2011
|-
|-
| colspan="3" |  
| colspan="3" | Packaged as a PhoneGap app
| colspan="2" | <br>
| colspan="2" | Q4 2011
|-
|-
| colspan="3" |  
| colspan="3" | Solves pre-auth problem
| colspan="2" | <br>
| colspan="2" | Q4 2011
|-
|-
| colspan="3" |
| colspan="2" | <br>
|}
|}


=== Release Criteria  ===
<br>
'''Test Cases'''
 
A set of test cases are being created that focus on manual testing strategies. The main functionality document being used to aid in the creation fo the test cases can be found [https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdFlrTVlLYVZ3bVhHYm95T0JzWVdYYlE&hl=en_US#gid=0 here]. The document is split up into worksheets relating to a function/area to test. Questions regarding this document should refer to Aaron (irc:AaronMT).
 
There are quite a few questions that should be answered in order to have a good understanding of the requirements and full capabilities are of the Android application. Answering these questions is crucial in having a solid set of manual test cases. The list of questions is being tracked [https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdHc4Rk1kY1FUQVdMM3FDdURjVmMyWVE&hl=en_US#gid=0 here]. Please feel free to update the document and add any other questions or answer some of the questions there already.
 
== Release Criteria  ==


''' Developer Preview '''
{| cellspacing="1" cellpadding="1" border="1" style="width: 1000px; height: 45px;"
{| cellspacing="1" cellpadding="1" border="1" style="width: 1000px; height: 45px;"
|-
|-
Line 66: Line 133:
| align="center" | '''&nbsp;Release Invariant'''<br>
| align="center" | '''&nbsp;Release Invariant'''<br>
|-
|-
| width="50" | <br>
| width="50" | P1
| <br>
| Installation and management capabilities for Open Web Applications
|-
|-
| width="50" | <br>
| width="50" | P1
| <br>
| Successful launch of associated Open Web Application into WebKit (Chromeless) window
|-
|-
| width="50" | <br>
| width="50" | P1
| <br>
| Ability to purchase free and paid Open Web Applications through using PayPal
|-
| width="50" | P1
| Ability to navigate the Open Web Applications store on live site
|-
| width="50" | P1
| BrowserID login to utilize Mozilla Sync API's to sync Open Web Applications
|}
|}


== Quick Start Guide ==
<br />
Here is a quick start guide to get you to install a signed copy of the latest version for install in Android of the native open web apps application:
''' Post Developer Preview - Q1 2012 '''
{| cellspacing="1" cellpadding="1" border="1" style="width: 1000px; height: 45px;"
|-
| width="50" | '''Priority'''<br>
| align="center" | '''&nbsp;Release Invariant'''<br>
|-
|}


Github Repository: [https://github.com/anantn/soup https://github.com/anantn/soup]
== Test Plan ==
=== Manual Testing ===
'''What do we test'''
* [https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdFlrTVlLYVZ3bVhHYm95T0JzWVdYYlE&hl=en_US#gid=5 Test Cases Document]
'''What we do not test'''
* Fennec front-end integration with Navigator.MozApps JavaScript Open Web Apps API interactions (i.e., installing, managing, uninstalling and granting permissions to web-apps)


Build instructions
=== Automation ===
# Clone the Git [https://github.com/anantn/soup.git repository]
Currently there is no automation in the testing of the native Android application. Efforts are involved in investing [http://code.google.com/p/robotium/ Robotium] as a candiate for utility and test creation.
# Download the [http://developer.android.com/sdk/index.html Android SDK]
# Import the project into [http://www.eclipse.org/ Eclipse]
# Configure the project properties to target Android API Level 8 (Android 2.2 (Froyo))
# Build and Run


Compile and build 'Soup' from the Android project (targeting [http://developer.android.com/sdk/android-2.2.html Android API Level 8]). Enable 'Install form Unknown Sources' on your Android device under Application Settings. Once installed, you may find the application in the Android application launcher.
== Release Management ==
=== Entry Criteria ===
# Builds & staging are available for testing with the features to be QA'ed
# QA has all the details including specs and scope of details to be verified


== Test Plan ==
=== Exit Criteria ===
# All the features targeted for Phase I have been QA'ed
# All P1's, P2's, Blocker and Critical bugs have been verified by QA or have been marked [QA-] as not needing verification
# QA has apprised stakeholders on IRC or through E-Mail of the testing performed, and the outstanding bug list
# Stakeholders from QA, Dev and Product have met to discuss pre-release readiness of the release
# All stakeholders have signed off on the release
# QA runs sanity tests after push to Android market


== Test Cases ==
== Test Cases ==
===Mobile App User Integration Flow===
* Native Android application on Android Market
* Buying Etherpal (Free Application)
* First-time BrowserID user
* Native Android application on Android Market
* Buying Evernote (after having bought a free application)
* Returning BrowserID user
* First-time PayPal user


== Bug Tracking ==
== Bug Tracking ==
=== Bugzilla ===
'''Bugzilla Queries'''
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=1704343&classification=Other&query_format=advanced&component=Soup&product=Web%20Apps All Bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=1704348&resolution=FIXED&classification=Other&query_format=advanced&bug_status=RESOLVED&component=Soup&product=Web%20Apps All RESOLVED FIXED Bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=1704348&resolution=FIXED&classification=Other&query_format=advanced&bug_status=VERIFIED&component=Soup&product=Web%20Apps All VERIFIED FIXED bugs]
=== Github Repostory ===  
=== Github Repostory ===  
==== Issues ====
==== Issues ====
Line 100: Line 203:
* [https://github.com/anantn/soup/issues/2 Supply a drawable resource and label for org.mozilla.labs.WEBAPP intent]
* [https://github.com/anantn/soup/issues/2 Supply a drawable resource and label for org.mozilla.labs.WEBAPP intent]


== Tasks ==
== Tasks ==
 
The following is the current list of tasks being worked on. Please feel free to take any task that is not already claimed or if you would like to help, please contact the person under the 'Assigned' column.
 
{| cellspacing="1" cellpadding="1" border="1"
|-
! width="400" scope="col" | Task Description<br>
! width="100" scope="col" | Status<br>
! width="400" scope="col" | Comments/Notes<br>
! width="100" scope="col" | Assigned<br>
! width="100" scope="col" | Priority
|-
| Determine specifications/requirements for the application and Open Web Apps to use as reference for manual test cases
| In Progress
| All the available documentation that is being used to track the progress the of the extension and to aid in creating test cases can be found below under Documents/Links.
| AaronMT
| P1
|-
| Create manual test cases for the application
| In Progress
| Manual test cases will be [https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdFlrTVlLYVZ3bVhHYm95T0JzWVdYYlE&hl=en_US#gid=0 tracked here], and questions will be [https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdHc4Rk1kY1FUQVdMM3FDdURjVmMyWVE&hl=en_US tracked here]
| AaronMT
| P2
|-
|Start testing the native Android application
|Blocked
|Akin to the OWA extension, there is currently not much that is ready to be tested. Eyeing repository awaiting further commits. Have approached Anant, to request a schedule or timeline but none was provided.
|AaronMT
|P1
|-
|}
 
== Documents / Links  ==
 
Documentation
 
*[https://developer.mozilla.org/en/Apps/Apps_JavaScript_API Apps JavaScript API - MDN]
*[https://docs.google.com/spreadsheet/ccc?key=0AiZoGR-iOAlUdHVQemJDVjBQSXdvc01QN1BiYm43QlE#gid=0 Tier 1 Mobile App Gecko vs Webkit]
*[http://people.mozilla.com/~atrain/webapps/tier1-screenshots/ Tier 1 Phone Gecko vs Webkit Screenshots]
*[https://intranet.mozilla.org/File:Mobile-app-user-flows-DML-1128am.pdf Mobile Application User Flow (Design document)]
 
Links
 
*[https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdFlrTVlLYVZ3bVhHYm95T0JzWVdYYlE&hl=en_US#gid=4 Test Cases Document]
*[https://github.com/anantn/soup GitHub Repository]
*[https://wiki.mozilla.org/Apps/Overview Apps Overview - Main]
*[https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdHc4Rk1kY1FUQVdMM3FDdURjVmMyWVE&hl=en_US#gid=0 Android (PhoneGap) and Apps Questions]
 
Testing Related


== Documents / Links ==
*[https://apps-preview-dev.allizom.org/en-US/firefox/users/login Apps Preview Dev]
Documentation
* [https://intranet.mozilla.org/File:Mobile-app-user-flows-DML-1128am.pdf Mobile Application User Flow (Design document)]

Latest revision as of 08:12, 8 March 2012

Android Native Install (Soup)



QA Lead: Aaron Train
Lead Developer: Harald Kirschner

Quick Start Guide

Here is a quick start guide to get you to install a signed copy of the latest version for install in Android of the native open web apps application:

Github Repository: https://github.com/mozilla/soup

Build instructions

  1. Clone the Git repository
  2. Download the Android SDK
  3. Import the project into Eclipse
  4. Configure the project properties to target Android API Level 8 (Android 2.2 (Froyo))
  5. Build and Run

Compile and build 'Soup' from the Android project (targeting Android API Level 8). Enable 'Install form Unknown Sources' on your Android device under Application Settings. Once installed, you may find the application in the Android application launcher.

Join us on #openwebapps and #QA

Prebuilt Android Package Binaries

Introduction

This quarter we will see emerge the essential Mozilla application store marketplace and native Android open web application management application. The application will be built using PhoneGap utilizing cross-platform languages such as HTML/CSS and JavaScript, and using APIs provided by Apps JavaScript API and addons.mozilla.org to provide a list of installable applications. In essence, upon completion of a transaction (wether it be installing a free or paid open web application), the result of the install action is to download and install an open web application to the users Android home screen. Invoking an open web application will launch its associated web site in a WebKit runtime.

Mobile Technologies

Native Android Application

  • Support for installable applications
    • The Android application understands what a web application is, and helps one manage ones list of applications
      • Application metadata storage
      • Installation query/management API
  • Support for permission requests
    • When an application is installed, it can request a number of permissions at once
  • Installed Open Web Applications
    • When one invokes an open web application, it invokes in a chrome-less window providing the appearance of a traditional Android application
  • Support for purchasable applications
    • Ability to cycle through and purchase applications through PayPal transactions
  • BrowserID sign-on
    • Single point BrowserID sign-in providing transition from dashboard to market

Risks

With such an assemblage of utility as described from the requirements, there are multiple negative risks:

  • Deliverance of dependancy of deployed market with curated applications
  • Deliverance of PayPal integration to support the handling of paid applications
  • BrowserID integration
  • AppSync integration and utilization
  • Cross-platform compliance to iOS using a PhoneGap solution

Milestones

Testing of the native Android application must focus on a variety of modules that comprise the specified requirements including native installation capabilities and launching of associated open web applications in a chromeless window. In essence, we should extract all requirements and specifications from the application to create manual regression test cases. Exploratory methods and smoke-tests should also cover a more advanced set of test cases. A proper sandboxed environment should be used for testing.

The testing process involves:

  1. Tester should install (if builds are hosted) or compile latest code from this Github repository; alongside Bugzilla.
  2. Tester will verify any bugs that have been resolved with the associated build
  3. (Tester will run automation tests to make sure no regressions have occurred)
  4. Tester will run using manual test cases and exploratory testing as well
  5. Teser will file new bugs as necessary
  6. Tester will create new test cases as necessary and make sure the current test cases are up to date

NOTE: A new product will be created on Litmus, and test-run will be created on Litmus in order to run the manual suite of tests.

Soup for Android

Major Milestones / Stories
Date
Native installation and management capabilities Q4 2011
Implement device permissions TBD


Soup base code on WebKit

Major Milestones / Stories
Date
Implements navigator.mozApps Done
Talks to AppSync service Q4 2011
Integrates with BrowserID Q4 2011
Provide simple "about:apps" app list Q4 2011
Packaged as a PhoneGap app Q4 2011
Solves pre-auth problem Q4 2011


Test Cases

A set of test cases are being created that focus on manual testing strategies. The main functionality document being used to aid in the creation fo the test cases can be found here. The document is split up into worksheets relating to a function/area to test. Questions regarding this document should refer to Aaron (irc:AaronMT).

There are quite a few questions that should be answered in order to have a good understanding of the requirements and full capabilities are of the Android application. Answering these questions is crucial in having a solid set of manual test cases. The list of questions is being tracked here. Please feel free to update the document and add any other questions or answer some of the questions there already.

Release Criteria

Developer Preview

Priority
 Release Invariant
P1 Installation and management capabilities for Open Web Applications
P1 Successful launch of associated Open Web Application into WebKit (Chromeless) window
P1 Ability to purchase free and paid Open Web Applications through using PayPal
P1 Ability to navigate the Open Web Applications store on live site
P1 BrowserID login to utilize Mozilla Sync API's to sync Open Web Applications


Post Developer Preview - Q1 2012

Priority
 Release Invariant

Test Plan

Manual Testing

What do we test

What we do not test

  • Fennec front-end integration with Navigator.MozApps JavaScript Open Web Apps API interactions (i.e., installing, managing, uninstalling and granting permissions to web-apps)

Automation

Currently there is no automation in the testing of the native Android application. Efforts are involved in investing Robotium as a candiate for utility and test creation.

Release Management

Entry Criteria

  1. Builds & staging are available for testing with the features to be QA'ed
  2. QA has all the details including specs and scope of details to be verified

Exit Criteria

  1. All the features targeted for Phase I have been QA'ed
  2. All P1's, P2's, Blocker and Critical bugs have been verified by QA or have been marked [QA-] as not needing verification
  3. QA has apprised stakeholders on IRC or through E-Mail of the testing performed, and the outstanding bug list
  4. Stakeholders from QA, Dev and Product have met to discuss pre-release readiness of the release
  5. All stakeholders have signed off on the release
  6. QA runs sanity tests after push to Android market

Test Cases

Mobile App User Integration Flow

  • Native Android application on Android Market
  • Buying Etherpal (Free Application)
  • First-time BrowserID user
  • Native Android application on Android Market
  • Buying Evernote (after having bought a free application)
  • Returning BrowserID user
  • First-time PayPal user

Bug Tracking

Bugzilla

Bugzilla Queries

Github Repostory

Issues

Tasks

The following is the current list of tasks being worked on. Please feel free to take any task that is not already claimed or if you would like to help, please contact the person under the 'Assigned' column.

Task Description
Status
Comments/Notes
Assigned
Priority
Determine specifications/requirements for the application and Open Web Apps to use as reference for manual test cases In Progress All the available documentation that is being used to track the progress the of the extension and to aid in creating test cases can be found below under Documents/Links. AaronMT P1
Create manual test cases for the application In Progress Manual test cases will be tracked here, and questions will be tracked here AaronMT P2
Start testing the native Android application Blocked Akin to the OWA extension, there is currently not much that is ready to be tested. Eyeing repository awaiting further commits. Have approached Anant, to request a schedule or timeline but none was provided. AaronMT P1

Documents / Links

Documentation

Links

Testing Related