Кіріспе

Шекті жұмыс параметрінде ғана туындайтын мәселе немесе жағдай.

Шекті жағдай – бұл тек қана ең жоғары немесе ең төменгі шекті жұмыс параметрінде ғана туындайтын мәселе немесе жағдай. Мысалы, стерео динамигі максималды дыбыспен ойнатылғанда, тіпті басқа ешқандай шекті жағдай болмаған кезде де дыбыстың бұрмалануы байқалуы мүмкін. Шекті жағдай күтілетін немесе күтілмеген болуы мүмкін. Инженерлік саласында, шекті жағдайларды жоспарлау және оларды тиімді шешу процесі маңызды міндет болып табылады, бірақ бұл міндет көбінесе назардан тыс қалуы немесе дұрыс бағаланбауы мүмкін. Шекті жағдайлардың негізгі себептері:

Пайдаланушылардың болжамсыз мінез-құлқы
Қолданылу жағдайларының эволюциясы (мысалы, пайдаланушы мінез-құлқы уақыт өте келе өзгеруі мүмкін)
Тестілеудің жеткіліксіз көлемі
Өнімнің күрделілігі (мысалы, үлестірілген жүйелерде немесе микросервис архитектураларында)
Ресурстардың шектелуі (мысалы, шектеулі өңдеу қуаты, компьютер жадысы немесе компьютерлік сақтағыш)
Басқа сыртқы факторлар

Шекті жағдайлардың қарапайым мысалдары:

Қолданбадағы ұзын пайдаланушы аты ағып, дұрыс көрсетілмейді.
Бронирлеу жүйесі, ақпанның 29-ы сияқты (екі жылдық күндері) брондауды дұрыс өңдемейді.

Маңызды емес шекті жағдайлар инженерлік объектінің істен шығуына әкелуі мүмкін. Олар жобалау кезеңінде көзделмеген немесе объектіні қалыпты пайдалану кезінде мүмкін емес деп саналған болуы мүмкін. Осы себепті, жақсы инженерлік стандарттарды қалыптастыру әрекеттері көбінесе шекті жағдайлар туралы ақпаратты қамтиды.

Бағдарламалық жасақтама

Бағдарламалауда, шеткі жағдай дегеніміз, компьютерлік бағдарламаның артындағы алгоритмде ерекше өңдеуді қажет ететін кіріс мәндері болып табылады. Мұндай жағдайларда компьютерлік бағдарламалардың жұмысын тексеру үшін әдетте бірлік тесттері жасалады; олар алгоритмнің, функцияның немесе әдістің шекаралық шарттарын сынап көреді. Әрбір "шекараның" айналасындағы шеткі жағдайлардың тізбегін пайдалану, егер ол шекараларда дұрыс жұмыс істесе, басқа жерлерде де дұрыс жұмыс істеуі керек деген болжаммен, жеткілікті қамту мен сенімділік береді. Мысалы, екі санды бөлетін функцияны өте үлкен және өте кішкентай сандарды қолдана отырып сынауға болады. Бұл, егер ол шама спектрінің екі шетінде де жұмыс істесе, арасында да дұрыс жұмыс істеуі керек дегенді білдіреді. Бағдарламашылар бірлік тесттерінде қамтылмаған шеткі жағдайларды шешу үшін интеграциялық тесттерді де құра алады. Бұл тесттер жүйеге тұтасқанда ғана көрінетін жағдайларды қамтиды. Мысалы, бірлік тесті функцияның нәтижелерді дұрыс есептейтінін қамтамасыз ете алса, интеграциялық тест бұл функцияның дерекқормен немесе сыртқы API-мен интеграцияланғанда дұрыс жұмыс істейтінін қамтамасыз етеді. Бұл тесттер, әсіресе таратылған жүйелерде, микроқызметтерде және заттар интернеті (IoT) құрылғыларында жүйе күрделілігі артқанда маңызды. Әсіресе микроқызметтерде тест жасау қиын, себебі интеграциялық тесттер микроқызметтердің барлық соңғы нүктелерін қамтымайды, нәтижесінде шеткі жағдайлар жабылмауы мүмкін. Шеткі жағдайларға қатысты басқа тест түрлеріне жүктеме тестілеу және теріс/сәтсіздік тестілеу жатады. Екі әдіс те жүйедегі тест көлемін кеңейтуге және күтпеген шеткі жағдайлардың пайда болу ықтималдығын азайтуға бағытталған. Тестпен басқарылатын әзірлеуде шеткі жағдайлар жүйе талаптарына сәйкес анықталып, код жазу алдында тесттер арқылы ескеріледі. Мұндай құжаттама мүдделі тараптармен және басқа командалармен талқылаудан кейін өнім талаптарының құжатына енгізілуі мүмкін.