W3C

Google Summer of Code 2015


Status: Application has been rejected.

Introduction

The World Wide Web Consortium (W3C) is an international community that develops open standards to ensure the long-term growth of the Web. Read about the W3C mission.

Guidelines for students

The ideas collected so far are only a starting point. Suggestions are more than welcome. If you want to get involved, you can contact the team on IRC (irc://irc.w3.org/#w3c) or by email at public-qa-dev@w3.org. Prefer IRC for live interaction.

If you want to make suggestions, be ready to provide the following informations:

Feel free to add any relevant information and please follow the guidelines carefully.

You can find interesting projects to contribute to on our github page.

Ideas

Test the Web Forward: Test Results Progress Dashboard

Goal

A website that can be used to compare the results of running web-platform-tests across multiple different browsers.

Brief explanation

The Web Platform Tests project is a cross-browser testsuite for the web platform. It is designed to improve interoperability between different web browsers by allowing them to check their implementations of various specs against a testsuite.

In order to run web-platform-tests in browsers a couple of tools have been developed. The first is a semi-automatic in-browser runner that produces JSON output by default. The second is wptrunner, a fully automated runner that produces mozlog format messages as output by default. The latter is being used to run the test in several browser CI systems (notably those for Gecko and Servo).

At the moment there isn't a good system for visualizing the results of a specific test run (e.g. to tell where a browser is not matching the spec) or for comparing between different browsers (in order to tell where tests are broken across many browsers possibly indicating a test bug or a spec bug). The Test Results Progress Dashboard project is to develop a Web dashboard that can ingest the output data from wptrunner and allows comparisons between multiple result sets (e.g. between Web browsers).

Expected results

Knowledge Prerequisite

Mentor

Philippe Le Hegaret and James Graham

We use IRC #testing and public-test-infra mailing list for communication.

Test the Web Forward: Automated JavaScript API Test Suites

Goal

Automate the generation of JavaScript APIs test suites from W3C specs.

Brief explanation

In W3C specs, JavaScript APIs are described using an interface definition language called WebIDL. WebIDL snippets found in specs are already used to manually generate test suites thanks to a WebIDL parser and a dedicated test harness. However, these test suites are generated by hand, and need to be manually updated every time the spec changes. This is of course error prone. It's not uncommon to see specifications and test suites drifting apart. Oftentimes, test suites aren't generated for certain specs because editors just lack the knowhow to build them.

Through automation, these test suites can be programmatically generated and kept up to date provided minimal initial input. This project consists in setting up this system on top of existing infrastructure build in node.js and improving the current test harness.

Expected results

Knowledge Prerequisite

Mentor

Philippe Le Hegaret and Tobie Langel

We use IRC #testing, public-test-infra mailing list and GitHub Issues for communication.


Test the Web Forward: Automating Manual Tests with WebDriver

Goal

Implement a WebDriver-based mechanism that enables automation of browser tests that otherwise must be run manually.

Brief explanation

Specifications for the Web platform sometimes define particular requirements that necessitate manual user interaction of a type that can't be tested in an automated fashion using only APIs that are exposed to Web content. The Web Platform Tests suite contains a large number of existing tests which currently require such manual user interaction to be run. However, the set of specifications for the Web platform also includes a specification called WebDriver which defines an API and associated wire protocol that allows a Web browser to be programatically controlled from a separate process in such a way as to make it possible to automate particular actions that otherwise need to be performed manually by a real person.

Thus, the WebDriver API can be used to develop a mechanism that:

Expected results

Knowledge Prerequisite

Mentor

Andreas Tolfsen, James Graham, and Michael[tm] Smith

We use IRC #testing, public-test-infra mailing list and GitHub Issues for communication.


CSS Validator calc() support

Goal

Implement the cacl() expression in the CSS Validator

Brief explanation

The current version of the CSS Validator does not yet validate calc() function. Doing so would be helpful as the use of calc() in real-life CSS style sheets is becoming more common. The work requires finishing the type checking capabilities of the CSS Validator, as there are checks for type compatibility in an expression, and implement the validation algorithm in the parsing code (The parsing stub is already written, using JavaCC). Once it is implemented, the calc() value should be allowed in many CSS properties, for CSS Level 3 and above.

Expected Results

Be able to correctly parse assertions, and report meaningful errors (There will be positive and negative testing).

Knowledge Prerequisite

Mentor

Yves Lafon. We will use IRC and www-validator-css@w3.org mailing list for communication.

Alignment of Cordova APIs with W3C APIs

Goal

Aligning APIs used in the official Cordova plugins with their equivalent APIs standardized in W3C.

Brief explanation

Cordova is an hybrid application development framework: it allows developers to write a single code base in HTML and JavaScript and compile it into native applications on a variety of native platforms (iOS, Android, Windows, etc).

One of the stated goals of the Cordova project is to serve as a stop-gap solution to the development of pure Web applications targeting mobile browsers.

To ensure a smooth transition between hybrid and pure-Web development approaches, it is important to keep the APIs for advanced capabilities provided by Cordova aligned with the equivalent APIs standardized in W3C.

To that end, a collaboration effort between the Cordova project and W3C has started, with a known list of opportunities for alignment.

The goal of this project would be to provide patches to the main Cordova plugins to get them aligned with W3C APIs.

Expected Results

Knowledge Prerequisite

Mentor

Dominique Hazaël-Massieux <dom@w3.org>. We will use IRC, github and other online communication systems for communication.

Mobile Checker

Goal

Improve mobile check tests, in particular for accessibility and fonts, and provide a better management for the simulation of devices.

Brief explanation

The Mobile Checker is a tool for Web developers who want to make their Web page or Web app work better on mobile devices.

This tool is a full JavaScript Web application built with NodeJS and Selenium WebDriverJS. Based on the mobile web emulator API, the Mobile Checker combines powerful technologies to simulate a Web browser on a mobile device. That's why, contrary to most of the current online mobile emulators, the Mobile Checker can provide an emulation close to what your Web app looks like on different kinds of mobile devices, including tablets and smartphones.

Expected Results

Knowledge Prerequisite

Mentor

Dominique Hazaël-Massieux <dom@w3.org> and Guillaume Baudusseau <guillaume@w3.org>. We will use IRC, github and other online communication systems for communication.


Philippe Le Hegaret
$Date: 2015/03/02 19:37:10 $