A CutEr Tool
summary
CutEr is a fully automatic concolic unit testing tool for Erlang that aims for high path coverage by doing concrete plus symbolic execution, collecting path constraints, negating them and solving them with SMT solvers (e.g. Z3) in parallel. It finds real, specific failing inputs (famous 42 cases and surprising tuples like 47 11) that QuickCheck/PropEr miss, runs on BEAM/OTP 17+, is on GitHub, and has limits (no maps, incomplete BIF typing, no concurrency support).
AI-written summary · about
chapters (31)
- 0:00Introduction
- 0:35Outline
- 1:11Testing
- 3:52Demo
- 5:26Test
- 7:18correctness
- 7:50assertions
- 8:46concolic testing
- 9:55listing the cuter tool
- 10:51integers
- 11:47classifyl
- 13:15classify
- 14:17runtime errors
- 15:53substitute
- 17:05FL
- 18:32Runtime Error
- 24:44Under the hood
- 26:21Control flow graphs
- 28:59Exploring the path
- 29:59Exploring all the paths
- 30:54Search strategies
- 31:57Test module
- 32:50Calendar module
- 33:46Empty binary
- 34:26Nonempty binary
- 37:52Testing function
- 39:08OTP internal bug
- 41:07What is Dots
- 43:04Limitations
- 46:09Challenges
- 49:55SMT solvers
related talks
47mTesting the Hard Stuff and Staying Sane
33mLets Generate Tests
28mEtna: An Evaluation Platform for Property-Based Testing
25mPowerful Testing with test.check
26mIs this really a refactoring? Automated equivalence checking for Erlang projects
51mFinding Concurrency Errors using Concuerror
42mSurprise yourself with Property Based Testing
23mProperty based testing is a mindset
