Написанное вами требование не имеет характеристик хорошего требования . В частности, это не связно, не атомарно и не однозначно. Из-за отсутствия этих характеристик это также нелегко проверить.
Ваше начальное требование к состоянию:
Загруженное имя файла может содержать не-ASCII-символы, и его обработка не должна приводить к сбою приложения.
Я бы порекомендовал удалить «... и обработка этого не приведет к сбою приложения». Если у вас есть требование, чтобы какое-то программное обеспечение должно было что-то делать, я думаю, можно предположить, что оно должно делать это без сбоя программного обеспечения.
Это преобразует требование в:
Имя загруженного файла может содержать символы не ASCII
Теперь у вас есть связное и атомарное требование. Однако я не уверен, что это однозначно. В своем вопросе вы упоминаете ряд различных форматов. Есть несколько вариантов.
Некоторые рекомендуют отдельное и уникальное требование для каждой кодировки имени файла, которая должна поддерживаться. Это наилучшим образом соответствует связным, атомарным, прослеживаемым, однозначным и проверяемым требованиям. Это также облегчило бы определение важности каждого требования - возможно, поддержка некоторых кодировок более важна или необходима раньше.
Другие могут рекомендовать таблицу поддерживаемых форматов, и это требование будет ссылаться на таблицу. Он будет менее полным (у вас есть текстовое предложение и таблица, которую нужно сохранить), но они будут в одном документе или базе данных. Однако, если вы собираетесь выполнить связывание в инструменте управления требованиями, их можно связать вместе, чтобы изменения в одном из них выдвинули на первый план связанное требование. Это также позволило бы передавать текст другим пакетам программного обеспечения, как есть, но с другой таблицей для разных кодировок.
Однако то, как вы документируете требования, зависит от ваших конкретных потребностей.