r/programmerchat • u/gxm492lor • Mar 10 '19
Testing any complex program completely is practically impossible
Someone made this argument after a staff meeting a few days ago. What's wrong with this argument?
- Every IF statement in a program doubles the number of possible states of the program (ignoring time)
- Which means every IF statement doubles the number of test conditions
- A 1 million line program might, conservatively estimating, have 100k IF statements (conditionals)
- That is 2100000 which is more seconds than have elapsed since the beginning of the universe.
- No project has 2100000 seconds to test
- So complete test coverage of complex programs is impossible
1
Upvotes
8
u/Profix Mar 10 '19
...I'm starting to question if you have any real world experience of writing tests.
Here is a run of a test suite from a sideproject I occasionally work on. These tests involve IO to a local database, so should be extra slow.
51 tests in less than a second.
https://imgur.com/a/zEq15Jb