Регресивне тестування (англ. regression testing, від лат. regressio — рух назад) — загальна назва для всіх видів тестування програмного забезпечення, спрямованих на виявлення помилок у вже протестованих ділянках вихідного коду. Такі помилки — коли після внесення змін до програми перестає працювати те, що мало б працювати, — називають регресивними помилками (англ. regression bugs).
Одна з головних цілей регресійного тестування - це визначити, чи впливає зміна в одній частині програмного забезпечення на його інші частини.
Вважається доброю практикою при виправленні помилки створити тест на неї й регулярно проганяти його при подальших змінах програми. Регресивне тестування може бути виконано як вручну так і за допомогою спеціалізованих програм, що дозволяють виконувати всі регресивні тести автоматично. У деяких проектах навіть використовують інструменти для автоматичного прогону регресивних тестів через заданий інтервал часу. Зазвичай це виконується після кожної вдалої компіляції (у невеликих проектах) чи кожну ніч або щотижня.
Регресивне тестування є невіддільною частиною екстремального програмування[]. У цій методології проектна документація замінюється на розширюване, повторюване й автоматизоване тестування всього програмного пакета на кожній стадії
Регресивне тестування може бути використане не лише для перевірки коректності програми, часто його також застосовують для оцінки якості отриманого результату. Так, під час розробки компіляторів, у прогоні регресивних тестів звертають увагу на час компіляції кожного з тестових прикладів, розмір отриманого коду й швидкість його виконання.
Цитати
Фундаментальна проблема супроводу програм полягає в тому, що виправлення однієї помилки з великою ймовірністю (20-50%) спричиняє появу нової. Тому весь процес йде за принципом «два кроки вперед, один крок назад». Чому не вдається усувати помилки акуратніше? По-перше, навіть коли дефект виявляє себе як відмова в якомусь одному місці, насправді він часто має розгалуження в усій системі, зазвичай, неочевидні. Будь-яка спроба виправити його мінімальними зусиллями призведе до виправлення локального, але якщо структура є не дуже чіткою або документація не дуже добра, віддалені наслідки цього виправлення залишаться непоміченими. По-друге, помилки зазвичай виправляє не автор програми, а, найчастіше, молодший програміст або стажист. Внаслідок внесення нових помилок супровід програми вимагає значно більше системного налагодження на кожен оператор, ніж у будь-якому іншому виді програмування. Теоретично, після кожного виправлення потрібно прогнати весь набір контрольних прикладів, за якими система перевірялася раніше, щоб переконатися, що вона якимось незрозумілим чином не ушкоджена. На практиці таке зворотне (регресивне) тестування справді має наближатися до цього теоретичного ідеалу й воно дуже дорого коштує. | ||
— Брукс Ф. , Міфічний людино-місяць або як створюються програмні системи. - Пер. з англ. — СПб.: Символ-Плюс, 2001. — 304 стр.: іл. (стор.113-114) |
Див.також
Посилання
Що таке регресивне тестування?[недоступне посилання з липня 2019] (англ.)
- 8 Functional Testing Types Explained With Examples. Insights on Latest Technologies - Simform Blog (амер.). 27 лютого 2019. Процитовано 13 липня 2021.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Regresivne testuvannya angl regression testing vid lat regressio ruh nazad zagalna nazva dlya vsih vidiv testuvannya programnogo zabezpechennya spryamovanih na viyavlennya pomilok u vzhe protestovanih dilyankah vihidnogo kodu Taki pomilki koli pislya vnesennya zmin do programi perestaye pracyuvati te sho malo b pracyuvati nazivayut regresivnimi pomilkami angl regression bugs Odna z golovnih cilej regresijnogo testuvannya ce viznachiti chi vplivaye zmina v odnij chastini programnogo zabezpechennya na jogo inshi chastini Vvazhayetsya dobroyu praktikoyu pri vipravlenni pomilki stvoriti test na neyi j regulyarno proganyati jogo pri podalshih zminah programi Regresivne testuvannya mozhe buti vikonano yak vruchnu tak i za dopomogoyu specializovanih program sho dozvolyayut vikonuvati vsi regresivni testi avtomatichno U deyakih proektah navit vikoristovuyut instrumenti dlya avtomatichnogo progonu regresivnih testiv cherez zadanij interval chasu Zazvichaj ce vikonuyetsya pislya kozhnoyi vdaloyi kompilyaciyi u nevelikih proektah chi kozhnu nich abo shotizhnya Regresivne testuvannya ye neviddilnoyu chastinoyu ekstremalnogo programuvannya dzherelo U cij metodologiyi proektna dokumentaciya zaminyuyetsya na rozshiryuvane povtoryuvane j avtomatizovane testuvannya vsogo programnogo paketa na kozhnij stadiyi Regresivne testuvannya mozhe buti vikoristane ne lishe dlya perevirki korektnosti programi chasto jogo takozh zastosovuyut dlya ocinki yakosti otrimanogo rezultatu Tak pid chas rozrobki kompilyatoriv u progoni regresivnih testiv zvertayut uvagu na chas kompilyaciyi kozhnogo z testovih prikladiv rozmir otrimanogo kodu j shvidkist jogo vikonannya CitatiFundamentalna problema suprovodu program polyagaye v tomu sho vipravlennya odniyeyi pomilki z velikoyu jmovirnistyu 20 50 sprichinyaye poyavu novoyi Tomu ves proces jde za principom dva kroki vpered odin krok nazad Chomu ne vdayetsya usuvati pomilki akuratnishe Po pershe navit koli defekt viyavlyaye sebe yak vidmova v yakomus odnomu misci naspravdi vin chasto maye rozgaluzhennya v usij sistemi zazvichaj neochevidni Bud yaka sproba vipraviti jogo minimalnimi zusillyami prizvede do vipravlennya lokalnogo ale yaksho struktura ye ne duzhe chitkoyu abo dokumentaciya ne duzhe dobra viddaleni naslidki cogo vipravlennya zalishatsya nepomichenimi Po druge pomilki zazvichaj vipravlyaye ne avtor programi a najchastishe molodshij programist abo stazhist Vnaslidok vnesennya novih pomilok suprovid programi vimagaye znachno bilshe sistemnogo nalagodzhennya na kozhen operator nizh u bud yakomu inshomu vidi programuvannya Teoretichno pislya kozhnogo vipravlennya potribno prognati ves nabir kontrolnih prikladiv za yakimi sistema pereviryalasya ranishe shob perekonatisya sho vona yakimos nezrozumilim chinom ne ushkodzhena Na praktici take zvorotne regresivne testuvannya spravdi maye nablizhatisya do cogo teoretichnogo idealu j vono duzhe dorogo koshtuye Bruks F Mifichnij lyudino misyac abo yak stvoryuyutsya programni sistemi Per z angl SPb Simvol Plyus 2001 304 str il stor 113 114 Div takozhBeta testuvannya Integracijne testuvannya Modulne testuvannya Bezperervna integraciya Rozrobka cherez testuvannya Sistema vidslidkovuvannya pomilok Sistemne testuvannya Testuvannya programnogo zabezpechennya Ekstremalne programuvannya Yuzabiliti testuvannyaPosilannyaSho take regresivne testuvannya nedostupne posilannya z lipnya 2019 angl 8 Functional Testing Types Explained With Examples Insights on Latest Technologies Simform Blog amer 27 lyutogo 2019 Procitovano 13 lipnya 2021