QA/Browser Technologies/WebAPI: Difference between revisions
(33 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Overview = | = Overview = | ||
The Mozilla WebAPI team is aiming at providing all the necessary APIs to build a basic HTML5 phone experience within the next 3-6 months. | The Mozilla WebAPI team is aiming at providing all the necessary APIs to build a basic HTML5 phone experience within the next 3-6 months. Most of the known APIs (derived from bugzilla) are listed here. | ||
[https://bugzilla.mozilla.org/show_bug.cgi?id=673923 Main Tracking Bug] for following status of project is here. | |||
<p><font color="blue">Blue</font> means the feature has already shipped in a previous version of firefox.</p> | |||
<p><font color="green">Green</font> means the feature has landed recently, or is landing soon.</p> | |||
<p><font color="red">Red</font> means the feature is currently a work in progress.</p> | |||
{| cellpadding="2" border="1" | {| cellpadding="2" border="1" | ||
|- | |- | ||
! Application | ! Application Areas | ||
! Required APIs | ! Required APIs | ||
|- | |- | ||
| Dialer | | Dialer | ||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=674726 Telephony | | [https://bugzilla.mozilla.org/show_bug.cgi?id=674726 <font color="red">Web Telephony API</font>], [https://bugzilla.mozilla.org/show_bug.cgi?id=674725 <font color="red">Web SMS API</font>], [https://bugzilla.mozilla.org/show_bug.cgi?id=674720 Contacts API], [https://bugzilla.mozilla.org/show_bug.cgi?id=690056 <font color="green">Visibility API</font>] | ||
|- | |- | ||
| Battery | | Battery | ||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=678694#c57 Battery API] | | [https://bugzilla.mozilla.org/show_bug.cgi?id=678694#c57 <font color="green">Battery API</font>] | ||
|- | |- | ||
| Address Book | | Address Book | ||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=674720 Contacts API] | | [https://bugzilla.mozilla.org/show_bug.cgi?id=674720 Contacts API] | ||
|- | |- | ||
| | | Messaging and Video Chat | ||
| | | Web Telephony API, Web SMS API, Contacts API, [https://bugzilla.mozilla.org/show_bug.cgi?id=665909 WebRTC] | ||
|- | | | ||
| | |- | ||
| | | Storage | ||
| File System API, <font color="green">IndexedDB API</font> | |||
|- | |- | ||
| Camera | | Camera | ||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=451674 Camera API], Filesystem API | | [https://bugzilla.mozilla.org/show_bug.cgi?id=451674 <font color="green">Camera API</font>], [https://bugzilla.mozilla.org/show_bug.cgi?id=692955 <font color="red">Camera Support for Desktop<font color="green">], Filesystem API | ||
|- | |- | ||
| Settings and Status | |||
| Settings | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=678694 Device Status API], [https://bugzilla.mozilla.org/show_bug.cgi?id=678695 Settings API] | | [https://bugzilla.mozilla.org/show_bug.cgi?id=678694 Device Status API], [https://bugzilla.mozilla.org/show_bug.cgi?id=678695 Settings API] | ||
|- | |- | ||
| Games | | Games | ||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=633602 Mouse Lock API], [https://bugzilla.mozilla.org/show_bug.cgi?id=679966 Vibrator API] | | [https://bugzilla.mozilla.org/show_bug.cgi?id=633602 Mouse Lock API], [https://bugzilla.mozilla.org/show_bug.cgi?id=679966 <font color="red">Vibrator API</font>] | ||
|- | |- | ||
| | | [http://dev.w3.org/2009/dap/system-info/Sensors.html Sensors] | ||
| <font color=" | | <font color="blue">Accelerometer API</font>, [https://bugzilla.mozilla.org/show_bug.cgi?id=673922 Block Orientation Change], Proximity Sensor, Compass, Light Sensor, [https://bugzilla.mozilla.org/show_bug.cgi?id=650295 Speech-to-Text], [https://bugzilla.mozilla.org/show_bug.cgi?id=604039 Joystick API], [https://bugzilla.mozilla.org/show_bug.cgi?id=680289 Joystick Rumble Support] | ||
|- | |- | ||
| Maps | | Maps | ||
| <font color=" | | <font color="blue">Geolocation API</font>, [https://bugzilla.mozilla.org/show_bug.cgi?id=674720 Contacts API] | ||
|- | |- | ||
| Apps | | Apps | ||
| [https://developer.mozilla.org/en/OpenWebApps/The_JavaScript_API OWA API] | | [https://developer.mozilla.org/en/OpenWebApps/The_JavaScript_API OWA API], [https://bugzilla.mozilla.org/show_bug.cgi?id=649154 DOM Crypt API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674701 App-State API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674728 App-Pin API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674734 tab/app-modal popup API], [https://bugzilla.mozilla.org/show_bug.cgi?id=693515 Cross-Origin URI Load API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674693 Full Window API], [https://bugzilla.mozilla.org/show_bug.cgi?id=697361 navigator.mozApps] | ||
| | |||
|- | |||
| Graphics | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=664147 OpenCL], [https://bugzilla.mozilla.org/show_bug.cgi?id=673917 Animated Sprite API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674062 Opacity Threshold API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674066 CSS Tracer API], [https://bugzilla.mozilla.org/show_bug.cgi?id=677989 Native Resolution API], [https://bugzilla.mozilla.org/show_bug.cgi?id=545812 <font color="blue">Fullscreen from Content API</font>] | |||
|- | |||
| Printing | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=680617 WebPrint API] | |||
|- | |||
| Audio | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=674080 Sound Playback API (multishot)] | |||
|- | |||
| Hardware Interfaces | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=674718 WebUSB API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674737 WebBluetooth API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674739 DOM3 Keyboard Event types API], [https://bugzilla.mozilla.org/show_bug.cgi?id=674741 WebNFC API], [https://bugzilla.mozilla.org/show_bug.cgi?id=677166 Network Type API], [https://bugzilla.mozilla.org/show_bug.cgi?id=697355 Network Manager API], [https://bugzilla.mozilla.org/show_bug.cgi?id=697361 Sensor API] | |||
|- | |||
| Security | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=681009 Display Sleep/Screenlock API], [https://bugzilla.mozilla.org/show_bug.cgi?id=697132 BLOCK Display Sleep/Screenlock API], [https://bugzilla.mozilla.org/show_bug.cgi?id=692677 Allow loosening same-origin checks support] | |||
|} | |} | ||
Line 51: | Line 65: | ||
=Team Details= | =Team Details= | ||
The team is starting out initially as just John Hammink (as more members will be added over time). Also Malini Das will be writing functions within Marionette project to support test automation of Web APIs and B2G. | |||
== Team Members and Assignments == | == Team Members and Assignments == | ||
Line 66: | Line 80: | ||
| MoCo Employee (full time) | | MoCo Employee (full time) | ||
| Project Lead, Automation | | Project Lead, Automation | ||
|- | |||
| Malini Das | |||
| [mailto:mdas@mozilla.com mdas@mozilla.com] | |||
| MoCo Employee (full time) | |||
| Lead Developer, Marionette Framework | |||
|- | |- | ||
| Tony Chung | | Tony Chung | ||
Line 75: | Line 94: | ||
=Current Status= | =Current Status= | ||
= | =APIs Landed in Q4 2011= | ||
<onlyinclude> | <onlyinclude> | ||
This section should contain a list to the active current team project page. The section will be included as part of the top level QA organization page. | This section should contain a list to the active current team project page. The section will be included as part of the top level QA organization page. | ||
Line 84: | Line 103: | ||
| style="background:#EFEFEF; width 10%" | '''QA Owner''' | | style="background:#EFEFEF; width 10%" | '''QA Owner''' | ||
|- valign="top" | |- valign="top" | ||
|[[<link>| | |[[<link>| Web Telephony API Test Plan]] | ||
|Description of | |Description of Web Telephony API Test Plan | ||
| John | |||
|- | |||
|[[<link>| WebSMS API Test Plan]] | |||
|Description of WebSMS API Test Plan | |||
| John | |||
|- | |||
|[[<link>| Battery API Test Plan]] | |||
|Description of Battery API Test Plan | |||
| John | |||
|- | |||
|[[<link>| Contacts API Test Plan]] | |||
|Description of Contacts API Test Plan | |||
| John | | John | ||
|- | |- | ||
|[[<link>| | |[[<link>| Visibility API Test Plan]] | ||
|Description of | |Description of Visibility API Test Plan | ||
| John | | John | ||
|- | |- | ||
|[[<link>| | |[[<link>| WebRTC API Test Plan]] | ||
|Description of | |Description of WebRTC API Test Plan | ||
| John | |||
|- | |||
|[[<link>| IndexedDB API Test Plan]] | |||
|Description of IndexedDB API Test Plan | |||
| John | |||
|- | |||
|[[<link>| Camera API Test Plan]] | |||
|Description of Camera API Test Plan | |||
| John | |||
|- | |||
|[[<link>| Vibrator API Test Plan]] | |||
|Description of Vibrator API Test Plan | |||
| John | |||
|- | |||
|[[<link>| Accelerometer API Test Plan]] | |||
|Description of Accelerometer API Test Plan | |||
| John | |||
|- | |||
|[[<link>| Geolocation API Test Plan]] | |||
|Description of Geolocation API Test Plan | |||
| John | |||
|- | |||
|[[<link>| Fullscreen from Content API Test Plan]] | |||
|Fullscreen from Content API Test Plan | |||
| John | | John | ||
|} | |} | ||
</onlyinclude> | </onlyinclude> | ||
=Overall Approach= | |||
Each API must be assured of its robustness and fitness for purpose. APIs must work at ''Integration''levels with each other and with external testapps, ''Application'' level supporting entire applications, and as part of an end-to-end ''system''. | |||
To that end, the testplan for each API could consist of the following deliverables in each case: | |||
*'''Integration Tests''' - Tests for JS interfaces at integration level. These are usually automated and might deploy a framework like Jasmine, Marionette and/or something like Robotium with custom classes, TBD. | |||
*'''Application Tests''' - These would most likely consist of | |||
** '''test pages''' - Test HTML pages implementing the WebAPI(s) in question | |||
** '''native test apps''' - in the case of Android, it should be possible to get api values directly from OS as a basis of comparison | |||
** '''manual test cases''' - stored in Case Conductor. Note that we will be running parallel manual and automated testing efforts so that test coverage is not lost while automation is being built up. Also, it is not generally possible to automate everything. | |||
...and ultimately... | |||
'''automated functional testing''' - most likely in a combination of tools like e.g. Robotium and Marionette. The plan is to try to leverage the test pages and test apps/code developed (and manually tested against) earlier. | |||
In addition to functionality, each api may have the following quality targets: | |||
*Usability | |||
*Reliability | |||
*Performance | |||
*Scalability | |||
*Security | |||
So TBD, there may be additional tests or test strategies deployed iteratively as the project evolves. | |||
It should be noted Some APIs (and areas of support) however only work in conjunction with other APIs, so these must be combined when writing test apps. | |||
=Environments= | =Environments= | ||
List what's needed for test environments here. links to test cases, test servers, unit tests, etc.. | List what's needed for test environments here. links to test cases, test servers, unit tests, etc.. | ||
The following '''matrix''' which is a WIP will be used as a template for determining device and browser version support for each api: | |||
https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdEJFZ3NoZkRoRTM3TTRpQll3UjZLYnc#gid=4 | |||
Environment matrices for each API or area will ultimately list: | |||
*all supported devices and hardware types | |||
*all supported browser versions | |||
*b2g | |||
=Resources= | =Resources= | ||
List links to any associated Resources | List links to any associated Resources | ||
* [https://wiki.mozilla.org/WebAPI Web API Wiki Page] | * [https://wiki.mozilla.org/WebAPI Web API Wiki Page] | ||
* [https://wiki.mozilla.org/Auto-tools/Projects/Marionette Marionette Test Automation Framework Wiki page] | |||
=Meetings= | =Meetings= |
Latest revision as of 01:14, 9 November 2011
Overview
The Mozilla WebAPI team is aiming at providing all the necessary APIs to build a basic HTML5 phone experience within the next 3-6 months. Most of the known APIs (derived from bugzilla) are listed here. Main Tracking Bug for following status of project is here.
Blue means the feature has already shipped in a previous version of firefox.
Green means the feature has landed recently, or is landing soon.
Red means the feature is currently a work in progress.
Mozilla will most likely not implement the FileSystem API. For local file access, we have implemented FileReader and plan to implement parts of the FileWriter specification. A file system abstraction can additionally be built on top of IndexedDB.
Team Details
The team is starting out initially as just John Hammink (as more members will be added over time). Also Malini Das will be writing functions within Marionette project to support test automation of Web APIs and B2G.
Team Members and Assignments
Name | Contact | Availability | Project Assignments |
John Hammink | jhammink@mozilla.com | MoCo Employee (full time) | Project Lead, Automation |
Malini Das | mdas@mozilla.com | MoCo Employee (full time) | Lead Developer, Marionette Framework |
Tony Chung | tchung@mozilla.com | MoCo Employee (full time) | QA Team Manager |
Current Status
APIs Landed in Q4 2011
This section should contain a list to the active current team project page. The section will be included as part of the top level QA organization page.
Project | Description | QA Owner |
[[<link>| Web Telephony API Test Plan]] | Description of Web Telephony API Test Plan | John |
[[<link>| WebSMS API Test Plan]] | Description of WebSMS API Test Plan | John |
[[<link>| Battery API Test Plan]] | Description of Battery API Test Plan | John |
[[<link>| Contacts API Test Plan]] | Description of Contacts API Test Plan | John |
[[<link>| Visibility API Test Plan]] | Description of Visibility API Test Plan | John |
[[<link>| WebRTC API Test Plan]] | Description of WebRTC API Test Plan | John |
[[<link>| IndexedDB API Test Plan]] | Description of IndexedDB API Test Plan | John |
[[<link>| Camera API Test Plan]] | Description of Camera API Test Plan | John |
[[<link>| Vibrator API Test Plan]] | Description of Vibrator API Test Plan | John |
[[<link>| Accelerometer API Test Plan]] | Description of Accelerometer API Test Plan | John |
[[<link>| Geolocation API Test Plan]] | Description of Geolocation API Test Plan | John |
[[<link>| Fullscreen from Content API Test Plan]] | Fullscreen from Content API Test Plan | John |
Overall Approach
Each API must be assured of its robustness and fitness for purpose. APIs must work at Integrationlevels with each other and with external testapps, Application level supporting entire applications, and as part of an end-to-end system.
To that end, the testplan for each API could consist of the following deliverables in each case:
- Integration Tests - Tests for JS interfaces at integration level. These are usually automated and might deploy a framework like Jasmine, Marionette and/or something like Robotium with custom classes, TBD.
- Application Tests - These would most likely consist of
- test pages - Test HTML pages implementing the WebAPI(s) in question
- native test apps - in the case of Android, it should be possible to get api values directly from OS as a basis of comparison
- manual test cases - stored in Case Conductor. Note that we will be running parallel manual and automated testing efforts so that test coverage is not lost while automation is being built up. Also, it is not generally possible to automate everything.
...and ultimately... automated functional testing - most likely in a combination of tools like e.g. Robotium and Marionette. The plan is to try to leverage the test pages and test apps/code developed (and manually tested against) earlier.
In addition to functionality, each api may have the following quality targets:
- Usability
- Reliability
- Performance
- Scalability
- Security
So TBD, there may be additional tests or test strategies deployed iteratively as the project evolves.
It should be noted Some APIs (and areas of support) however only work in conjunction with other APIs, so these must be combined when writing test apps.
Environments
List what's needed for test environments here. links to test cases, test servers, unit tests, etc..
The following matrix which is a WIP will be used as a template for determining device and browser version support for each api:
https://docs.google.com/spreadsheet/ccc?key=0AhE7m4JB2j6tdEJFZ3NoZkRoRTM3TTRpQll3UjZLYnc#gid=4
Environment matrices for each API or area will ultimately list:
- all supported devices and hardware types
- all supported browser versions
- b2g
Resources
List links to any associated Resources
Meetings
List team meetings, schedule, and dial in time here.
Community Contribution
- list any tips and tricks on how community can be involved