Ар бир өзгөчөлүк үчүн иш жүзүндө сыноо учурлары программалык камсыздоону чыгаруунун алдында түзүлөт жана текшерилет, жана эгер сыноо ийгиликсиз болсо, тесттен өтүү жана кодду жөнөкөй жана мүчүлүштүксүз кылуу үчүн жаңы код жазылат (же кайра жазылат же жаңыртылды).
Test Driven Development (TDD) колдонмодогу ар бир кичинекей функция үчүн тесттерди иштеп чыгуу жана иштеп чыгуу менен башталат. TDD алкагы иштеп чыгуучуларга автоматташтырылган сыноо ийгиликсиз болгондо гана жаңы код жазууну буйруйт. Бул ыкма кодду кайталоодон сактайт. Толук TDD модулу сыноого негизделген иштеп чыгуу болуп саналат.
Test Driven Development (TDD) Agile программалык камсыздоону иштеп чыгуу методологиясынын бир бөлүгү болуп саналган Extreme Programming (XP) деп аталган ири программалык камсыздоону долбоорлоо парадигмасынын бир бөлүгү катары келип чыккан.
TDDдин жөнөкөй түшүнүгү жаңы кодду жазуудан мурун (иштеп чыгуудан мурун) ийгиликсиз болгон тесттерди жазуу жана оңдоо. Бул кодду кайталоодон качууга жардам берет, анткени биз тесттерден өтүү үчүн бир убакта аз сандагы кодду жазабыз. (Тесттер биз аларды канааттандыруу үчүн сынап көрүшүбүз керек болгон талаптардан башка нерсе эмес).
Сыноого негизделген иштеп чыгуу - бул тиркемени иш жүзүндө иштеп чыгуунун алдында автоматташтырылган тесттерди иштеп чыгуу жана жүргүзүү процесси. Демек, TDD кээде Test First Development деп да аталат.
Кандайдыр бир жаңы код жазылаардан мурун, программист адегенде ийгиликсиз бирдик сынагын түзүшү керек. Андан кийин, программист - же жубайлар же моб - бул талапты канааттандыруу үчүн жетиштүү кодду түзөт. Сыноодон өткөндөн кийин, программист жүрүм-турумун өзгөртпөстөн, долбоорду рефакциялай алат.
TDD бирдик деңгээлиндеги программисттердин өз ара аракеттенүүсүнө басым жасаганы менен, кардарлар түшүнө турган тесттерге багытталган кабыл алуу сынагына негизделген иштеп чыгуу (ATDD) же жүрүм-турумга негизделген өнүгүү (BDD) сыяктуу башка популярдуу методдор бар.
Бул ыкмалар коддоодон мурун инженердик персонал менен кардар ортосунда биргелешкен тесттер катары реалдуу мисалдарды курууну, андан кийин коддун ишке ашырылганын көрсөтүү үчүн коддоодон кийин тесттерди жүргүзүүнү камтыйт. Тесттердин алдын ала белгилүү болушу биринчи жолу сапатты жакшыртат. ATDD жана BDD иштеп чыгуучулардан, тестирлөөчүлөрдөн жана бизнес тараптан код түзүлгөнгө чейин программалык камсыздоону жана анын кесепеттерин элестетүү жана талкуулоо үчүн чогуу иштешин талап кылат.
Сыноого негизделген иштеп чыгуулар эски ыкмаларга караганда аз убакыттын ичинде жогорку сапаттагы тиркемелерди чыгара алат. TDDди ийгиликтүү ишке ашыруу иштеп чыгуучулардан жана тестирлөөчүлөрдөн тиркеме жана анын функционалдуулугу реалдуу дүйнөдө кандайча колдонулаарын так алдын ала билишин талап кылат.
TDD адамдын кол менен тестирлөөсүн минималдаштырууга, көйгөйлөрдү эрте таап, тезирээк чечимдерге алып келүүчү терс эффект катары регрессиялык тест топтомун түзөт. TDD методикалык мүнөзү классикалык баскычтуу код циклдерине караганда биринчи жолу камтууну жана сапатын бир кыйла жогору камсыздайт > тест > оңдоо > кайра сыноо. Сыноо долбоорлоо циклинин башталышында жүргүзүлгөндүктөн, кийинчерээк мүчүлүштүктөрдү оңдоого сарпталган убакыт жана акча минималдуу кыскартылат.
Күтүлгөн пайдалар:
TDD ийгиликтүү болушу үчүн, өзгөчө бирдик деңгээлинде бир топ чеберчиликти талап кылат. Көптөгөн эски системалар жөн гана бирдикти тестирлөө менен курулган эмес, бул тестирлөө үчүн компоненттерди бөлүп коюуга мүмкүн эмес.
Ошондой эле, көптөгөн программисттер обочолонуу жана таза кодду түзүү жөндөмдөрү жок. Команданын бардык мүчөлөрү бирдик тесттерин түзүп, кармап турушу керек, болбосо алар тез эле эскирип калат. Ал эми TDD карап жаткан уюм кийинчерээк тезирээк баруу үчүн убакытты жумшап, азыр бир аз жайлатышы керек.
Акыр-аягы, ар кандай ыкмалар сыяктуу эле, TDDнин акыркы натыйжалары колдонулган тесттер, алар канчалык так аткарылганы жана акыркы продукттун колдонуучулары туш болгон шарттарды канчалык туурагандай эле жакшы.
Жалпы каталар:
TDD программалык камсыздоону жазууда программистке бала кадамдарын жасоого мүмкүндүк берет. Сыноо функционалдуулукту текшерүүдөн мурун жазылган жана колдонмонун сыноого ылайыктуулугун камсыздайт. Сыналган коддо пайда болгон каталарды аныктоо үчүн аз сандагы кодду тестирлөө жүргүзүлөт. Андан кийин функция ишке ашырылат. Бул "кызыл жашыл рефактор" деп аталат, мында кызыл - ийгиликсиздикти билдирет, ал эми жашыл өтүүнү көрсөтөт. Бул кадамдар андан кийин кайталанат. Программисттин биринчи максаты – алдыдагы милдетке көңүл буруу жана аны жеңүү.
Ercole Palmeri
Veeam тарабынан Coveware кибер опузалап инциденттерге жооп берүү кызматтарын көрсөтүүнү улантат. Coveware криминалистика жана ремедиация мүмкүнчүлүктөрүн сунуштайт ...
Болжолдуу тейлөө заводду башкарууга инновациялык жана жигердүү мамиле кылуу менен мунай жана газ секторун революция кылып жатат.…
Улуу Британиянын CMA жасалма интеллект рыногунда Big Tech жүрүм-туруму жөнүндө эскертүү берди. Ал жерде…
Имараттардын энергетикалык натыйжалуулугун жогорулатуу үчүн Европа Биримдиги тарабынан иштелип чыккан "Case Green" Декрети өзүнүн мыйзам чыгаруу процессин аяктады ...