Что такое тестирование, связанное с изменениями

Ответ

Тестирование, связанное с изменениями (Change-Related Testing), — это проверка ПО после внесения изменений (новый функционал, исправление багов, обновления). Основные виды:

  1. Регрессионное тестирование — проверка, что изменения не сломали существующий функционал.
  2. Дымовое тестирование — быстрая проверка ключевых функций после сборки.
  3. Санитарное тестирование — узконаправленная проверка затронутых изменением областей.
  4. Повторное тестирование (Re-testing) — проверка исправленных дефектов.

Пример регрессионного теста в Python (pytest):

def test_login_after_update(login_page):
    # Проверяем, что логин работает после обновления
    login_page.enter_credentials("user", "pass")
    assert login_page.is_logged_in()

Ответ 18+ 🔞

А, ну вот, тема-то знакомая! Это ж когда программисты что-то там починили или новую кнопку налепили, а потом мы, тестировщики, должны прийти и проверить, не наворотили ли они хуйни. Всё это называется тестированием изменений, и тут, ёпта, целый зоопарк подходов.

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

Дымовое — это быстрая проверка «дымит или нет». Собрали новую версию приложения, запустили, залогинились, главную страницу открыли — не падает? Отлично, дыма нет, можно копать глубже. Если с первого же клика всё накрылось медным тазом — значит, сборка кривая, и дальше тестировать просто бессмысленно.

Санитарное — это уже потоньше. Допустим, чинили баг с отправкой сообщений в чате. Так вот санитарное — это зайти именно в этот чат, отправить сообщение и убедиться, что оно улетело, а не снова вылезла ошибка «недостаточно прав». Узко, конкретно, в одну точку.

А повторное тестирование — это вообще классика. Нашли баг, отдали на исправление, получили обратно. И теперь надо проверить именно этот самый баг. Работает? Отлично. Не работает? Ну, пидарас шерстяной, опять облажались, отправляй обратно. Доверия к разработчикам, блядь, ноль после третьего такого захода.

Вот, смотри, пример кода, как это примерно выглядит на практике. Это тот самый регрессионный тест — проверяем, что после какого-то обновления логин не сломался.

def test_login_after_update(login_page):
    # Проверяем, что логин работает после обновления
    login_page.enter_credentials("user", "pass")
    assert login_page.is_logged_in()

Выглядит просто, да? Но если этот тест вдруг свалится после нового билда — это первый звоночек, что где-то рядом бегает хитрая жопа в виде критического бага. И тогда волнение, ёбааать, начинается по полной программе. В общем, работа наша — не дать им, этим гомосекам-разработчикам, насовать костылей так, чтобы всё основное разъехалось.