Виписана вами вимога не має характеристик хорошої вимоги . Зокрема, це не згуртовано, це не атомно, і це не однозначно. Через відсутність цих характеристик це також не просто перевірити.
Ваша початкова вимога до стану:
Завантажене ім'я файлу може містити символи, що не належать до ASCII, і обробка цього не призведе до збою програми
Я рекомендую видалити "... і обробка цього не призведе до збоїв програми". Якщо у вас є вимога, що частина програмного забезпечення повинна щось робити, я думаю, що це нормально, щоб зробити припущення, що воно повинно це робити без збоїв програмного забезпечення.
Це перетворює вимогу в:
Ім'я завантаженого файлу може містити символи, що не належать до ASCII
Тепер у вас є згуртованість та атомна вимога. Однак я не впевнений, що це однозначно. У своєму запитанні ви згадуєте ряд різних форматів. Є кілька варіантів.
Деякі рекомендують окрему та унікальну вимогу до кожного кодування імені файлів, яке повинно підтримуватися. Це найкраще підтримувати б згуртовані, атомні, простежувані, однозначні та перевіряються вимоги. Також було б простіше вказати важливість кожної вимоги - можливо, підтримка деяких кодувань важливіша або потрібна швидше.
Інші можуть рекомендувати таблицю підтримуваних форматів, і ця вимога посилається на таблицю. Це було б менш повно (у вас є текстове речення та таблиця, які слід підтримувати), але вони будуть у тому ж документі чи базі даних. Однак, якщо ви збираєтеся здійснювати зв’язування в інструменті управління вимогами, вони можуть бути пов'язані між собою, щоб зміни в одному виділили б пов’язану вимогу. Це також дозволить тексту надходити до інших програмних пакетів, як є, але з іншою таблицею для різних кодувань.
Однак, як ви документуєте вимоги, залежить від ваших конкретних потреб.