I once calculated how long it would take to manually QA one feature in Ambiki. The answer was 114 million years.
Last year we moved our plan of care onto Ambiki's custom form system. Before we released it, I sat down and tried to crudely and roughly calculate how many different scenarios a QA person could theoretically need to test.
The table below was my attempt to be extremely conservative. I took eight dimensions that could affect the behavior of a plan of care and gave each an absurdly conservative number of test variants.
Setting up just one of those scenarios manually can easily take 30 minutes. You need the right patient. The right insurance. The organization configured a certain way. A therapist with the right disciplines, credentials, and permissions. A previous plan of care in the right state. Goals with the right statuses.
Then you can finally click the button you're trying to test. 30 minutes x 2 trillion scenarios = 60 trillion minutes. That's about 114 million years of manual QA. Even if a human could test one combination every second, it would take about 63,000 years.
The funny part is that I forgot permissions the first time I made this table. Which is also kind of the point. The variables you forget are usually the ones that bite you.
So how do you QA software when manual testing mathematically cannot cover it?
A few things we do (but I would love to hear what others do on complex systems):