Russian Qt Forum
Ноябрь 25, 2024, 10:16
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
TDD
Страниц: [
1
]
2
3
...
6
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: TDD (Прочитано 38625 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
TDD
«
:
Август 05, 2015, 09:40 »
Добрый день
Вот опять встретил человека который, как я понял, юзает TDD вовсю. Никогда не понимал в чем там кайф. Вику откроешь - ну такая фигня, прости господи. Сначала пишем - тест не проходит, потом еще пишем - проходит. И шо? Не говоря уже о том что выделить кусок для теста часто непросто. Наверное я чего-то не понял, поясните.
Спасибо
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: TDD
«
Ответ #1 :
Август 05, 2015, 09:47 »
Цитата: Igors от Август 05, 2015, 09:40
Не говоря уже о том что выделить кусок для теста часто непросто.
А вот тут вы сами признались, что не умеете писать код.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: TDD
«
Ответ #2 :
Август 05, 2015, 09:59 »
Igors, советую просто почитать книгу по TDD (Кент Бек).
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: TDD
«
Ответ #3 :
Август 05, 2015, 10:05 »
Цитата: Пантер от Август 05, 2015, 09:59
Igors, советую просто почитать книгу по TDD (Кент Бек).
Записан
Tuxford
Гость
Re: TDD
«
Ответ #4 :
Август 05, 2015, 10:20 »
Цитата: Igors от Август 05, 2015, 09:40
Добрый день
Вот опять встретил человека который, как я понял, юзает TDD вовсю. Никогда не понимал в чем там кайф. Вику откроешь - ну такая фигня, прости господи. Сначала пишем - тест не проходит, потом еще пишем - проходит. И шо? Не говоря уже о том что выделить кусок для теста часто непросто. Наверное я чего-то не понял, поясните.
Спасибо
Как фан ТДД скажу какой бенефит.
1. Существенно легче ловить баги.
2. ТДД заставляет писать более гибкий код.
3. В сулачае рефакторинга вещь просто незаменимая.
4. Хотя кода больше приблизительно в 2-3 раза, но в результате, когда проект рарастается, время разработки уменьшается.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: TDD
«
Ответ #5 :
Август 06, 2015, 10:05 »
Цитата: Пантер от Август 05, 2015, 09:59
Igors, советую просто почитать книгу по TDD (Кент Бек).
Ну хорошо, читаю (аттач). Быстро понял что вначале надо "накидать" (часто с заглушками). а потом уж углубляться и разрисовывать каждый класс в деталях. Сам так часто делаю. Но причем здесь какие-то "тесты", откуда они берутся, как создаются? Отдельный проект что ли делать - так это в большинстве случаев нереально.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: TDD
«
Ответ #6 :
Август 06, 2015, 10:10 »
Все в пределах одного проекта. Тесты выносятся в отдельную иерархию подкаталогов (один из подходов). Посмотри Креатор, например.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: TDD
«
Ответ #7 :
Август 06, 2015, 11:04 »
Я так делаю:
Есть отдельные классы для чтения, записи разных форматов файлов. Между ними есть связь в виде абстрактных классов.
Для каждого типа файла создаю тест на чтение и запись.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: TDD
«
Ответ #8 :
Август 06, 2015, 12:03 »
ТДД - вещь, придуманная маркетологами, поскольку легко позволяет вдвое увеличить стоимость проекта для заказчика с аргументами о, якобы, более стабильном и безопасном коде. В действительности же время разработки увеличивается на время поддержки тестов в живом состоянии, что означает, фактически, их переделывание в случае рефакторинга и добавления новых фич. Ну а позитив в том, что фирма, использующая ТДД, создает рабочие места для сотрудников-тестеров, которые будут заниматься только тестами и не отвлекать разработчиков от процесса разработки
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: TDD
«
Ответ #9 :
Август 06, 2015, 13:03 »
У меня только 1 проект с использованием тдд. Но я вижу для себя большой плюс в том, что я могу поменять какую-то функцию в абстрактном классе и быть спокойным, что у меня ничего не порушится в наследниках.
Я вот, не представляю, как бы можно было разрабатывать Qt без тестов. Внесли какие-то изменения в QObject и как дальше быть? Есть гарантии, что библиотека функционирует полностью?
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: TDD
«
Ответ #10 :
Август 06, 2015, 13:07 »
Это называется Regression Tests, немного другая штука. Регрессионные тесты очень важны, естественно. Все уже было придумано до появления бренда TDD
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: TDD
«
Ответ #11 :
Август 06, 2015, 13:56 »
Цитата: Пантер от Август 06, 2015, 10:10
Все в пределах одного проекта. Тесты выносятся в отдельную иерархию подкаталогов (один из подходов). Посмотри Креатор, например.
Я использую др IDE, но и там прицепить файл (или суб-проект) не проблема. Но что писать в файле теста?
Цитата: __Heaven__ от Август 06, 2015, 11:04
Я так делаю:
Есть отдельные классы для чтения, записи разных форматов файлов. Между ними есть связь в виде абстрактных классов.
Для каждого типа файла создаю тест на чтение и запись.
Напр я знаю что в файле записана модель кубика. Значит прочитав его и визуализировав я должен увидеть кубик. Так и я делаю, но причем здесь TDD?
Цитата: __Heaven__ от Август 06, 2015, 13:03
Я вот, не представляю, как бы можно было разрабатывать Qt без тестов. Внесли какие-то изменения в QObject и как дальше быть? Есть гарантии, что библиотека функционирует полностью?
Как говорил мой препод
Цитировать
Для того чтобы проверить схему - надо ее включить. Все что ненужно - выгорит, все что нужно - останется
Если ошибиться в QObject - полезет из всех щелей
Записан
Bepec
Гость
Re: TDD
«
Ответ #12 :
Август 06, 2015, 15:23 »
TDD звучит вкусно, делать его нудно и зачастую неудобно. По крайней мере я не видел ещё IDE, которые позволяли бы делать нормальные TDD без многократного копирования уже готового кода в отдельные проекты.
Нет, простые ф-ции типо прочитать файл и проверить на синтаксис - делаются просто и быстро. А вот вещи из разряда создать объект по каким либо данным, провести над ним операцию и проверить тестом - это уже ад.
Идея хорошая, а вот реализация по TDD замедляет проект раз в 10, если не больше. Вроде бы даёт надёжность, а с другой стороны изменение пары строк в основном проекте тянет за собой изменение всех тестов связанных с этим участком, и иногда отнюдь не на пару строк.
Хотя если писать программу по четкому ТЗ, с полной моделью(архитектурой) кода, прошедшему многократные проверки всеми специалистами - тогда да, тогда TDD даст то, ради чего создан
PS на мой вид это часть Идеальной Программы, именно с больших букв.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: TDD
«
Ответ #13 :
Август 06, 2015, 15:53 »
Цитата: Bepec от Август 06, 2015, 15:23
Идея хорошая, а вот реализация по TDD замедляет проект раз в 10, если не больше. Вроде бы даёт надёжность, а с другой стороны изменение пары строк в основном проекте тянет за собой изменение всех тестов связанных с этим участком, и иногда отнюдь не на пару строк.
Ну, собственно, ради этого ТДД и был придуман - чтобы искусственно завысить себестоимость продукта. Веселые селл-агенты с серьезными лицами распространяют ТДД-литературу, ТДД-методологию, проводят ТДД-семинары и тренинги
Двигают тренд, так сказать. Соответственно косят денюжку. Такой подход не нов - убедить, что это нужно именно ВАМ и именно СЕЙЧАС, а потом подсадить на крючок саппорта. Естественно, внедрять ТДД на фирме или нет - решают не разработчики, а верхний менеджмент. Кто-то за откат, кого-то охмурили "надежным кодом на выходе". Соответственно тратятся ресурсы в Х раз больше, чем обычное регресионное тестирование без ТДД. Это бизнес, ничего личного
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Bepec
Гость
Re: TDD
«
Ответ #14 :
Август 06, 2015, 16:10 »
Таки да, забыл ещё упомянуть, что нужно проверять не только работу программы, но и работу тестов и охват тестов. А чтобы тестить тесты нужны тесты и так далее
Записан
Страниц: [
1
]
2
3
...
6
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...