---
title: Тестирование в C++
seo:
  description: >-
    Тема «Тестирование в C++» для собеседования C++ Developer. Что такое TDD?
    Для чего нужны модульные тесты?
  title: Тестирование в C++ — C++ Developer
---

[Все темы C++ Developer](/prep/c-developer)

## <strong>Что такое TDD?</strong> [#q-14bee738d69b81dfb1dfd9892400620c]

<code>TDD</code>
<code>
  &#40;Test&#45;Driven Development&#44; разработка через тестирование&#41;
</code>
— это методология разработки программного обеспечения, которая включает в себя
написание тестов до разработки самого кода функции или модуля. Процесс
<code>TDD</code> состоит из трёх основных этапов&#58;

1. <strong>Написание теста</strong>&#58; Сначала разработчик пишет тест, который
   описывает ожидаемое поведение или функционал, который ещё не реализован в
   коде.

1. <strong>Реализация функционала</strong>&#58; Затем пишется минимально
   необходимый код, чтобы тест проходил успешно.

1. <strong>Рефакторинг</strong>&#58; После успешного прохождения теста код
   оптимизируется с сохранением его функциональности, чтобы улучшить его
   структуру и читаемость.

Цикл повторяется для каждой новой функциональности или улучшения, что позволяет постепенно наращивать и поддерживать высокое качество кода. <code>TDD</code> помогает предотвратить возникновение ошибок, упрощает поддержку и модификацию кода, а также поддерживает высокое покрытие кода тестами.

:::note[Ссылки для изучения]

1. [ISTQB: разработка на основе тестов (TDD), раздел2.1.3](https://www.rstqb.org/files/content/rstqb/downloads/ISTQB%20Downloads/ISTQB_CTFL_Syllabus-v4.0.1-RU-1.pdf#page=27)
2. [TDD и модульные тесты. ITVDN, с 0:10](https://www.youtube.com/watch?v=IaU6UAdEsjk&t=10s)

:::

---

## <strong>Для чего нужны модульные тесты?</strong> [#q-14bee738d69b813f8fe6eb762df1efdf]

Модульные тесты используются для проверки корректности работы отдельных компонентов программы, таких как функции или классы, в изоляции от остальной системы. Они помогают обнаруживать ошибки на раннем этапе разработки, облегчают рефакторинг кода, служат документацией для <code>API</code> и способствуют улучшению архитектуры программного обеспечения.

:::note[Ссылки для изучения]

1. [ISTQB: компонентное и интеграционное тестирование, раздел2.2.1](https://www.rstqb.org/files/content/rstqb/downloads/ISTQB%20Downloads/ISTQB_CTFL_Syllabus-v4.0.1-RU-1.pdf#page=30)
2. [TDD и модульные тесты. ITVDN, с 0:10](https://www.youtube.com/watch?v=IaU6UAdEsjk&t=10s)

:::

---

## Чем модульные тесты отличаются от интеграционных? [#q-14bee738d69b81209d98f8a261f75340]

Модульные тесты проверяют отдельные компоненты программы в изоляции, чтобы убедиться, что каждый компонент работает как ожидается. Интеграционные тесты, в отличие от модульных, проверяют взаимодействие между различными компонентами или системами, чтобы удостовериться, что они корректно работают вместе. Интеграционные тесты помогают выявить проблемы в соединениях и взаимодействиях, которые модульные тесты не покрывают.

:::note[Ссылки для изучения]

1. [ISTQB: компонентное и интеграционное тестирование, раздел2.2.1](https://www.rstqb.org/files/content/rstqb/downloads/ISTQB%20Downloads/ISTQB_CTFL_Syllabus-v4.0.1-RU-1.pdf#page=30)
   :::
