Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Результаты опроса: Опрос по TDD
Пользуюсь TDD на клиенте и буду пользоваться 1 2.94%
Пробовал, но отказались 6 17.65%
Не пробовал, но хочу попробовать 21 61.76%
Нет и не буду 4 11.76%
Иногда использую 2 5.88%
Голосовавшие: 34. Вы ещё не голосовали в этом опросе

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.10.2012, 19:00
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 1  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
По умолчанию Автоматизированное тестирование.

В наших проектах есть серверная и клиентская часть.
Команды которые пишут сервер и клиента разные, работают вместе и сидят рядом вместе. Серверсайд адепты TDD, и у них это отлично получается в том числе утечки памяти и прочее. Соответственно баги на сервере находятся крайне редко.

На клиенте у нас творится полный раздрай. Автоматического тестирования нет никакого, всё проверяется тупо ручками. Когда фича сделана она идёт на тест, там её также руками тестят, если что возвращают на доработку. Если мы изменяем функционал какой-то, который затрагивает всю игру, то приходится ретестить многое заново.
Если вы используете TDD, то пользуете ли вы какие-то фреймвёрки или всё сами написали? UI отдельно, или UI и контроллеры вместе. Как вообще вы это дело оцениваете.

В опросе следует читать TDD вместо TTD
iNils: Исправил, заодно добавил пункт "Иногда использую"
__________________
:)


Последний раз редактировалось iNils; 09.10.2012 в 16:34.
Старый 08.10.2012, 19:53
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 2  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Дело в том, что ТДД легко можно покрыть синхронную логику. Писать тесты для асинхронов - это сложно. Ошибки возникают не во время компиляции и запусков тестов, а при взаимодействии. Во всяком случае нам никак не помогли. Да и писать их муторно. Для того чтобы запустить набор юнит-тестов на сборочном сервере (через тот же Team-city) - нужно делать специальное тестовое окружение - эмулировать действия пользователя, дожидаться загруки (или не загрузки), потом повторять всё по-новой..
Для каких-то простых вещей можно, но в них никто и не ошибается практически.
__________________
Отряд Котовскага

Старый 08.10.2012, 20:05
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 3  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Опытным путем установлено, что бета-тестирование рулит.

Несколько сотен бета-тестеров поверх собственного багтрекера, интегрированного в клиента, который дает возможность тестеру отправить сообщение об ошибке (лог работы клиента подцепляется автоматически), плюс автоматическая же отправка логов в случае, если клиент получил от сервера не тот ответ, который ожидал.

Старый 08.10.2012, 20:09
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Вики со мной согласна.
Как раз, почти все случаи относятся к основным моментам разработки flash приложений. Гуи, интерактивность, ассинхронность, сетевое взаимодействие.
2 + 2 = 4 можно проверить, но обычно такие вещи проверяются легко и без тестов.
__________________
Отряд Котовскага

Старый 08.10.2012, 20:46
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 5  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Я вот не давно работал на одной фирме, где используя такой же самый подход как и топикстартера, пару раз завалили на столько, что некоторые пользователи даже тутор пройти не могли. Тогда и задумались о ТДД, которые симулировали зотя бы некоторую последовательность действий пользователя. искали тулзы, что то находили, но в результате это ни к чему не привельно. Свое писать не захотели.
__________________
ranga

Старый 08.10.2012, 23:49
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Я когда-то писал робота клиента, который бы делал все то же самое, что может сделать обычный пользователь. Из чего почерпнул следующее:
- это дофигища работы. В моем случае, я фактически переписал большую часть веб сервера по-новому для того, чтобы оно заработало, т.как оригинальный веб сервер не подходил по многим параметрам.
- даже на начальных этапах это помогает найти массу упущений на обоих сторонах. Но может оказаться так, что упущений на столько много, и они такие фундаментальные, что исправлять их в обозримом будущем не будут.
Вобщем, до реального использования никогда так и не дошло.
Примеры конфликтных ситуаций:
Нештатное поведение клиента может свалить сервер - нужно что-то придумать, чтобы клиент автоматически мог его перезапустить.
Желательно имитировать работу множества клиентов одновременно - нужна инфраструктура для того, чтобы на одной машине можно было это множество как-то запустить.
На сервере нужно вменяемое логгирование исключительно для тестов, и так же на клиенте. Логгирование из флеша - это цирк тот еще... Флеш вообще не в состоянии быстро логи высылать никуда, ни в трейс ни в сокет, ни через EI.
Я пришел к тому, что писал целый скриптовый язык для того, чтобы описать поведение клиентов-ботов. Я даже где-то выкладывал полу-рабочую версию... кстати, о, надо бы допилить когда-нибудь
Последнее - вобщем-то интересное занятие, но отнимает безумно много времени.
__________________
Hell is the possibility of sanity

Старый 09.10.2012, 10:58
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 7  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Сервер наших продуктов практически на 100% покрыт тестами. И для разработки сервера тесты реально экономят время. Хоть и писать кода приходится больше, но экономия времени очень существенная (в основном она берется за счет отсутствия неявных багов и ошибок, и, соответственно, очень маленького времени на отладку)

Клиентскую часть покрываем тестами только в опасных местах, в основном взаимодействие с сервером и ядро (что называется framework). Вообще, согласен с Котом, клиент очень тяжело тестировать в силу асинхронности, потому чаще это оказывается неоправданным занятием.

А по теме, очень интересно услышать мнение товарища expl. Я когда-то у него интересовался тестами.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 09.10.2012, 13:03
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Дело в том, что ТДД легко можно покрыть синхронную логику. Писать тесты для асинхронов - это сложно.
Прикол в том, что тестирование асинхрона в большинстве случаев легко сводится к синхрону (я вообще не пишу асихронные тесты, хотя тестировал кучу клиентских асинхронных вичислений, разворачивающихся во времени)

(Речь про unit-тесты, т.е. про покрытие отдельных проблемных кусков)

P.S. Добавь пункт "Использую в полсилы, отказываться не собираюсь"


Последний раз редактировалось expl; 09.10.2012 в 13:13.
Старый 09.10.2012, 13:32
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 9  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Цитата:
Прикол в том, что тестирование асинхрона в большинстве случаев легко сводится к синхрону
Легко это как?
__________________
http://www.chessmax.ru

Старый 09.10.2012, 16:01
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 10  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Подменяешь таймер или Datе или Loader (или ещё что-то, с чем работает класс под тестом) на заглушку, с помощью которой синхронно имитируешь асинхронную работу. И тест легче читается и работает быстрее и срабатывает всё время одинаково, и точность выше, если от промежутков времени результат должен зависеть.

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.