Регресійне тестування програмного забезпечення. Що таке регресійне тестування

Регресійне тестування програмного забезпечення. Що таке регресійне тестування

При створенні якісного програмного забезпечення необхідно не тільки написати рядки коду, а й упевнитися, що в них немає помилок. І якщо примітивні несправності виявляються в більшості мов ще на стадії компіляції, то більш складні необхідно шукати вже при запуску програм. Такий процес називається тестуванням. Він, у свою чергу, ділиться на цілу низку гілок, які різняться своїм змістом і особливостями помилок. В рамках статті буде розглянуто, що таке регресійне тестування. Що воно собою являє? Які тести тут є? Чи існує можливість автоматизації? Отже, що таке регресійне тестування? Поговоримо детальніше.

Типи, види, напрямки

Регресійне тестування (regression testing) - це механізм перевірки, який спрямований на виявлення різних проблем у вже перевірених ділянках програм. Робиться це не для остаточного переконання у відсутності непрацюючих ділянок коду, а щоб знайти і виправити регресійні помилки. Під ними розуміють баги, які з 'являються не під час написання програми, а при додаванні нових ділянок коду або виправленні допущених раніше промахів у синтаксисі коду.


Підсумувавши все сказане, можна зробити висновок, що мета регресійного тестування - переконатися в тому, що виправлення існуючих проблем не призвело до нових у вже перевірених ділянках коду програми. Розрізняють два основних типи тестів:

  1. Функціональні.
  2. Нефункціональні.

Вони можуть бути виражені у вигляді:

  1. Скриптів.
  2. Наборів.
  3. Комплектів для запуску.

Що ж, власне, включає в себе регресійне тестування програмного забезпечення? Проводиться робота в 3 основних напрямках. А саме регресія:

  1. Багів.
  2. Старих проблем.
  3. Побічних ефектів.

Функціональні тести

Вони ґрунтуються на функціях, які виконує система. Можуть проводитися на компонентному, інтеграційному, системному і приймальному рівнях. Два основних аспекти, з яких проводиться тестування:

  • Вимоги.
  • Бізнес-процеси.

При роботі над вимогами необхідно скласти список того, що має бути протестовано. При цьому бажано виділити пріоритетні деталі, щоб визначитися з напрямком роботи. Це необхідно, щоб не залишити без уваги весь найбільш важливий функціонал. При тестуванні "бізнес-процесів" акцент робиться саме на них, тобто проганяються сценарії щоденної роботи.

До переваг функціональної перевірки слід віднести те, що програмне забезпечення імітує реальне використання системи. Але є і свої недоліки: так, програма може бути піддана надлишковому тестуванню. Також не виключено упущення логічних помилок у самому програмному забезпеченні.


Нефункціональні тести

Дані види тестів спрямовані на перевірку всіх властивостей, які не відносять до функцій системи. З них можна навести такі параметри:

  1. Надійність. Проводиться перевірка реакції на різні не передбачені ситуації.
  2. Продуктивність. Як працює система, яка піддається різним навантаженням.
  3. Зручність. Наскільки зручно працювати з додатком, на думку користувача.
  4. Масштаб. Вимоги до зміни висоти і ширини програми при роботі з різними моніторами.
  5. Безпека. Наскільки захищені дані користувача, а також інформація при передачі різними каналами.
  6. Портативність. Перевіряється, чи працює додаток на різних платформах, і якщо так - на скількох.

Які властивості системи можуть бути досліджені в даних випадках? Всього їх 4.

  1. Тестування встановлення. Перевіряється, наскільки успішно вдається поставити програму на комп 'ютер, налаштувати її, а при потребі і вилучити. Якісне налаштування дозволяє зменшити ризик втрати даних користувача або зменшення (погіршення) працездатності програми.
  2. Тестування комфортності використання. Перевірка розробленого програмного забезпечення на зручність використання і зрозумілість кінцевому користувачеві.
  3. Налаштування для перевірки. Передбачає перевірку працездатності програми при установці різних системних налаштувань, а також експериментування з внутрішніми налаштуваннями програми.
  4. Тестування на відмову та відновлення. Перевірка працездатності після виникнення помилок. Оцінюється реакція захисних властивостей, а також те, які дані і в якому обсязі зберігаються після раптового припинення роботи програми.

Підсумувавши, слід сказати, що, хоча від нефункціональних тестів і не залежить перевірка працездатності програми в плані виконання поставлених завдань, вони дозволяють говорити про такі властивості, як надійність, продуктивність і безпека програмного забезпечення. Дані параметри характеризують якість програми і тим чи іншим чином залишають певні враження у користувача. Тому важливість даного тестування не менша, ніж у функціонального.

Тест-кейси

Тест-кейсами називають заготовки для перевірки програмного забезпечення. Вони називаються інструментами для автоматизованого тестування. Це спеціальне програмне забезпечення, за допомогою якого фахівець створює, налагоджує, виконує і аналізує результати прогону програми через такі розробки:

  1. Тест-скрипти. Сюди відносять комплекти інструкцій, розроблені для проведення автоматичних перевірок окремих частин програмного забезпечення.
  2. Тестові набори. Це комбінації скриптів, які перевіряють певні частини програмного забезпечення, які об 'єднані загальним функціоналом або цілями.
  3. Тести для запуску. Це комбінації різних скриптів або наборів для одночасного запуску під час перевірки програми.

Автоматизація регресійних тестів

Автоматизація праці - одна з основ розвитку людства в 21-му столітті. Торкнулася вона і даної теми. Так, під автоматизованим тестуванням програмного забезпечення розуміють процес верифікації ПЗ, під час якого основні функції та завдання, такі як запуск, ініціалізація та виконання, а також аналіз та видача результатів, проводяться автоматично, із застосуванням відповідного інструментарію. Ця дія виконується технічним фахівцем, що відповідає за створення, налагодження та підтримку в робочому стані тест-скриптів, тестових наборів та інструментарію. Робота може проводитися з різним програмним забезпеченням, в тому числі і регресійне тестування автоматизованих систем.

Регресія багів

Під цим тестуванням розуміють пошук проблем, які офіційно "були усунені", але є підстави вважати, що вони досі існують. Особливість цього виду перевірок полягає в тому, що необхідно перевіряти всі дії з певним об 'єктом у різних комбінаціях. У першу чергу тестують відповідність реальності повідомлення про усунення проблеми за тим механізмом, завдяки якому вона була виявлена. Регресійне тестування верстки в даному випадку допомагає впевнитися у відсутності небажаних ефектів.

Регресія старих помилок

Під цим розуміють виявлення ситуацій, коли недавні зміни, внесені в код програми, анулювали виправлення старих помилок. Таким чином, вони знову починають бути активними. Тому при внесенні зміни до коду програмного забезпечення необхідно починати процеси тестування з початку (за умови, звичайно, що виникали проблеми з працездатністю).


Регресія побічного ефекту

Під нею розуміють ситуації, коли недавня зміна коду в одній частині програми зробила неробочим деякі або всі інші частини програми, що розробляється. Як вказівку про наявність таких проблем служить відсутність працездатності в одній або декількох частинах програми. Завдання тестера визначити всі проблемні місця.

Підсумувавши все написане, що можна сказати про регресійне тестування? Що це тепер та тема, яка більше не повинна викликати питань. Залишилося тільки освоїти все на практиці.