Property-based testing (PBT) is a testing methodology where users write executable formal specifications of software components and an automated harness checks these specifications against many automatically generated inputs. From its roots in the QuickCheck library in Haskell, PBT has made significant inroads in mainstream languages and industrial practice at companies such as Amazon, Volvo, and Stripe. As PBT extends its reach, it is important to understand how developers are using it in practice, where they see its strengths and weaknesses, and what innovations are needed to make it more effective.
We address these questions using data from 30 in-depth interviews with experienced users of PBT at Jane Street, a financial technology company making heavy and sophisticated use of PBT. These interviews provide empirical evidence that PBT’s main strengths lie in testing complex code and in increasing confidence beyond what is available through conventional testing methodologies, and, moreover, that most uses fall into a relatively small number of high-leverage idioms. Its main weaknesses, on the other hand, lie in the relative complexity of writing properties and random data generators and in the difficulty of evaluating their effectiveness. From these observations, we identify a number of potentially high-impact areas for future exploration, including performance improvements, differential testing, additional high-leverage testing scenarios, better techniques for generating random input data, test-case reduction, and methods for evaluating the effectiveness of tests.
Fri 19 AprDisplayed time zone: Lisbon change
16:00 - 17:30 | Human and Social 8Software Engineering in Society / Journal-first Papers / Research Track / Software Engineering Education and Training at Luis de Freitas Branco Chair(s): Alexander Serebrenik Eindhoven University of Technology | ||
16:00 15mTalk | Property-Based Testing in Practice Research Track Harrison Goldstein University of Pennsylvania, Joseph W. Cutler University of Pennsylvania, Daniel Dickstein Jane Street, Benjamin C. Pierce University of Pennsylvania, Andrew Head University of Pennsylvania | ||
16:15 15mTalk | Navigating the Path of Women in Software Engineering: From Academia to Industry Software Engineering in Society Tatalina Oliveira CESAR School, Ann Barcomb Department of Electrical and Software Engineering, Schulich School of Engineering, University of Calgary, Ronnie de Souza Santos University of Calgary, Helda Barros CESAR School, Maria Teresa Baldassarre Department of Computer Science, University of Bari , Cesar França CESAR School Pre-print | ||
16:30 15mTalk | Early Career Software Developers - Are You Sinking or Swimming? Software Engineering in Society Pre-print Media Attached | ||
16:45 15mTalk | An experience report on the use of Active Learning in Empirical Software Engineering Education: Understanding the pros and cons from the student's perspective Software Engineering Education and Training Maria Alcimar Costa Meireles UFAM - Federal University of Amazonas, Sabrina Rocha UFAM - Federal University of Amazonas, José Carlos Maldonado Loggi Tecnologia and University of São Paulo - USP and, Tayana Conte Universidade Federal do Amazonas | ||
17:00 15mTalk | Teaching Software Ethics to Future Software Engineers Software Engineering Education and Training Aastha Pant Monash University, Simone Spiegler Monash University, Rashina Hoda Monash University, Jeremy Yoon Monash University, Nabeeb Yusuf Monash University, Tian Er Monash University, Shenyi Hu Monash University | ||
17:15 7mTalk | Mind the Gap: Gender, Micro-inequities and Barriers in Software Development Journal-first Papers Emitzá Guzmán Vrije Universiteit Amsterdam, Ricarda Anna-Lena Fischer Vrije Universiteit Amsterdam, Janey Kok Vrije Universiteit Amsterdam |