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

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

Инструменты qmlscene, QML Profiler и консоль отладки

Введение: Зачем нужна комплексная отладка QML-приложений QML (Qt Modeling Language) представляет собой уникальный синтез декларативного и императивного программирования, что создает специфические вызовы для отладки. В отличие от традиционных UI-фреймворков, QML комбинирует: Эта сложность требует арсенала специализированных инструментов для эффективной отладки. В этом руководстве мы детально рассмотрим три ключевых инструмента: qmlscene для изолированного тестирования, QML Profiler… Читать далее »

Руководство по тестированию QML-приложений: От unit-тестов до интеграционного тестирования UI

Введение: Почему тестирование QML требует особого подхода QML (Qt Modeling Language) представляет собой уникальный гибрид декларативного и императивного программирования, что создает особые вызовы для тестирования. В отличие от традиционных UI-фреймворков, QML-приложения сочетают в себе: Такая архитектура требует многоуровневого подхода к тестированию, который мы детально рассмотрим в этом руководстве. Мы не только рассмотрим инструменты, но и… Читать далее »

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

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

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

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

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

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

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 Поддержка моков/шпионов… Читать далее »