Что такое контроль качества (QC) в разработке ПО?

Ответ

Контроль качества (Quality Control, QC) — это процесс выявления дефектов в готовом программном продукте путём его проверки на соответствие установленным требованиям. QC сфокусирован на реактивном обнаружении проблем, а не на их предотвращении.

Основные активности QC:

  • Тестирование: Выполнение тестов для поиска расхождений между ожидаемым и фактическим поведением.
  • Инспекция и ревизия кода.
  • Анализ дефектов.

Пример (автоматизированный тест):

def test_login_functionality():
    # QC: проверяем результат работы функции
    result = login("valid_user", "correct_password")
    assert result.is_success == True  # Проверка на соответствие требованию
    assert "auth_token" in result.data  # Проверка наличия ожидаемых данных

QC vs QA (обеспечение качества):

  • QC (Контроль качества): «Находим ошибки в созданном продукте». Это тактическая, проверочная деятельность.
  • QA (Обеспечение качества): «Создаём процессы, чтобы ошибок было меньше». Это стратегическая, процессо-ориентированная деятельность, направленная на предотвращение дефектов. QC является частью QA.

Ответ 18+ 🔞

Вот, сидишь ты такой, пишешь код, вылизываешь каждую строчку, а потом приходит этот тип в галстуке и орёт: «А ну-ка, покажи, что ты тут наваял!». Это, блядь, и есть контроль качества (QC) — когда твой шедевр начинают тыкать палкой, выискивая, где ты, мудак, накосячил. Суть проста: берут готовую фигню и смотрят, соответствует ли она тому, что в бумажках написано. Не предотвращают проблемы, нет — они их реактивно вылавливают, когда всё уже готово. Пиздец как задорно.

Чем они там, блядь, занимаются:

  • Тестирование: Запускают твой код и радуются, когда он падает. Ищут, где ожидаемое поведение разошлось с реальным, как баба с мужиком после пятницы.
  • Инспекция кода: Сидят, читают твои творения и думают: «Какой же пидор это писал?».
  • Анализ дефектов: Собирают все косяки в кучу и начинают гадать, откуда ноги растут.

Вот, смотри, как это выглядит в жизни:

def test_login_functionality():
    # QC: сейчас будем проверять, не обосрался ли наш логин
    result = login("valid_user", "correct_password")
    assert result.is_success == True  # Должно быть True, а если нет — иди нахуй, переделывай
    assert "auth_token" in result.data  # Токен должен быть, а то какой же это вход?

А теперь, внимание, главный подвох, чтобы ты не путался, как манда с ушами:

  • QC (Контроль качества): Это когда находят ошибки в том, что уже сделано. Тактика, проверка, тыканье в готовое. «О, смотри-ка, тут у тебя всё падает, ёпта!».
  • QA (Обеспечение качества): Это когда умные дяди придумывают процессы, чтобы ошибок изначально было меньше. Стратегия, профилактика. «Давайте, сука, прежде чем писать, план составим, чтобы потом не было мучительно больно». Так вот, QC — это просто кусок, один из винтиков в этой большой, ебаной машине под названием QA.