要求仕様
ほとんどの要求事項はテスト可能であるべきである。もしテストできない要求事項があれば、代替となる検証方法が使われるべきである(例えば、分析、インスペクション、設計レビューなど)。テスト可能な要求事項は評価(ソフトウェアテストなど)の重要な要素となる。
要求事項によっては、その構造上テスト不可能な場合がある。例えば、ある事象が「決して起きてはならない」とか「常にそうでなければならない」といった要求事項は、テストができない。こういった事項をテストしようとすると、テストを無限に実施しなければならなくなる。このような要求事項はより現実的な時間を指定するよう書き換えられることが多い。
テスト不可能で非機能的な要求事項が、顧客の要請で残される場合がある。しかし、そのような要求事項は適切な実際的方法で限定された開発手法の要求事項として置き換えられるのが一般的である。
検証可能性は一種の明確さに基づくものであり、必須ではあるものの、他の重要な問題がおろそかになる危険性もある。要求仕様が全体として間違っていても、依然として検証可能である場合もある。検証可能であることは、その要求仕様が正しいことの保証にはならない。また、必要な事項が抜け落ちていた場合、検証可能性はそれについて何も保証できない。分析やインスペクションやレビューによってそのような問題の一部を見つけることができるとしても、要求仕様の妥当性の問題は大きく、要求工学の研究テーマの1つとなっている。
要求仕様はあいまいで不正確で一貫しないものになりやすい。この問題への対処として厳密なインスペクションなどの技法が示されてきた。あいまいさや不完全性や不整合性を要求仕様からなくすことで、開発工程の後の方で同様の問題が発覚したときよりも遥かに費用がかからなくなる。要求分析はそのような問題に対応する努力である。
要求仕様の詳細さの程度には、以下のような工学的トレードオフがある:
より詳細な要求仕様は、作成により時間がかかる
より詳細な要求仕様は、選択可能な実装上のオプションを制限する傾向がある
より詳細な要求仕様は、作成により費用がかかる