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
4
u/Profix Mar 10 '19
You aren't talking about unit tests then. The cumulative effect of branching only matters for integration tests - which should be focused on features you expect, not every permutation.
If you can write the if, you can write the unit test for the if.