Firefox quality. Mozilla Paris FOSDEM Feb 3rd 2018

Similar documents
Mozilla & Firefox Quantum. Mozilla 12 Mars 2018

Mozilla & Firefox. Sylvestre Ledru

FOSDEM Sylvestre Ledru / February 2nd, Professional Services & Support for Scilab, Free Open Source Software for Numerical Computation

A Browser Developer's Research Wish List. Robert O'Callahan Mozilla Corporation

Perceptive Process Design & Enterprise 3.1. Supported Platforms

Firefox Quantum. Performance in Firefox. Jean-Yves Perrier Jean-Yves Perrier. Public

The Joy of Software Development

Scaling with Continuous Deployment

Introduction to AngularJS

The tools used in the development of Life Is Strange

Static Analysis of a Linux Distribution

Perceptive Process Design & Enterprise Supported Platforms

Frédéric Crozat SUSE Linux Enterprise Release Manager

Does mozilla firefox support windows 10

SSL247 SHA-2 MIGRATION

6 semanas de embarazo. Firefox 3.5 download 64 bit. Inicio / Embarazo / 6 semanas de embarazo

Full Stack on Wine. Create a Win-Win between Wine and thousands of Win32 open source projects. Qian Hong

The Partner External Module Program

Modern Web Application Development. Sam Hogarth

CSCI 1320 Creating Modern Web Applications

Java Plugin Update Windows 7 64 Bit Latest Version Cnet

B r o w s e r s u p p o r t

Fuzzing AOSP. AOSP for the Masses. Attack Android Right Out of the Box Dan Austin, Google. Dan Austin Google Android SDL Research Team

Unikernels? Thomas [Twitter]

Intro, Version Control, HTML5. CS147L Lecture 1 Mike Krieger

SSL247 SHA-2 MIGRATION

Mobile release Vilnius, 10/2018

09/05: Project Plan. The Capstone Experience. Dr. Wayne Dyksen Department of Computer Science and Engineering Michigan State University Fall 2018

LIBRARY AND INFORMATION RESOURCES NETWORK GATEWAY 3.5. Release Notes

Web Browser as an Application Platform Antero Taivalsaari

AUTOMATED TEST SYSTEM DEVELOPMENT FROM SCRATCH: THE MAIN PROBLEMS AND THEIR SOLUTIONS. Lilia Sapurina

Present and Future of the RhoMobile platform. Migrating legacy applications, Node.js on mobile devices right now and more

Attack Surface Intelligence of Source Code

Meeting Objectives. Current state of the Web Runtime across platforms

State of jquery Fall John Resig

Manual Internet Explorer 9 Full Version For Xp 32 Bit

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

More on Testing and Large Scale Web Apps

Nokia for developers. Alexey Kokin. Developer Relations

Building a Browser for Automotive: Alternatives, Challenges and Recommendations

Lesson 5: Multimedia on the Web

WPE WebKit. HTML5 user interfaces for embedded devices. Juan José Sánchez Penas Embedded Linux Conference Prague, October 2017

the web as it should be Martin Beeby

Organising benchmarking LLVM-based compiler: Arm experience

Firefox Crash Reporting.

HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN

Virtualization Device Emulator Testing Technology. Speaker: Qinghao Tang Title 360 Marvel Team Leader

The Road to the Native Mobile Web. Kenneth Rohde Christiansen

Firefox android sync Android Firefox Firefox Sync Firefox Firefox Firefox Firefox Firefox Firefox Firefox Firefox Firefox sync

DOWNLOAD OR READ : WEBGL PROGRAMMING GUIDE INTERACTIVE 3D GRAPHICS PROGRAMMING WITH WEBGL PDF EBOOK EPUB MOBI

Static Code Analysis in ATLAS. Andrew Washbrook University of Edinburgh Common discussion about software quality analysis 23rd November 2016

Q1 Where do you use C++? (select all that apply)

In the Driver s Seat

Product Data Sheet: Ignition 8 Industrial Application Platform. A Whole New View

KLEE Workshop Feeding the Fuzzers. with KLEE. Marek Zmysłowski MOBILE SECURITY TEAM R&D INSTITUTE POLAND

Programming The Mobile Web Ebooks Free

Firefox for Android. Reviewer s Guide. Contact us:

Keeping up with LTS Linux Kernel Functional Testing on Devices

E-Guide WHAT WINDOWS 10 ADOPTION MEANS FOR IT

The Life of an Open-Source Project

FAQ FOR VMWARE SERVER 2 - AUGUST, 2008

EMPLOYEE LOCATION TRACKING SERVICE

1) What is the difference between Mobile device testing and mobile application testing?

Jason Rundell. Full stack development: Genesis Land. Full Stack Developer: Portfolio

Quality Assurance: Test Development & Execution. Ian S. King Test Development Lead Windows CE Base OS Team Microsoft Corporation

TOP DEVELOPERS MINDSET. All About the 5 Things You Don t Know.

State of Apache Wicket

Identifying Memory Corruption Bugs with Compiler Instrumentations. 이병영 ( 조지아공과대학교

Challenges in Testing

CS 360. Tools and Process. Communication. Development. CS360 Pacific University 1 08/31/16

<Insert Picture Here> JavaFX 2.0

Firefox download. Get your free Mozilla Firefox Download now at Mozilla- Firefox.com.au and Enhance Your Browsing Experience!

How to implement SDL and don t turn gray. Andrey Kovalev, Security Engineer

Fuzzing. compass-security.com 1

Linux Kernel on RISC-V: Where do we stand?

kpatch Have your security and eat it too!

Intel GFX CI and IGT. What services do we provide, our roadmaps, and lessons learnt! Martin Peres & Arek Hiler Feb 3 rd 2018

Challenges, Benefits and Best Practices of Performance Focused DevOps. 1 #Dynatrace

Red Hat Enterprise Virtualization 3.6 Introduction to the User Portal

Red Hat Enterprise Virtualization 3.6

Sencha Paris Meetup Switching from Titanium to Sencha Touch: a real life example

Automated Testing of Tableau Dashboards

THE GREAT CONSOLIDATION: ENTERTAINMENT WEEKLY MIGRATION CASE STUDY JON PECK, MATT GRILL, PRESTON SO

Meltdown and Spectre Mitigation. By Sathish Damodaran

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

TDF Infra Overview. from developers' perspective

Lesson 5: Multimedia on the Web

RustPython. FOSDEM 2019 Brought to you by: Shing and Windel :P

Fusion and MLXchange Release Notes Version 5.12 For Upgrade for Ottawa Real Estate Board Account on August 12, 2014

Cross-project defect prediction. Thomas Zimmermann Microsoft Research

LGTM Enterprise System Requirements. Release , August 2018

Sony s Open Devices Project. Goals Achievements. What went right? What went wrong? Lessons learned

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

A JavaScript Framework for Presentations and Animations on Computer Science

Manually Windows Update Vista Not Work In

The Fuzzing Project

mgwt Cross platform development with Java

Nodes Tech Slides - Progressive Web Apps, 2018

Red Hat Enterprise Virtualization 3.6

Cords and gumballs. Mike Hearn.

Transcription:

Firefox quality Mozilla Paris FOSDEM Feb 3rd 2018

Bonjour! Je suis Sylvestre Ledru Je parle de Firefox Quality Twitter @SylvestreLedru 2

Bonjour! 3

Bonjour! 4

Bonjour! 5

The Firefox scale

About:Firefox We release every 6 to 8 weeks 7 major releases published (one ESR) in 2017 Including Firefox Quantum 57 + 26 minor releases 7

About:Firefox:code One of the biggest and complex software A bit of legacy & technological debt (Netscape was opensourced 20 years ago)... has had 399 221 commits made by 5 356 contributors representing 17 920 130 lines of code 60 104 commits last year 1267 different contributors over last year 8

About:Firefox:code:languages 9

About:Firefox:Code Patches landed per nightly cycle 10

About:Firefox:Continuous Integration We run a few tests with a few different platforms and options 1 506 hours for the average full CI run Numbers from November 2017: 8 319 189 tasks 299.8 machine years 927 333 unique machines 11

How to ship quality?

Quality? Three types of QA: Catch issues during development phase Automated tests & testsuites when the code land Pre release channel (nightly, beta, etc) 13

Pre release testing

Pre release testing The Web is a crazy platform All possible combinations of HTML CSS Javascript (+ asm.js & WebAssembly) Media format (Images, Audio, Video, etc) Network OS... 15

Pre release testing Release management - train model 16

Pre release testing We rely a lot on users on prerelease channel Experiments (A/B testing) on pre-release channels Nightly - two nightlies per day Hundred thousand of users Beta - 2 per week Desktop 1 for Mobile Millions of users 17

Manual testing Teams which test manually the new features Three colors Green - Let s ship it Orange - We have to fix a few bugs Red - Won t be able to ship in this cycle 18

About:Firefox:Nightly Presented last year by Pascal Chevrel on this stage Reboot of the nightly community Paved the way for 57 Doubled the nightly population 1184 bugs reported by the nightly community @FirefoxNightly jumped from 9500 to 16600 followers 19

About:Firefox:Sumo Gather feedback from users Identify some hard issues like my Firefox only shows blank pages Share it to release management and other teams 20

Pre release testing - web compat Platform to report Web compatibility issues Different of behavior between browsers leading to rendering issues or JS errors 21

Code quality?

Static analysis / linting C & C++ are hard languages like really really hard! How to detect programming mistakes Related to the language designs Usage of our APIs Limit the code legacy Example: 23

Static analysis / linting Clang analyzer: 23 checkers Dead code, insecure functions, etc Mozilla s: 26 checkers Security issues, bad usages of API, best practices clang-tidy : 28 checkers Best practices, coding style, performances, C++ 11, 14 or 17 upgrade 24

Static analysis / linting Once the code land, Coverity can catch others 25

SA tools that we use We use other tools for other languages Javascript - Eslint Python - flake8 Java (android) - findbug Bash - shellcheck Typos - codespell For every commit average of 12 minutes analysis We contribute upstream and sponsor some projects (ex: LLVM)... 26

Crash analysis When a crash occurs Handled by breakpad Sent to https://crash-stats.mozilla.com/ Doing some voodoo magic on them 27

Crash analysis Data mining on the results 28

Crash analysis - clouseau Socorro Crash stats Look at new crash signatures Extract the backtrace New crash Look at the recent VCS history Backtrace If a change touched one level of the backtrace, Mercurial it might be the source of the crash log 212 bugs reported New bug with a ni to the dev New bug 29

Code coverage Understanding of the quality of the testsuites (afaik) First time done on this scale We had to: Add JS code coverage support in the Firefox JS engine Add code coverage support in the Rust compiler Patch: gcc, llvm, clang & compiler-rt Develop an alternative to lcov called grcov dropping the processing time from more than 24 hours to less than 5 minutes 30

Code coverage - the results Current code coverage results (Windows & Linux) C++ 2 913 824 lines 1 620 227 covered lines (55,6%) JS 586 383 lines 426 906 covered lines (72,8%) 31

Code coverage - Side effect What does it mean when a file has 0 coverage? A bug, for sure! Dead code No test 61 removed files 13272 removed lines. 32

Fuzzing Send invalid, unexpected, or random data as inputs We are testing: JavaScript features, DOM, Layout, CSS, Stylo, Media file formats (images, audio, video) Last 2 y, over 600 security bugs 33

Other best practices Once or twice a day, compiler Firefox trunk with -Werror on: Build with gcc snapshot packages from Debian experimental (currently version 8) Clang trunk (currently version 7) Find new issues in our code Find bugs in the compiler 34

Automation

Crazy CI 36

CI Launched (almost) on every commit Can be used by individual developers Platforms With testsuite selection 37

WPT - Web Platform Tests A W3C-coordinated attempt to build a cross-browser testsuite for the Web-platform stack Takes ~184 minutes on a Linux PGO build 38

Despite all that

Predicting release quality is tough. We still have issues after we published to users Huge trunk caused by Malware, Antivirus or security software Some web compat issues (example: Outlook web in 58) 40

Thanks to all the persons who helped me gathering these stats (coop, marco, pascal, calixte, etc) Shameless advertising: we are looking for interns to work on static analysis & code coverage