12. Are they free of vague absolutes?
Here’s a requirement you don’t want to see: “The system shall be free of errors.” Every system throws errors. No software or hardware is absolutely perfect and when things go wrong we want to capture those error (usually in a file or database).
“The system shall never fail.” Are you running this until the end of time? Who will run this forever testing? Make sure you know what you’re asking for. In high reliability scenarios, think about what is realistic and appropriate. “The system shall have no more than 1 min of downtime every 30 days” is much more reasonable. That’s a tough requirement, but it is measureable, testable, and can ultimately be verified. Just understand what that means. You must come up with a way to test that requirement, and likely for a period much longer than the actual passing parameters. Also, realize that it may need to be repeated if it fails and fixes have to be applied.