16.09.2014, 17:26
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
мне просто надоело тратить время на сидение в отладчике и "клик-клик" тестинг и я хотел бы этот процесс ускорить
|
Дык, пиши тесты, т.к. это действительно добро, но TDD говорит нам: "спроектируй интерфейс, напиши тест всех возможных вариантов применения, а уже потом делай реализацию", но на практике если мы пишем что-то чуть более-менее сложное, что в процессе реализации интерфейс метода может поменяться очень много и если следовать концепции TDD, то мы просто затрахаемся и в итоге плюнем
И не старайся покрыть весь код, т.к. это тоже бред и утопия. Вот к примеру в Collection сейчас более 1000 тестов, но это капля в море, т.к. для 100% покрытия всех-всех возможностей нужно примерно 1e6 тестов (число взято из комбинаторики).
Фиксировать тестами нужно уже финальный функционал на предмет основных фич, но самое главное, что действительно очень важно: когда фиксишь баг, то обязательно напиши тест, чтобы в будующем этот баг не вернулся бумерангом.
Цитата:
|
Кстати, чем концепция TDD отличается от обычного программирования?
|
Ответил выше.
Цитата:
|
Может я что-то странное делаю, но чаще всего в коде, который я пишу либо невозможно сразу эмулировать адекватный тест, либо настолько сложно, что он становиться бессмысленным.
|
Практика подсказывает, что даже самый упоротый тест можно смодулировать, но порой приходится городить такие адские фасады, что действительно 90% людей просто забивает, и я например не исключение
Цитата:
|
то же самое относится и к BDD, полагаю?
|
Может я что то не так понимаю, но ведь BDD - это подход к самому написанию тестов, а не философия разработки, как TDD, т.е. в таком случае BDD - это просто сахар над банальным тестом.
|
|
16.09.2014, 17:48
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от kobezzza
|
даже самый упоротый тест можно смодулировать
|
Только если точно понимаешь проблему, к сожалению это не всегда так. Я пишу тесты, когда это нужно и возможно. В остальном я с тобой полностью согласен.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
16.09.2014, 18:48
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от WorM32
|
Так пиши тесты на взаимодействие с GUI
|
это e2e которые (selenium)? трудно начать разработку проекта с этих тестов. да и работают чёт медленно - 5 секунд на "пустышку-тест" и режима watch нет
Сообщение от WorM32
|
Для автоматизации удобно юзать Karma и PhanthomJS. Тесты запускаются во время отправки коммита и отправка фейлится, если какой либо из тестов провалился.
|
уже но с chromeOnly (не фантомом)
осталось понять, как же эти тесты хорошо писать)
Сообщение от kobezzza
|
Дык, пиши тесты, т.к. это действительно добро, но TDD говорит нам: "спроектируй интерфейс, напиши тест всех возможных вариантов применения, а уже потом делай реализацию", но на практике если мы пишем что-то чуть более-менее сложное, что в процессе реализации интерфейс метода может поменяться очень много и если следовать концепции TDD, то мы просто затрахаемся и в итоге плюнем
И не старайся покрыть весь код, т.к. это тоже бред и утопия. Вот к примеру в Collection сейчас более 1000 тестов, но это капля в море, т.к. для 100% покрытия всех-всех возможностей нужно примерно 1e6 тестов (число взято из комбинаторики).
Фиксировать тестами нужно уже финальный функционал на предмет основных фич, но самое главное, что действительно очень важно: когда фиксишь баг, то обязательно напиши тест, чтобы в будующем этот баг не вернулся бумерангом.
|
понял, TDD слишком сильно давит
ну а вообще подход спроектируй интерфейс, напиши тест всех возможных вариантов применения, а уже потом делай реализацию - он работает ? если не во вред использовать - я имею в виду то, что число тестов (покрытие) меняется и обратно пропорционально уровню компонента (ниже уровень, больше тестов) ? как считаете?)
про покрытие понял - гнаться не стоит.. тут по-моему уже сам инстинктивно понимаешь, нужен тест для ветвления или нет
про баги усвоил - по-моему, один из самых лучших случаев использования тестов
|
|
16.09.2014, 19:28
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
ну а вообще подход спроектируй интерфейс, напиши тест всех возможных вариантов применения, а уже потом делай реализацию - он работает ?
|
Работает, но это ОЧЕНЬ утомительно, когда я пытался практиковать TDD, то перестал чувствовать радость от программирование и понимал, что превратился в секретаршу Тут нужны стальные нервы и дисциплинированность. К тому же TDD сильно затягивает сроки, поэтому в компаниях его редко практикуют, или практикуют, но только в критически важных местах.
Последний раз редактировалось kobezzza, 16.09.2014 в 19:33.
|
|
16.09.2014, 19:35
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
1. Пишу тесты на небольшие части программы, те, которые могут жрать память или еще что-то подобное.
2. Пишу тесты при проектировании fj элементов (см. п. 1)
Написание же тестов просто "потому", для меня странное занятие. С другой стороны попробуй попиши, может ты найдешь это важным, если у тебя конечно время есть .
По поводу тестирования у меня мнение, что разрабатывать должен один, а тестировать другой. Т.к. разработчик действует согласно своему мышлению и тесты его будут заведомо пристрастными. Для теста нужен ещё один взгляд. Обычно всплывает много интересного при тестах другим человеком, даже то, что в голову не могло прийти.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 16.09.2014 в 19:37.
|
|
17.09.2014, 09:11
|
Профессор
|
|
Регистрация: 11.02.2014
Сообщений: 303
|
|
Сообщение от Gozar
|
По поводу тестирования у меня мнение, что разрабатывать должен один, а тестировать другой. Т.к. разработчик действует согласно своему мышлению и тесты его будут заведомо пристрастными. Для теста нужен ещё один взгляд. Обычно всплывает много интересного при тестах другим человеком, даже то, что в голову не могло прийти.
|
Руками тестировать должны тестировщики, а писать автоматические тесты должны разработчики)
|
|
17.09.2014, 10:07
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
WorM32,
КЭП?!
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
29.10.2014, 21:14
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Я вот недавно начал разбираться с этим вашим тестированием и выбираю какую библу для этого использовать. Пока остановился на jasmine, mocha, chai.
Можете прорекламировать то, что используете?) Хотелось бы узнать + и - выбранной библиотеки.
|
|
29.10.2014, 21:50
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Я юзаю Jasmine, всем доволен.
|
|
29.10.2014, 22:04
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza, как и на чем писать тесты для ноды?)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
TDD + JavaScript |
jetli13 |
Общие вопросы Javascript |
0 |
19.02.2010 15:55 |
|
|
|