Архив рубрики: Тестирование

Различные методы тестирование в языке c++

Модульное, интеграционное и системное тестирование в C++

Тестирование — критически важная часть разработки программного обеспечения, особенно в C++, где ручное управление памятью и сложные абстракции могут приводить к трудноуловимым ошибкам. В этой статье мы рассмотрим три основных уровня тестирования: модульное, интеграционное и системное, их особенности и реализацию в C++. 1. Модульное тестирование (Unit Testing) Модульное тестирование — это проверка отдельных компонентов (модулей) программы… Читать далее »

Шаблон CMake-проекта с переключениями библиотеками тестирования

Этот шаблон проекта позволяет легко переключаться между различными фреймворками тестирования в C++/Qt: Структура проекта (предполагаемая) Шаблон Как собрать

Подключение популярных фреймворков тестирования к Qt-проекту

Qt поддерживает встроенное тестирование через QTest, но при разработке на C++ часто возникает необходимость использовать внешние фреймворки: Google Test, Catch2, Doctest, Boost.Test. В этой статье сравниваются и описываются способы их подключения к проекту на Qt (с использованием CMake и qmake). Общие условия Для всех фреймворков тестирования предполагается: 1. QTest — встроенный фреймворк Qt Подключение: qmake:… Читать далее »

QSignalSpy vs Mocks: Сравнение подходов к тестированию сигналов в Qt

Сравнение подходов Характеристика QSignalSpy Моки (например, Google Mock) Цель Отслеживание вызова сигналов Проверка вызова методов, поведения объектов Сфера применения Qt-ориентированные проекты (QObject) Общий C++ (без привязки к Qt) Проверка сигналов Да (встроено) Нет напрямую, но можно проверить вызов слотов Тип контроля Пассивное наблюдение за сигналом Активная проверка вызова метода, через ожидания Работает с сигналами/слотами Да… Читать далее »

QSignalSpy — инструмент для тестирования сигналов в Qt

QSignalSpy — мощный класс из модуля QtTest, который используется для отслеживания сигналов во время юнит-тестирования. Он позволяет проверить, был ли сигнал отправлен, сколько раз, с какими аргументами и в каком порядке. Назначение Когда вы пишете юнит-тесты в Qt, часто возникает необходимость убедиться, что сигнал был сгенерирован, например: В таких случаях QSignalSpy заменяет ручное подключение сигналов… Читать далее »

QTest — модульное тестирование в Qt

Введение Разработка качественного программного обеспечения невозможна без тестирования. В рамках экосистемы Qt предлагается встроенная система модульного тестирования — QTestLib, также известная просто как QTest. Это мощный и легкий инструмент, позволяющий создавать юнит-тесты для C++-приложений, построенных с использованием Qt. Он интегрирован с Qt Creator и может использоваться с системами CI/CD. В этой статье мы рассмотрим: Что… Читать далее »

Сравнение популярных фреймворков для тестирования на C++

Введение C++ — мощный язык, но слабо оснащён встроенными средствами тестирования. К счастью, существует множество сторонних фреймворков, упрощающих написание и выполнение тестов. Они различаются по стилю, функциональности, сложности и скорости. В этой статье мы сравним наиболее популярные фреймворки: Критерии сравнения Критерий Описание Простота использования Насколько легко начать работу Стиль синтаксиса Макросы, декларативность, BDD Поддержка моков/шпионов… Читать далее »

Тестирование в языке C++: подходы, библиотеки

Введение C++ — язык системного программирования, который широко используется в высокопроизводительных приложениях, включая игры, финансовые системы, операционные системы и встроенное ПО. В таких системах ошибки могут дорого обойтись, поэтому тестирование — неотъемлемая часть разработки. В этой статье мы рассмотрим: Зачем нужно тестирование? C++ не имеет встроенного фреймворка для тестирования (как, например, Python или Java), но… Читать далее »