Hey all, haven’t been posting on the blog much lately, been a little preoccupied:
YAY NEW BABY. My wife and I welcomed our second son Noah on 10/24/2013, which is awesome. And we’re home from the hospital, which is also awesome!
It’s always interesting to see how other disciplines outside the software industry handle “the testing problem,” if you want to call it that: how do we feel confident that this <widget> will succeed in the field? What kinds of checks do we want to run every single time?
What acceptance tests do hospitals run on babies?
The APGAR test
This is the first test that occurs after the baby leaves the womb. The APGAR test is a procedural checklist that is performed for every baby immediately, at 1 and 5 minutes after birth. The goal is to determine whether the baby is breathing “normally,” or whether some intervention is needed. In software terms, the APGAR test is a smoke test.
Points of Interest:
- Note that there isn’t a single determining factor that determines whether a baby passes the APGAR test. The score (from 0-10) is a combination of five factors, each of which is scored from 0 to 2. The check passes if the score is 7 or above, with all factors combined.
- I presume that the APGAR test – like all the tests I’ll mention here – is performed sapiently without strict adherence to the “7 passes and 6 is in trouble” metric. I say this because, according to the scoring system, it is possible for a baby to get an 8 if the baby’s heart is not beating, and surely in those cases interventions still happen. (Actually, in those cases some of the other scores would probably also be at 0.)
Complete Blood Count (CBC)
A Complete Bood Count is a count of the various types of blood cells (red, white, platelets) the baby has, by blood volume. The goal here is not to find anything specific; rather, surprisingly low or high values for any of the counts may indicate a problem. For example, an elevated white blood cell count (WBC) could indicate sepsis (infection).
We were particularly interested in the platelet count due to my wife’s chronic ITP. We were pleased to see that both counts (mom’s and baby’s) were well within the normal range.
C-Reactive Protein (CRP)
A C-Reactive Protein test measures the amount of inflammation in the body, via a protein the liver produces when inflammation is present.
I found this measurement interesting because of the way it was used: on its own, CRP is pretty meaningless. However, measured over the course of a couple of days, a rising CRP measurement indicates an unspecified-but-growing problem that should be investigated.
For a couple of reasons, it’s common for newborns to have elevated bilirubin levels (“jaundice”). Usually, this is normal. However, it can get out of hand if certain risk factors are present, and these are hard to predict, so bilirubin is tested to make sure it stays within tolerable levels.
Like the CRP, the bilirubin test is most interesting when compared with previous tests, to see whether the number is going up, going down, or staying the same.
Weight Relative to Birth Weight
Newborns will always lose weight after they are born, but it’s important to make sure that the weight loss doesn’t get out of control i.e. the baby shouldn’t lose more than 10% of its birth weight, and if it does it probably needs more nourishment.
What Can Software Testers Learn?
Here were my main takeaways from observing the testing that went on around my newborn, expressed as heuristics:
- If you don’t know what you’re looking for, collect a lot of data and look for interesting anomalies. The medical staff does what you could call “automated sensing” (using vital signs and blood tests) to get a lot of numbers, and then they use their expertise to determine whether those numbers are meaningful. It’s easy to imagine medical practitioners applying the “Huh? Really? So?” heuristic to numbers that seem out of line with their expectations.
- Numbers that seem alright on their own might start to look bad if you compare them to yesterday’s numbers. In a lot of these tests, the numbers themselves only become interesting when placed side-by-side with a prior dataset. For example, the CRP test is only meaningful when it’s moving in the bad direction, and the baby’s weight is only interesting when compared to its birth weight.
What other medical tests are used to detect unspecified new problems in presumed-healthy patients?