Your continuous integration process produces torrents of data. Joseph Gregorio explains how to mine that data to drive improvements in your development process.
Joseph offers an overview of Skia—an open source 2D graphics library that provides common APIs that work across a variety of hardware and software platforms—and demonstrates how it uses softmax regression and k-means clustering to improve its software development cycle. Skia serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.
Testing Skia requires running a large number of correctness and performance tests over a large number of devices and operating systems, including Android, iOS, Windows, Linux, and macOS. The combinatorics involved mean that a huge amount of test data is produced (e.g., 30 million rendered images and 7.5 million performance metrics). Joseph outlines the ways Skia has mined that data using Go and TensorFlow to guard against regressions and discusses how other testing data is used to predict which tests should be run first to speed up development feedback.
Joseph Gregorio is a software engineer working on the Skia graphics library at Google. Joe is the editor of the Atom Publishing Protocol and the coauthor of the URI Templates spec. He has a deep interest in web technologies. He wrote The RESTFul Web column for the online O’Reilly publication XML.com, wrote the first desktop aggregator written in C#, and has published various Python modules to help in putting together RESTful web services such as mimeparse, httplib2, and the google-api-python-client. Joe is interested in Go, Polymer, Web Components, REST, web services, APIs, URI templates, the Atom Publishing Protocol, big data, and any linear combination of such.
©2018, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • email@example.com