Middle
Kaip galima taikyti lygiavertį padalijimą simbolių įvesties laukui?
sobes.tech AI
Atsakymas iš AI
Simbolių įvesties laukas gali būti padalintas į šiuos ekvivalentumo klases:
- Leidžiami klases:
- Eilutė, sudaryta iš leidžiamų simbolių (pavyzdžiui, raidės, skaičiai, tam tikri specialieji simboliai, leidžiami specifikacijoje).
- Eilutė, atitinkanti minimalų leidžiamą ilgį.
- Eilutė, atitinkanti maksimalų leidžiamą ilgį.
- Eilutė, turinti galiojantį formatą (jei reikia, pvz., el. pašto adresas).
- Neleidžiami klases:
- Eilutė, turinti neleistinų simbolių.
- Tuščia eilutė (arba trumpesnė už minimalų leidžiamą ilgį).
- Ilgesnė už maksimalų leidžiamą ilgį.
- Netinkamo formato eilutė.
- Eilutė, sudaryta tik iš tarpų.
- Eilutė, sudaryta tik iš specialiųjų simbolių (jei jie nėra leidžiami).
Testų atvejų pavyzdžiai, remiantis ekvivalentumo klasėmis:
| Ekvivalentumo klasė | Įvesties duomenys | Tikėtinas rezultatas |
|---|---|---|
| Leidžiami simboliai, galiojantis ilgis | "TestString123" | Priimta |
| Tik leidžiami simboliai, minimalus ilgis | "a" | Priimta |
| Tik leidžiami simboliai, maksimalus ilgis | "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!"#$%&'()*+,-./:;<=>?@[\]^_`{ | }~"{/* ... (maksimalus ilgis) ... */}" |
| Neleidžiami simboliai | "Test!@#$%^&*" | Atmesta (validacijos klaida) |
| Tuščia eilutė | "" | Atmesta (validacijos klaida) |
| Ilgesnė už maksimalų ilgį | "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!"#$%&'()*+,-./:;<=>?@[\]^_`{ | }~"{/* ... (ilgesnė už maksimalų) ... */}" |
| Tik tarpų eilutė | " " | Atmesta (validacijos klaida arba trynimas, priklausomai nuo reikalavimų) |
Kiekvienai klasei taip pat reikėtų taikyti ribinių reikšmių analizę (pavyzdžiui, minimalus ir maksimalus ilgis, simboliai ribose ASCII/Unicode).