© 2020 Strange Loop
Browser rendering is an area that can greatly benefit from property-based testing. However, generating interesting inputs (web pages containing HTML and CSS) and creating a test Oracle that can detect an incorrectly rendered web page based on randomly generated inputs is a significant challenge. In this talk I will describe a property-based testing (PBT) approach that uses controllable grammar-based generators for creating the input pages and that uses a lack of consensus among multiple rendering engines to identify failing test cases. The use of property-based testing means that the failing test cases are shrunk to the bare minimum that triggers the rendering difference which helps with root-cause analysis. I will focus on browser render testing in this talk but the same technique can be used to test other software systems where there is at least one preexisting implementation of the system under test.
Joel Martin is a Principal Software Engineer at ViaSat (formerly LonoCloud) and a PhD student at the University of Texas at Arlington. He enjoys taking new and old ideas and combining them in interesting ways. Some of his other projects include noVNC (HTML5 VNC client used in OpenStack), Raft.js (JS implementation of the Raft distributed consensus protocol), wac/wace (WebAssembly interpreters written in C), and mal (a pedagogical Lisp interpreter with implementations in 72 different languages).