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

Ответ

QC (Quality Control) — это процесс контроля качества готового продукта, направленный на выявление дефектов через тестирование и проверку соответствия заданным требованиям.

Ключевая цель: Обнаружить и отсеять брак (баги) перед выпуском продукта пользователю.

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

  • Тестирование: Функциональное, регрессионное, нагрузочное, UI/UX.
  • Инспекции и ревью: Проверка артефактов (кода, дизайна) на соответствие стандартам.
  • Верификация: Ответ на вопрос «Продукт соответствует спецификациям?».

Пример QC-активности (автотест):

# Тест проверяет готовую функцию login — это контроль качества.
def test_login_with_valid_credentials():
    user = User(username="test_user", password="secure_pass")
    result = login(user)
    assert result.is_successful == True
    assert result.session_token is not None

Главное отличие от QA: QC работает с уже созданным продуктом/артефактом, в то время как QA работает над улучшением процессов, в которых этот продукт создается.

Ответ 18+ 🔞

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

QC (Контроль качества) — это, по сути, такой последний заслон. Ты берёшь готовую штуку и начинаешь её выявлять на предмет косяков. Всё по чек-листу, по требованиям — или нет? Если нет, то в утиль, блядь.

Суть вся в чём? Поймать и отсеять брак, эти ёбаные баги, чтобы они не доползли до юзера. Чтобы не было потом: «ой, а у меня кнопка «купить» форматирует жёсткий диск, это фича?».

Чем они, эти QC-шники, занимаются, обычно?

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

Вот, смотри, пример их работы (автотест):

# Тест проверяет готовую функцию login — это контроль качества.
def test_login_with_valid_credentials():
    user = User(username="test_user", password="secure_pass")
    result = login(user)
    assert result.is_successful == True
    assert result.session_token is not None

Видишь? Функция login уже написана, она лежит, готовая. А этот тест — как охранник на выходе: «Ты кто? А, нормальный юзер? Проходи. А токен при себе есть? Ну ладно».

И главное, не перепутай, ёпта! QC — это не QA. QC — это про готовый продукт. Как санэпидемстанция, которая пришла на готовый борщ и ищет в нём таракана. А QA — это те ребята, которые ещё на этапе рецепта орут: «Мужики, давайте сначала кастрюлю помоем, а то у нас везде говно!». Они процессы налаживают, чтобы таракану в принципе неоткуда было взяться. А QC его уже ловит сачком, если проскочил. Вот и вся разница, в рот меня чих-пых.