Sobes.tech
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).