Регресійне тестування - це
Будь ласка, оформіть її згідно з правилами оформлення статей.
Регресійне тестування (англ. Regression testing. Від лат. Regressio - рух назад) - збірна назва для всіх видів тестування програмного забезпечення. спрямованих на виявлення помилок в уже протестованих ділянках вихідного коду. Такі помилки - коли після внесення змін до програми перестає працювати то, що повинно було продовжувати працювати, - називають регресійний помилками (англ. Regression bugs).
Регресійне тестування (за деякими джерелами) включає new bug-fix - перевірка виправлення знову знайденого дефекту, old bug-fix - перевірка, що виправлений раніше і верифікований дефект не відтворюється в системі знову, а також side-effect - перевірка того, що на не порушилася працездатність працює раніше функціональності, якщо її код міг бути порушений при виправленні деяких дефектів в інший функціональності. Зазвичай використовуються методи регресійного тестування включають повторні прогони попередніх тестів, а також перевірки, чи не потрапили регресивні помилки в чергову версію в результаті злиття коду.
З досвіду розробки ПО відомо, що повторна поява одних і тих же помилок - випадок досить частий. Іноді це відбувається через слабку техніки управління версіями або через людську помилку при роботі з системою управління версіями. Але настільки ж часто вирішення проблеми буває «недовго живуть»: після наступної зміни в програмі рішення перестає працювати. І нарешті, при переписуванні будь-якої частини коду часто спливають ті ж помилки, що були в попередній реалізації.
Тому вважається хорошою практикою при виправленні помилки створити тест на неї і регулярно проганяти його при подальших змінах програми. Хоча регресійне тестування може бути виконано і вручну, але частіше за все це робиться за допомогою спеціалізованих програм, що дозволяють виконувати всі регресійні тести автоматично. У деяких проектах навіть використовуються інструменти для автоматичного прогону регресійних тестів через заданий інтервал часу. Зазвичай це виконується після кожної вдалої компіляції (в невеликих проектах) або щоночі або щотижня.
Регресійне тестування є невід'ємною частиною екстремального програмування. У цій методології проектна документація замінюється на розширюване, повторюване і автоматизоване тестування всього програмного пакета на кожній стадії процесу розробки програмного забезпечення.
Регресійне тестування може бути використано не тільки для перевірки коректності програми, часто воно також використовується для оцінки якості отриманого результату. Так, при розробці компілятора. при прогоні регресійних тестів розглядається розмір одержуваного коду, швидкість його виконання і час компіляції кожного з тестових прикладів.