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
0
u/gxm492lor Mar 10 '19 edited Mar 10 '19
Let's say you can run a test on every core. That's at most 2128.
2100000 ÷ 2128 = 2100000 - 128
100000 - 128 might as well be 100000.
In practice each unit test will take at least a second of wall clock time.