Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 74, средняя оценка - 4.92
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
#1

С++ Unit Test (модульное тестирование) - C++

06.02.2012, 22:42. Просмотров 9686. Ответов 48
Метки нет (Все метки)

Вопроса по сути два.
1. что используете для модульного тестирования и почему отдаете этому предпочтение.
2. если используете eclipse, то очень интересует процесс конфигурирования eclipse для работы с фрэймворком тестирования.

Почему задаю вопрос... Гуглю неделю на предмет поиска данной инфорации. И прихожу в недоумение от того что 90% статей которые удалось найти не моложе 2010 года.. Как результат не могу найти нормального объяснения процесса конфигурирования IDE и фреймворка.
Я читал про : googletest, cpptest, boost.test.
к сожалению ни одну из них не удалось по человечески настроить. вроде что-то работает.. но как-то частично.. то на библиотеки ругань... то якобы не подключены пути...

Буду честен... у меня конкретный мозг оверфлоу.... я топчусь на месте. Буду благодарен за помощь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 22:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ Unit Test (модульное тестирование) (C++):

Нагрузочное, модульное, интеграционное тестирование - C++
Здравствуйте, в рамках практики нужно сделать нагрузочное, модульное, интеграционное тестирование своего проекта в C++, но опыта ни...

Написать функцию TEST(A,k) - C++
Написать функцию TEST(A,k), принимающую значение True, если се элементы k-й строки четные и положительные.

Unit - C++ Builder
У мя такой вопрос: Можно ли прасмотреть весь код приложения в одном файле, приложение написано на С++ Builder 6, если да, то как он...

Unit - C++ Builder
Плиз помогите подключить модуль Delphi 7 в С++ Builder 6 и как его обьявить в проекте т.е. у мя есть модуль Delphi который шифрует...

Проблемы с использованием 2-х Unit - C++ Builder
Есть 1 форма и 2 юнита. Unit1 основной, а Unit2 добавлен. К переменным Unit1 могу обратиться только так RJW->Xback, а на прямую не...

Вызов Unit'a по кнопке - C++ Builder
Привет, есть два unit'a один с формой другой нет. 1)Unit #include <vcl.h> #include <Winsock2.h> #include <Windows.h> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17809 / 6019 / 388
Регистрация: 30.03.2009
Сообщений: 16,535
Записей в блоге: 26
07.02.2012, 22:26 #31
А если с другой стороны подойти? Что за программу ты пишешь (к которой хочешь организовать тестирование)?

Добавлено через 2 минуты
Цитата Сообщение от niXman Посмотреть сообщение
системы тестирования
Грубо говоря, это то, что делает вот этот скрипт Создание системы тестирования ПО.?
0
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.02.2012, 22:34 #32
грубо говоря - да.

Добавлено через 4 минуты
ну ооочень грубо...
0
Evg
Эксперт CАвтор FAQ
17809 / 6019 / 388
Регистрация: 30.03.2009
Сообщений: 16,535
Записей в блоге: 26
07.02.2012, 22:41 #33
Цитата Сообщение от niXman Посмотреть сообщение
ну ооочень грубо...
Наверное вопрос нужно было поставить как "делает, грубо говоря, то же самое"

В своё время мне стало интересно, как гуёвые программы люди тестируют Тестирование gui'ёвых программ, но понимания так и не появилось. Вот при помощи указанных выше нанотехнологий (cppunit, boost.test и т.п.) можно как-то оттетировать, к примеру, браузер. Т.е. возможно ли в автоматическом режиме оттестировать ситуацию типа того, что java-applet работает корректно?
0
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.02.2012, 23:00 #34
Цитата Сообщение от Evg Посмотреть сообщение
Вот при помощи указанных выше нанотехнологий (cppunit, boost.test и т.п.) можно как-то оттетировать, к примеру, браузер. Т.е. возможно ли в автоматическом режиме оттестировать ситуацию типа того, что java-applet работает корректно?
нет. ГУЙ тестируется совсем другими технологиями/способами.

cppunit, boost.test - для тестирования примитивов (классы/функции). и чем мельче эти примитивы - тем точнее/проще и предсказуемее (хз как склоняется это слово) результаты.

Добавлено через 3 минуты
сталкивался с QtTest. не понравилось. но это наверное из-за моей предвзятости к Qt. кутешники же, восхищаются этим)
0
Evg
Эксперт CАвтор FAQ
17809 / 6019 / 388
Регистрация: 30.03.2009
Сообщений: 16,535
Записей в блоге: 26
07.02.2012, 23:06 #35
Цитата Сообщение от niXman Посмотреть сообщение
cppunit, boost.test - для тестирования примитивов (классы/функции). и чем мельче эти примитивы - тем точнее/проще и предсказуемее
Понятно. Т.е. оно используется только для отдельных узлов программы (как я уже писал выше, на мой взгляд таких узлов в среднестатистической программе не так уж и много)
0
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.02.2012, 23:09 #36
Цитата Сообщение от Evg Посмотреть сообщение
Т.е. оно используется только для отдельных узлов программы
да.

Цитата Сообщение от Evg Посмотреть сообщение
на мой взгляд таких узлов в среднестатистической программе не так уж и много
а по моему, на оборот..
0
Evg
Эксперт CАвтор FAQ
17809 / 6019 / 388
Регистрация: 30.03.2009
Сообщений: 16,535
Записей в блоге: 26
07.02.2012, 23:21 #37
Тогда ТС'у хотелось бы ответить на его вопрос следующим образом. Не столь важно какую конкретную технологию для этих дел использовать, сколько важен выбор того, что и как тестировать
0
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
08.02.2012, 01:04  [ТС] #38
Цитата Сообщение от Evg Посмотреть сообщение
Тогда ТС'у хотелось бы ответить на его вопрос следующим образом. Не столь важно какую конкретную технологию для этих дел использовать, сколько важен выбор того, что и как тестировать
Я это понимаю и собираюсь как раз писать тесты для классов и в частности их методов. ГуЁвые приложения пока тестировать не собираюсь. Выбор технологии, для меня, важен хотя бы потому что она должна быть актуальна и должна поддерживаться производителем. Я например не уверен что CxxTest в состоянии поддерживать в полной мере новый стандарт С++. Просто потому что его вроде как уже не развивают.
Цитата Сообщение от Evg Посмотреть сообщение
на мой взгляд таких узлов в среднестатистической программе не так уж и много
если не брать программы студентов с этого форума то на мой взгляд их там туева хуча.
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
08.02.2012, 01:11 #39
Цитата Сообщение от greeezz Посмотреть сообщение
если не брать программы студентов с этого форума то на мой взгляд их там туева хуча.
вообщемто говоря, при хорошем процессе - это покрытие юнит-тестами большей части проекта
0
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
08.02.2012, 01:22  [ТС] #40
Цитата Сообщение от alex_x_x Посмотреть сообщение
вообщемто говоря, при хорошем процессе - это покрытие юнит-тестами большей части проекта
Покрытие кода проекта тестами, на мой взгляд должно быть обоснованным и резонным. Уверен что все зависит от проекта и что пословица “Кашу маслом не испортишь” применима к модульному тестированию.
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.02.2012, 23:51 #41
Цитата Сообщение от greeezz Посмотреть сообщение
Уверен что все зависит от проекта и что пословица “Кашу маслом не испортишь” применима к модульному тестированию.
Если требования к проекту динамически изменяются, вероятно, придется переписывать и большую кучу тестов Так что все должно быть в меру.
0
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,370
14.02.2012, 13:15 #42
Гм. А как тогда, не переписывая тестов или не имея их вообще, ты подтвердишь, что некоторое требование действительно выполняется, и при этом выполняется правильно?
На любое требование должны быть один или несколько методов проверки. Это относится не только к высокоуровневым требованиям (описанным в ТЗ), но и к более низкоуровневым - в спецификации модуля и/или класса, и/или функции.
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
14.02.2012, 21:06 #43
Цитата Сообщение от CheshireCat Посмотреть сообщение
Гм. А как тогда, не переписывая тестов или не имея их вообще, ты подтвердишь, что некоторое требование действительно выполняется, и при этом выполняется правильно?
На любое требование должны быть один или несколько методов проверки. Это относится не только к высокоуровневым требованиям (описанным в ТЗ), но и к более низкоуровневым - в спецификации модуля и/или класса, и/или функции.
Я про то, что не надо загоняться и всегда стремиться к 100% покрытию кода тестами. Это лишнее.
0
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
14.02.2012, 21:46  [ТС] #44
Цитата Сообщение от fasked Посмотреть сообщение
Если требования к проекту динамически изменяются, вероятно, придется переписывать и большую кучу тестов Так что все должно быть в меру.
...
Я про то, что не надо загоняться и всегда стремиться к 100% покрытию кода тестами. Это лишнее.

Думаю что требуется внести уточнение. Когда вы говорите о динамическом изменении проекта то что это значит ? что вы собираетесь переписать его половину? Это уже не динамическое изменения а практически новый проект в таком случае.
Если по существу ....
Что такое модульное тестирование. В первую очередь это тестирования не всего проекта одним тестом. А тестирование его компонентов (читай, методов, классов например). Как вы пишете код? Вы создаете классы, описываете поведение каждого класса. Каким вы стремитесь писать ваши классы ? Верно.. Переиспользуемыми. Почему? Потому что это одна из основ ООП.
Отсюда следует. Если вы вносите изменение в часть проекта то вы не будете переписывать все тесты и даже не большую их часть. Вы перепишите тесты которые тестируют то что вы меняете и не более. Конечно если код ваших классов зависит от кода других ваших классов... вот тут уже проблема и надо менять подход к имплиментации ваших идей.
Поймите правильно. Всем что написано выше я не хотел сказать что ЭТО ВЫ делаете неправильно. Мне лишь показалось что мы говорим об одних вещах но только разными словами.
0
fasked
15.02.2012, 15:37     С++ Unit Test (модульное тестирование)
  #45

Не по теме:

Цитата Сообщение от greeezz Посмотреть сообщение
Думаю что требуется внести уточнение. Когда вы говорите о динамическом изменении проекта то что это значит ? что вы собираетесь переписать его половину? Это уже не динамическое изменения а практически новый проект в таком случае.
Если по существу ....
Что такое модульное тестирование. В первую очередь это тестирования не всего проекта одним тестом. А тестирование его компонентов (читай, методов, классов например). Как вы пишете код? Вы создаете классы, описываете поведение каждого класса. Каким вы стремитесь писать ваши классы ? Верно.. Переиспользуемыми. Почему? Потому что это одна из основ ООП.
Отсюда следует. Если вы вносите изменение в часть проекта то вы не будете переписывать все тесты и даже не большую их часть. Вы перепишите тесты которые тестируют то что вы меняете и не более. Конечно если код ваших классов зависит от кода других ваших классов... вот тут уже проблема и надо менять подход к имплиментации ваших идей.
Поймите правильно. Всем что написано выше я не хотел сказать что ЭТО ВЫ делаете неправильно. Мне лишь показалось что мы говорим об одних вещах но только разными словами.
Такое чувство, что в куче этих слов меня таки назвали идиотом.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2012, 15:37
Привет! Вот еще темы с ответами:

включить один unit к другому - C++ Builder
блин сижу туплю...никак не найду! как это сделать, есть два unit: unit1.cpp, unit1.h unit2.cpp, unit2.h один главный, в другом функции ,...

Включение в проект нового Unit - C++ Builder
Всем привет! Проблемма состоит в том, что при подключении в проект новой Unit, с именем "Unit2", в которой создан ноывй класс...

Обозначить функцию в пустом Unit - C++ Builder
Создал новый юнит (отдельно для сетевых функций), создал динамически сокет, объявляю функции , а он ... E2034 Cannot convert...

Unit -тестирование или автоматизированное тестирование - Программирование Android
Доброго времени суток. Я программирую «для себя» второй год, на выходе получаются разного рода приложения от постоянно подающих с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.02.2012, 15:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru