QA/Browser Technologies/WebAPI: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 110: Line 110:
  |}
  |}
</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 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=

Revision as of 00:48, 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.

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.

Application Areas Required APIs
Dialer Web Telephony API, Web SMS API, Contacts API, Visibility API
Battery Battery API
Address Book Contacts API
Messaging and Video Chat Web Telephony API, Web SMS API, Contacts API, WebRTC
Storage File System API, IndexedDB API
Camera Camera API, Camera Support for Desktop, Filesystem API
Settings and Status Device Status API, Settings API
Games Mouse Lock API, Vibrator API
Sensors Accelerometer API, Block Orientation Change, Proximity Sensor, Compass, Light Sensor, Speech-to-Text, Joystick API, Joystick Rumble Support
Maps Geolocation API, Contacts API
Apps OWA API, DOM Crypt API, App-State API, App-Pin API, tab/app-modal popup API, Cross-Origin URI Load API, Full Window API, navigator.mozApps
Graphics OpenCL, Animated Sprite API, Opacity Threshold API, CSS Tracer API, Native Resolution API, Fullscreen from Content API
Printing WebPrint API
Audio Sound Playback API (multishot)
Hardware Interfaces WebUSB API, WebBluetooth API, DOM3 Keyboard Event types API, WebNFC API, Network Type API, Network Manager API, Sensor API
Security Display Sleep/Screenlock API, BLOCK Display Sleep/Screenlock API, Allow loosening same-origin checks support

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
Tony Chung tchung@mozilla.com MoCo Employee (full time) QA Team Manager

Current Status

Projects

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>| XX API Test Plan]] Description of XX API Test Plan John
[[<link>| XX API Test Plan]] Description of XX API Test Plan John
[[<link>| XX API Test Plan]] Description of XX 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 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