Lightweight property-based testing at Row Zero
Row Zero is the world's fastest spreadsheet. It's just like Microsoft Excel or Google Sheets, but 1000x faster. Spreadsheets are a really interesting software domain, because they have a ton of overlapping features. What happens if you enter two numbers into two cells, format the numbers as text, merge them into a single cell, copy paste that merged cell somewhere else, then filter that range by dates in a certain year? The number of feature interactions grows with the square of the number of features. It's not tractable to test them all manually. How can we ensure software quality, then? We lean heavily on lightweight property-based testing. The general form of a property-based test is: There are a few frameworks for doing this. Most can trace their lineage back to Haskell's QuickCheck library. The main thing the frameworks provide is: Additionally, there are frameworks such as AWS's Shuttle library that allow for deterministic replay of concurrent execution order to enable testing fo
Lightweight property-based testing at Row Zero Row Zero is the world's fastest spreadsheet. It's just like Microsoft Excel or Google Sheets, but 1000x faster. Spreadsheets are a really interesting software domain, because they have a ton of overlapping features. What happens if you enter two numbers into two cells, format the numbers as text, merge them into a single cell, copy paste that merged cell somewhere else, then filter that range by dates in a certain year? The number of feature interactions grows with the square of the number of features. It's not tractable to test them all manually.
saved by
related reading
- How to write complex softwaregrantslatton.com
- The sad state of property-based testing librariesstevana.github.io
- Introduction to Property Based Testing | by Nicolas Dubien | Criteo Tech Blog | Mediummedium.com
- abseil / Performance Hintsabseil.io
- What if writing tests was a joyful experience?blog.janestreet.com
- A shallow dive into formal verificationvitalik.eth.limo
- On the Unreasonable Effectiveness of Property-Based Testing for Validating Formal Specifications | Proofs and Intuitionsproofsandintuitions.net
- Software Engineering at Googleabseil.io
- There's no reason for software to be slow anymoredanluu.com
- lf-lean: The frontier of verified software engineering | Theoremtheorem.dev
- The Joel Test: 12 Steps to Better Code – Joel on Softwarejoelonsoftware.com
- Speed mattersscattered-thoughts.net