Тестирование и обеспечение качества ПО: как QA-инженеры превращают код в надёжный продукт

Тестирование и обеспечение качества ПО: как QA-инженеры превращают код в надёжный продукт

Почему тестирование — это не «поиск багов», а инженерия качества

В массовом сознании тестировщик — это человек, который «кликает по кнопкам и ищет ошибки». На практике же обеспечение качества (Quality Assurance, QA) — полноценная инженерная дисциплина, которая охватывает весь жизненный цикл продукта: от анализа требований до эксплуатации в продакшене. Хороший QA-инженер начинает работать задолго до того, как написана первая строка кода, — он задаёт вопросы к спецификации, находит противоречия и неоднозначности, которые иначе всплыли бы уже после релиза.

Разница между понятиями важна. Quality Assurance — это процессы и культура, которые предотвращают появление дефектов. Quality Control (контроль качества) — это уже проверка готового результата. Собственно тестирование (testing) — конкретная деятельность по выявлению расхождений между ожидаемым и фактическим поведением системы. Зрелые команды инвестируют именно в QA, потому что предотвратить дефект всегда дешевле, чем его исправить.

Цена ошибки растёт нелинейно по мере продвижения по этапам разработки. Дефект, найденный на этапе требований, стоит условную единицу, а тот же дефект, обнаруженный пользователем в продакшене, может обойтись в сотни раз дороже — из-за срочных правок, репутационных потерь и оттока клиентов. Именно поэтому принцип «раннего тестирования» (early testing) считается одним из фундаментальных.

Уровни и виды тестирования

Тестирование принято разделять по уровням — от самого мелкого «зерна» кода до системы в целом. Модульное (unit) тестирование проверяет отдельные функции и классы в изоляции. Интеграционное — корректность взаимодействия компонентов между собой, например модуля оплаты с базой данных. Системное тестирование оценивает продукт как единое целое, а приёмочное (acceptance) подтверждает, что система решает бизнес-задачу заказчика.

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

По подходу к внутренней структуре различают методы «чёрного ящика» (тестировщик не знает устройства кода и работает через интерфейс), «белого ящика» (доступ к исходному коду и логике) и «серого ящика» — комбинацию, когда частичное знание архитектуры помогает точнее строить проверки. Каждый подход уместен в своей ситуации, и зрелый инженер владеет всеми.

  • Smoke-тестирование — быстрая проверка, что ключевые функции вообще работают после сборки.
  • Регрессионное — убеждаемся, что новые изменения не сломали старый функционал.
  • Санитарное (sanity) — узкая проверка конкретной исправленной области.
  • Исследовательское (exploratory) — тестировщик изучает продукт без заранее написанных сценариев, полагаясь на опыт и интуицию.
  • Приёмочное пользователем (UAT) — финальная проверка реальными представителями заказчика.

Пирамида тестирования и стратегия автоматизации

Концепция «пирамиды тестирования», предложенная Майком Коном, задаёт разумное соотношение между типами автоматизированных проверок. В основании — множество быстрых и дешёвых unit-тестов, посередине — меньшее число интеграционных, а на вершине — совсем немного медленных и хрупких end-to-end сценариев через пользовательский интерфейс. Перевёрнутая пирамида («стакан мороженого»), где преобладают UI-тесты, приводит к медленным и нестабильным прогонам.

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

УровеньДоля тестовСкоростьСтоимость поддержки
Unit~70%МиллисекундыНизкая
Интеграционные~20%СекундыСредняя
End-to-end (UI)~10%МинутыВысокая

Приведённые пропорции — ориентир, а не догма: для API-сервиса доля интеграционных тестов может быть выше, а для библиотеки — почти всё покрытие ляжет на unit-уровень. Главное — держать быстрый и надёжный фундамент, чтобы прогон тестов не превращался в многочасовое ожидание.

Инструменты современного QA-инженера

Экосистема инструментов огромна и зависит от стека проекта. Для автоматизации веб-интерфейсов чаще всего используют Selenium, Cypress или Playwright. Для тестирования API популярны Postman и REST Assured. Нагрузочное тестирование выполняют с помощью JMeter, k6 или Gatling. Юнит-тесты пишут во фреймворках, «родных» для языка: JUnit и TestNG для Java, pytest для Python, Jest для JavaScript.

Отдельный пласт — инфраструктура вокруг тестов. Системы непрерывной интеграции (Jenkins, GitLab CI, GitHub Actions) автоматически запускают тесты при каждом изменении кода. Баг-трекеры (Jira, YouTrack) фиксируют дефекты, а системы управления тест-кейсами (TestRail, Zephyr) хранят сценарии проверок. Для контейнеризации тестовых окружений применяют Docker, чтобы «работает на моей машине» перестало быть проблемой.

Начинающему специалисту не нужно знать всё сразу. Гораздо ценнее глубоко понять принципы — как строить тест-кейсы, что такое граничные значения и классы эквивалентности, — а конкретные инструменты осваиваются по мере необходимости. Именно понимание методологии отличает инженера от «кликера».

Как писать хорошие тест-кейсы

Качественный тест-кейс воспроизводим, независим и проверяет ровно одну вещь. В его основе лежат техники тест-дизайна. Анализ граничных значений подсказывает, что ошибки чаще всего живут на краях диапазонов: если поле принимает возраст от 18 до 65, проверять нужно 17, 18, 65 и 66. Классы эквивалентности позволяют не перебирать все значения, а взять по одному представителю из группы одинаково обрабатываемых данных.

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

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

Метрики качества: что и зачем измерять

Метрики нужны не ради отчётности, а чтобы принимать решения. Покрытие кода (code coverage) показывает, какая доля строк или ветвлений выполняется тестами, но высокое покрытие само по себе не гарантирует отсутствия багов — можно выполнить строку, ничего толком не проверив. Плотность дефектов (число дефектов на тысячу строк кода или на модуль) помогает выявить проблемные участки, которые стоит переписать.

Полезны и «скоростные» метрики: время обнаружения дефекта, время его исправления, доля дефектов, «утёкших» в продакшен (defect leakage). Важно следить и за стабильностью автотестов — доля «мерцающих» (flaky) тестов, которые то проходят, то падают без изменения кода, напрямую бьёт по доверию команды к тестовому набору.

  • Code coverage — процент кода, покрытого тестами (ориентир, а не самоцель).
  • Defect density — количество дефектов на единицу объёма кода.
  • Defect leakage — доля дефектов, найденных уже после релиза.
  • MTTR — среднее время устранения дефекта.
  • Flaky rate — доля нестабильных автотестов.

QA в процессах DevOps и «сдвиг влево»

Современная разработка стирает границу между тестированием и остальными этапами. Принцип «сдвига влево» (shift-left) означает, что проверки начинаются как можно раньше: разработчик пишет unit-тесты вместе с кодом, а конвейер CI/CD автоматически прогоняет их при каждом коммите. Это позволяет ловить ошибки за минуты, а не за недели.

Есть и обратное движение — «сдвиг вправо» (shift-right): наблюдение за поведением системы уже в продакшене с помощью мониторинга, логирования и даже контролируемого «хаос-инжиниринга», когда в систему намеренно вносят сбои, чтобы проверить её устойчивость. Вместе эти подходы формируют непрерывное тестирование (continuous testing) на всём протяжении жизненного цикла.

Для студента это означает, что навыки QA сегодня востребованы шире, чем должность «тестировщик». Понимание качества нужно и разработчику, и DevOps-инженеру, и аналитику. Умение думать о том, «как это может сломаться», делает специалиста ценнее в любой роли.

Карьера и с чего начать студенту

Порог входа в QA относительно невысок, но потолок роста — впечатляющий. Типичная траектория: Junior Manual QA → Middle → Senior, а далее развилка в сторону автоматизации (Automation QA, SDET — Software Development Engineer in Test), управления (QA Lead, Test Manager) или узкой специализации в безопасности либо нагрузочном тестировании. Инженеры SDET, совмещающие навыки разработки и тестирования, ценятся особенно высоко.

Начать стоит с фундамента: изучить основы тестирования (хорошая точка входа — свод знаний ISTQB), освоить SQL для проверки данных, разобраться в работе HTTP и API, а затем добавить один язык программирования и фреймворк автоматизации. Практиковаться можно на собственных pet-проектах или open-source, находя и оформляя реальные баг-репорты.

Не менее важны «мягкие» навыки: критическое мышление, внимание к деталям, умение чётко и без эмоций описать проблему так, чтобы разработчик воспроизвёл её за минуту. QA-инженер — это адвокат пользователя внутри команды, и от качества его коммуникации зависит не меньше, чем от технической подготовки.

Источники

При подготовке материала использованы концепции и данные следующих авторитетных источников:

  • International Software Testing Qualifications Board (ISTQB) — свод знаний и терминология тестирования.
  • Мартин Фаулер (Martin Fowler) и Майк Кон (Mike Cohn) — концепция пирамиды тестирования.
  • World Quality Report (Capgemini, Sogeti) — ежегодные отраслевые данные о состоянии обеспечения качества.
28.08.2026

Первокурсники кафедры ПИИТУ знакомятся с «ЕРАМ»

29 октября студенты 1-го курса кафедры программной инженерии и информационных технологий управления посетили офис крупнейшей украинской ІТ-компании «ЕРАМ». Ребята узнали об истории фирмы, направлениях, в которых она работает сегодня и актуальных вакансиях, которые они со временем смогут занять.

Продолжить чтение

04.11.2018

Кафедра ПИИТУ НТУ «ХПИ» – организатор митинга в рамках проекта MASTIS

25-26 октября на кафедре программной инженерии и информационных технологий управления НТУ «ХПИ» прошел митинг по проекту MASTIS, который посвящен улучшению магистерской программы в области информационных систем в соответствии с потребностями современного общества. В мероприятии приняли участие представители кафедры ПИИТУ, а также гости из других вузов – члены группы по реализации проекта: Марина Анатольевна Вовк, Ольга Юрьевна Чередниченко, Владимир Евгеньевич Сокол, Александр Витальевич Шматко и Михаил Дмитриевич Годлевский (НТУ «ХПИ»), Ирина Золотарева, Анна Плеханова, Алексей Беседовский (ХНЭУ им. С. Кузнеца), Евгений Паламарчук (ВНТУ), Татьяна Ковалюк и Юрий Олейник (НТУ «КПИ»), Борут Вербер (Университет Марибор, Словения), Римантас Батлерис (Каунасский университет, Литва), Пирфранко Равотто, (AICA Италия), Дженс Бранк (Универистет Мюнстер, Германия), Жан-Юг Шоша и Жером Дармонт (Универистет Лион-2, Франция).

Продолжить чтение

04.11.2018

«Визуальная математика» для школьников от кафедры ПИИТУ

25 октября в рамках проекта «Осенние каникулы с Политехом» доцент кафедры программной инженерии и информационных технологий управления Юлия Сергеевна Литвинова провела для школьников мастер-класс «Визуальная математика».

Продолжить чтение

29.10.2018

QA от “Quality” до “Assurance”

17.10.2018

Межвузовский обмен опытом в рамках проекта MASTIS

В рамках проекта MASTIS c 2 по 5 октября прошел митинг в Подгорице (Черногория). В мероприятии приняли участие представители кафедры программной инженерии и информационных технологий управления НТУ «ХПИ» – доценты Ольга Юрьевна Чередниченко и Марина Анатольевна Вовк.

Продолжить чтение

10.10.2018

Кафедра ПИИТУ готова к открытию инновационного центра

НТУ «ХПИ» и фонд K.Fund активно ведут работу по созданию инновационного центра – кампуса UNIT.City, сочетающего ИТ-обучение, школу предпринимательства и коворкинг. У кафедры программной инжнерии и информационных технологий управления НТУ «ХПИ» уже готовы учебные планы для проектного подхода к образованию, который будет реализовываться с привлечением возможностей  кампуса UNIT.City.

Продолжить чтение

08.10.2018

Начало пилотирования курса по проекту MASTIS

1 октября на кафедре программной инженерии и информационных технологий управления НТУ «ХПИ» стартовало пилотирование курса «Базы данных и хранилища данных» (преподаватель – доц., к.т.н. Владимир Евгеньевич Сокол), реализуемое в рамках международного проекта MASTIS.

Продолжить чтение

08.10.2018

Выпускники и сотрудники кафедры ПИИТУ получили дипломы на Ученом совете НТУ «ХПИ»

25 сентября на заседании Ученого совета НТУ «ХПИ» ректор НТУ «ХПИ» профессор Евгений Сокол вместе с Почетным ректором, председателем Ученого совета профессором Леонидом Товажнянским вручили дипломы отличившимся сотрудникам университета. В их числе – выпускники кафедры ПИИТУ Андрей Ткачук и Алексей Зиньковский, а также доцент кафедры, к.т.н. Карина Владимировна Мельник.
Продолжить чтение

04.10.2018

MASTIS (Establishing Modern Master-level Studies in Information Systems)

MASTIS

No. 561592-EPP-1-2015-1-FR-EPPKA2-CBHE-JP
Основные результаты проекта (НТУ ХПИ):
1. Совместно с университетами-партнерами разработаны профиль магистра информационных систем.
https://mastis.pro/wp-content/uploads/2018/06/MASTIS-WP3.-MASTER-in-IS-Degree-Profile_Ukraine.pdf
2. Разработан учебный план подготовки магистров по специальности Информационные системы и технологии.
http://web.kpi.kharkov.ua/asu/wp-content/uploads/sites/109/2018/02/NAVCHALNIJ-PLAN.pdf
3. Разработан учебный план для курса «Базы данных и хранилища данных».
https://mastis.pro/wp-content/uploads/2018/06/MASTIS-WP2.-Data-Bases-and-Data-Warehouses.pdf
4. Лицензирование новой учебной программы для подготовки магистров, разработанной в рамках проекта.
http://web.kpi.kharkov.ua/asu/spetsializatsii/
5. В рамках работы по проекту MASTIS 2 февраля 2017 проведен педагогический семинар “Прогрессивные образовательные технологии – распространение уроков, полученных в MASTIS” (докладчик Ольга Чередниченко, доцент кафедры SEMIT) .
https://mastis.pro/pedagogic-workshop-progressive-educational-technologies-disseminating-lessons-learned-on-mastis-at-ntu-khpi-1-3-february-2017/
6. 28 июля 2017 состоялась рабочая встреча участников проекта MASTIS в НТУ “ХПИ”. Встреча была посвящена реализации решений, которые обсуждались на заседании в Киеве 26-27 июня. Особое внимание было уделено разработке учебных программ, заданий для курсов и магистерских проектив.
https://mastis.pro/working-meeting-of-the-participants-of-the-mastis-project-from-khnue-and-ntu-khpi/
7. 13 ноября 2017 в НТУ “ХПИ” состоялся пятый межвузовский семинар. На семинаре обсуждали тему “Проблемы подготовки специалистов в области информационных систем и технологий” .
https://mastis.pro/wp-content/uploads/2017/11/the-fifth-inter-university-workshop-NTU-Kh-Polytechnic-Institute-2-1.jpg
8. 15 января 2018 состоялась межвузовская встреча с участниками ХНЭУ и НТУ “ХПИ”. Основная цель встречи – обсудить принципы, содержание, порядок ведения магистерской программы и оценки базовых курсов представителями IT-бизнесу.
https://mastis.pro/mastis-inter-university-meeting-on-january-15-2018-between-simon-kuznets-kharkiv-national-university-of-economics-and-national-technical-university-kharkiv-polytechnic-institute/

Материалы по проекту MASTIS (Подробнее…)

 

14.09.2018

Второе высшее образование в области ІТ!

Магистратура «Программное обеспечение информационных систем» – это возможность для профессионалов, имеющих высшее образование, получить углубленные знания в наиболее востребованной современными работодателями сфере – информационные технологии, гибко подстраивая учебный процесс под свой ритм жизни. 
В связи с большим количеством лицензионных мест прием документов в магистратуру продлен до 10 сентября! 

Продолжить чтение

28.08.2018

Продолжаем набор в магистратуру в области ІТ!

Кафедра программной инженерии и информационных технологий управления НТУ «ХПИ» продолжает набор в магистратуру на ОП “Программное обеспечение информационных систем” (специальность 126 “Информационные системы и технологии”).
Данная программа – оптимальный вариант для тех, кто хочет “войти в ІТ” не имея базового образования и за 1.5 года получить необходимые навыки для старта успешной карьеры в сфере информационных систем и технологий.


Продолжить чтение

23.08.2018

«Информационные технологии поддержки принятия управленческих решений» – специальность ближайшего будущего

Образовательная программа «Информационные технологии поддержки принятия управленческих решений» (специальность 122 «компьютерные науки») предусматривает подготовку специалистов в области принятия решений в программной инженерии.

Продолжить чтение

19.07.2018

Кафедра ПИИТУ открыла набор на новую перспективную специальность

Сегодня кафедра программной инженерии и информационных технологий управления НТУ «ХПИ» является ведущим образовательным центром в сфере подготовки ІТ-специалистов и регулярно подтверждает этот высокий статус. Именно наша кафедра первая в НТУ «ХПИ» открыла набор на новую перспективную специальность в сфере ІТ – специальность 126 «Информационные системы и технологии».

Продолжить чтение

09.07.2018

На кафедре программной инженерии и информационных технологий управления впервые прошла защита магистров в рамках реализации Программы двойных дипломов НТУ «ХПИ» и Альпен-Адриа университета г. Клагенфурт

Международное сотрудничество с европейскими вузами является важным аспектом деятельности кафедры программной инженерии и информационных технологий управления (ПИИТУ).
Так, например, Альпен-Адриа университет (Alpen-Adria University of Klagenfurt: https://www.aau.at/ ) г. Клагенфурт (Австрия) является один из давних вузов-партнеров кафедры, сотрудничество с которым началось еще в 1998г.


Продолжить чтение

09.07.2018

7-ое заседание межвузовского семинара – обсуждение создания научно-образовательного IТ-сообщества

22 июня 2018 в НТУ «ХПИ» прошло 7-е заседание научно-практического семинара, посвященного актуальным проблемам в области информационных технологий. Заседание было посвящено актуальной инициативе, которая уже получила поддержку украинского IТ-сообщества – созданию украинской научно-образовательной IТ-ассоциации.

Продолжить чтение

04.07.2018

Преподаватели кафедры ПИИТУ приняли участие в международной конференции COLInS’2018

Представители кафедры ПИИТУ приняли участие в конференции Computational Linguistics and Intelligent Systems Conference  (COLInS’2018), которая проходила во Львове 25-27 июня.


Продолжить чтение

02.07.2018

Защита 5 курс

05.06.2018

Профессор Университета Клагенфурта посетила НТУ «ХПИ»

В мае, во время Всеукраинского фестиваля науки, в Национальном техническом университете «Харьковский политехнический институт» прошла XXVI Международная научно-практическая конференция «Информационные технологии: наука, техника, технология, образование, здоровье» (MicroCAD-2018). В рамках конференции НТУ «ХПИ» посетили многие иностранные ученые, в том числе – Ph.D. Bianca Violetta Kos, лектор академической службы Австрии по обмену студентами и преподавателями, которая приехала в НТУ “ХПИ” по приглашению ректората.

Продолжить чтение

04.06.2018

Заведующий кафедрой ПИИТУ принял участие в круглом столе, посвященном Ассоциации ИТ-кафедр.

14 мая в Киеве в рамках международной конференции ICTERI состоялся круглый стол «Ассоциация для ИТ-кафедр украинских вузов», в котором приняли участие сотрудники ведущих образовательных центров Украины. Заведующий кафедрой ПИИТУ д.т.н., проф. Михаил Дмитриевич Годлевский в ходе круглого стола рассказал о положительном опыте участия кафедры ПИИТУ в международном проекте MASTIS, который способствовал взаимодействию вуза с ИТ-индустрией и реализации программ мобильности.

Продолжить чтение

24.05.2018

Иностранные коллеги в гостях на кафедре ПИИТУ

19 апреля 2018 на кафедре ПИИТУ состоялась встреча с доцентом университета Лион 2 (Associate Professor in Computer Science, University of Lyon, Lyon 2, France), участником проекта MASTIS (https://mastis.pro/) Фадилой Бентиба (Fadila Bentayeb).

Продолжить чтение

03.05.2018

Что ждут компании от ІТ-специалистов?

В современном мире требования к работникам любой отрасли достаточно динамичны и, безусловно, в первую очередь, это касается специалистов сфера информационных технологий. Каждый год, а для некоторых направлений даже чаще, меняются запросы ІТ-компаний относительно персонала. Портал DOU провел небольшой опрос украинских IT-компаний о том, какие технологии и навыки будут востребованы в этом году и какие требования будут предъявляться непосредственно к специалистам уровня junior.

Продолжить чтение

02.05.2018
Войти