QA/Platform/Graphics: Difference between revisions

From MozillaWiki
< QA‎ | Platform
Jump to navigation Jump to search
Line 1: Line 1:
= Summary =
= <small>Summary</small> =
This page holds important information related to testing and quality assurance for Gecko's graphics code.  
This page holds important information related to testing and quality assurance for Gecko's graphics code.  
* [[Platform/GFX|About the team]]
* [[Platform/GFX|About the team]]
Line 14: Line 14:
* Telemetry: [http://people.mozilla.org/~danderson/moz-gfx-telemetry/www/ GFX], [https://telemetry.mozilla.org/ All]
* Telemetry: [http://people.mozilla.org/~danderson/moz-gfx-telemetry/www/ GFX], [https://telemetry.mozilla.org/ All]
* Bugzilla: [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html#sampleInterval=week&sampleMax=2015-11-07&sampleMin=2012-10-28&productFilter=core&componentFilter=canvas%3A+2d,canvas%3A+webgl,gfx%3A+color+management,graphics,graphics%3A+layers,graphics%3A+text,image+blocking,imagelib,panning+and+zooming Bug Age]
* Bugzilla: [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html#sampleInterval=week&sampleMax=2015-11-07&sampleMin=2012-10-28&productFilter=core&componentFilter=canvas%3A+2d,canvas%3A+webgl,gfx%3A+color+management,graphics,graphics%3A+layers,graphics%3A+text,image+blocking,imagelib,panning+and+zooming Bug Age]
= <small>Major Code Changes</small> =
The following tracks major code changes that need testing.
== <small>Gecko 48</small> ==
* {{ok|}} [[QA/Platform/Graphics/Changes#Skia_Content_on_Mac_OS_X|Switch graphics back-end to Skia on Mac OS X]]
* {{ok|}} [[QA/Platform/Graphics/Changes#Asynchronous_Scrollbar_Dragging|Asynchronous Scrollbar Dragging]]


= Get Involved =
= Get Involved =

Revision as of 16:48, 13 April 2016

Summary

This page holds important information related to testing and quality assurance for Gecko's graphics code.

Metrics:

Major Code Changes

The following tracks major code changes that need testing.

Gecko 48

Get Involved

Here are some ways you can help the Graphics team (and Mozilla):

Activities

Current Activities

  • Betabreakers runs sanity tests of major changes at least once during each new Aurora version
  • One & Done is used to enable volunteers to participate in sanity testing
  • Triage is done daily from 10am to 11am Pacific to ensure effective resolution of critical issues, each day focusing on a different category of issues.

Past Activities

Top Issues

Blockers

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


Crashes

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


Features

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


New Issues

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


Understanding the Problem Space

First order of business for my transition to the Graphics team is to understand the problem space so I can understand the immediate needs of the team and make the best impact I can in the shortest amount of time.

What are the key problems/challenges facing the Graphics team in terms of quality?
  • discrepancy in environments between testers and release users
  • discoverability of bugs pre-release
  • ?...
Where can QA add value/support to the Graphics team?
  • improving pre-release discoverability of bugs
  • closing the gap between tester and release systems
  • helping with bug triage, particularly with bugs hiding in general components
  • representation in crashkill
  • improving code coverage and/or identifying gaps in code coverage
  • identifying ways to improve participation in the graphics team (events, projects, One & Done, etc)
  • documentation of tools, testing processes, etc
  • building out the lab in Toronto
  • continuing to drive Betabreakers testing every 6 weeks
  • verifying bug fixes (what does this look like)?
  • profiling areas of risk (eg. troublesome configs)
  • conducting root cause analysis for regressions
  • understanding problems outside of our control (eg. driver resets)
  • feature testing and upcoming priorities (e10s, Windows 10, El Capitain, Android, B2G, etc)
What does QA need to know to be effective?
  • key components of an actionable Graphics bug
  • fundamentals/technologies that should be learned
  • how to distinguish a graphics crash from a non-graphics crash with a graphics signature
  • meetings, mailing lists, bugzilla components to watch, blogs, IRC channels to join, etc
  • who is each member of the team (incl. contributors) and what do they do
  • where does graphics code reside in the tree?
  • what role does Unified Telemetry in graphics quality?
  • what are the prefs to enable/disable different functionalities?
  • we need a database of known-troublesome hardware/driver configurations to inform testing, hardware acquisitions, and blocklisting
Understanding the Stability
  • How do we identify a graphics crash?
    • by signature: gfx, layers, D2D, D3D, ?...
    • by topmost filename: gfx, ?...
    • by driver (DLL, version, ?...)
    • by device/vendor ID?...
    • ?...
  • How do we prioritize graphics crashes?
    • Overall topcrashes in release > beta > aurora > nightly
    • Gfx crashes in release > beta > aurora > nightly
    • Explosive crashes in release > beta > aurora > nightly
  • What tools do we have at our disposal to investigate crashes?
    • Bughunter for investigating crashes correlated to a URL
    • KaiRo's reports for identifying crashes that are new or escalating quickly
    • Socorro for getting detailed information about crash reports
  • What information is needed to make a crash actionable by developers?
    • Correlations to particular hardware, driver, add-on, 3rd-party software, or library
    • ?...
Participation
  • Sanity checking via One & Done
  • Meetups to connect testers/users with devs
  • Testdays to teach people about graphics testing
  • Documentation and translation of documentation
  • Engaging on community spaces (Discourse, Reddit, Facebook, Twitter, etc)
Telemetry
  • COMPOSITE_TIME: time in CompositorParent::CompositeToTarget dispatching draw calls and calling SwapBuffers, but not texture upload (ie. complete composition)