@rubylang

Страница 157 из 1684
Pavel
07.07.2016
09:46:50
Антон
07.07.2016
09:46:59
inline BDDить не получалось пока

yopp
07.07.2016
09:47:04
ну так ты и написал T(B)DD

я выбираю BDD

Google
Антон
07.07.2016
09:47:15
ну значит T(B?)DD

yopp
07.07.2016
09:47:16
начинать с тестов глупо

я имею ввиду когда у тебя нет идеи сформировашейся

Антон
07.07.2016
09:47:34
начинать с тестов глупо
оу - супер спорное утверждение

yopp
07.07.2016
09:47:49
ты не путай: накидать рабочий класс

и накидать интерфейс класса

Антон
07.07.2016
09:48:11
а я не путаю пока, я не утверждал ничего

yopp
07.07.2016
09:48:21
ты утверждал что спорное утверждение :)

Антон
07.07.2016
09:48:33
начинать с тестов глупо - спорное утверждение

yopp
07.07.2016
09:48:47
начинать с тестов когда ты не понимаешь как оно вообще будет выглядеть — глупо

потому что тестировать ещё нечего

ojab
07.07.2016
09:48:59
начинать с тестов глупо - спорное утверждение
как анте фактум оценить качество тестов?

Google
Michael
07.07.2016
09:49:38
когда я на стадии поиска решения, то я начинаю с кода, а если уже все продуманно и я четко знаю, что я хочу, тогда я начинаю с тестов

ojab
07.07.2016
09:49:45
тесты это код
и? Писать на них тесты для оуенки качества?

yopp
07.07.2016
09:49:49
TDD подразумевает что ты вместе с логикой сразу пишешь тесты

ojab
07.07.2016
09:50:09
гугл даже что-то находит по запросу "рекурсивное тестирование"

yopp
07.07.2016
09:50:23
тесты это штука которая должно помогать тебе определить что всё работает как задумано

я вообще считаю что на уровне приложения юнит-тестирование плохо

на уровне библиотеки да, но тоже под вопросом

нужно тестировать бизнес-логику, а не реализацию, за некоторыми исключениями

Pavel
07.07.2016
09:51:30
У класса реализация это и есть бизнес логика

Если в библиотеке

yopp
07.07.2016
09:51:42
чо

Pavel
07.07.2016
09:52:19
Реализация методов класса - это и есть то чем пользуется бизнес-заказчик программист, который этот класс использует

Pavel
07.07.2016
09:52:45
А под каким вопросом?

yopp
07.07.2016
09:53:06
например если у тебя драйвер в базу данных, я не особо вижу смысла тестировать например сериализатор

потому что если у тебя есть интеграционный тест который лупит в базу, ты и так узнаешь что у тебя что-то сломалось

ojab
07.07.2016
09:53:32
тесты это не самоцель
понятно что не самоцель, но TDD предполагает написание хороших тестов. Формальных критериев для определения качества тестов нет -> TDD is flawed

мне интересно, есть ли какие-то критерии у адепта[-ов] TDD в чяте

Google
yopp
07.07.2016
09:53:52
понятно что не самоцель, но TDD предполагает написание хороших тестов. Формальных критериев для определения качества тестов нет -> TDD is flawed
качественный тест это тот, который атомарно позволяет показать где у тебя конкретно проблема

но это в идеальном мире

в реальном мире, у тебя где-то в одном месте что-то сломалось и всё красное

и откуда конкретно растут ноги ты поймёшь уже сильно позже

ojab
07.07.2016
09:55:01
качественный тест это тот, который атомарно позволяет показать где у тебя конкретно проблема
>я вообще считаю что на уровне приложения юнит-тестирование плохо ну ок

yopp
07.07.2016
09:55:16
интеграционное правильно и нужно

Pavel
07.07.2016
09:55:27
например если у тебя драйвер в базу данных, я не особо вижу смысла тестировать например сериализатор
Тем не менее возможны случаи когда интеграционные тесты у тебя проходят, а сериализатор работает некорректно в ряде случаев. Так что лучше написать тест.

Антон
07.07.2016
09:56:02
Pavel
07.07.2016
09:56:21
Если ты тестируешь два класса одними тестами, то получаешь экспоненциальный рост количества комбинаций для теста.

ojab
07.07.2016
09:56:22
интеграционное правильно и нужно
и как по нему определить где в коде проблема?

yopp
07.07.2016
09:56:49
интеграционное показывает где у тебя в реализации бизнес-логики проблема

я там выше скорее про tdd в контексте юнит-тестов говорил

Антон
07.07.2016
09:57:25
yopp
07.07.2016
09:57:35
но ваще это классическая проблема who will watch the who will watch the watchers

ojab
07.07.2016
09:57:37
мутационное тестирование
что "мутационное тестирование"? Мутационное тестирование — формальный критерий определения качества написанных тестов?

yopp
07.07.2016
09:57:49
(BDD == интеграционное тестирование)?
с натяжкой да, потому что ты тестируешь поведение, а не рализацию

Антон
07.07.2016
09:58:31
ojab
07.07.2016
09:58:37
ок

Google
Антон
07.07.2016
10:00:27
мутационное тестирование быстро объяснило мне что "твой код говно, а тесты ты вообще писать не умеешь"

ojab
07.07.2016
10:00:50
я хз как это приментять в случае интеграционных тестов

про комбинаторный взрыв уже писали, да

Антон
07.07.2016
10:02:11
ну тестируешь ты апишку реквестами мутации скажу тебе какие кейсы не покрыты, к пример а пока ты эти мутации будешь отлавливать, станет понятно где код надо рефакторить

Pavel
07.07.2016
10:03:09
Мутации - они же вероятностные. Т.е. они тебе найдут 99 багов, а сотый - самый критичный - не найдут.

Для написания совсем уж корректного академичного кода тесты не очень то подходят вообще.

Nikolay
07.07.2016
10:04:13
посоны, а присоветуйте мануал по респекам для чайников

для начала в переводе бы

а то чот как-то смотрю я на рспек, полтора теста написал

а панелька - приложение сложное, это вам не бложек на две модели... ладно, три

Admin
ERROR: S client not available

Антон
07.07.2016
10:09:39
Мутации - они же вероятностные. Т.е. они тебе найдут 99 багов, а сотый - самый критичный - не найдут.
ну если ты сервер выключил, когда домой пошел, то мутации не помогут да

100% гарантию никто никогда не даст но это не повод сваливаться в трансцендентализм

Pavel
07.07.2016
10:10:56
Антон
07.07.2016
10:11:36
А вот даст ;) Гугли "формальная верификация"
можно легко ошибиться в формальном описании

Nikolay
07.07.2016
10:11:53
отетовы нагнали

ojab
07.07.2016
10:12:02
хотя branch coverage'a под руби нет, да

Антон
07.07.2016
10:12:36
coverage учитывает, что в кейсе запущен код, только и всего

Google
Pavel
07.07.2016
10:12:58
можно легко ошибиться в формальном описании
Тем не менее, если построено без ошибок, дает 100% теоретическое обоснование правильности программы. Тесты такого просто не дают даже в теории.

Pavel
07.07.2016
10:14:29
Потому что у тебя есть экспоненциальное количество состояний программы, а тесты проверяют единицы из них.

Антон
07.07.2016
10:15:10
Потому что у тебя есть экспоненциальное количество состояний программы, а тесты проверяют единицы из них.
формальная верификация заставит построить всю таблицу состояний - не вижу разницы

Pavel
07.07.2016
10:16:01
Она как раз занимается тем что борется с перебором всех состояний всякими методами, не разрушая теоретическую гарантию правильности.

Таблицу состояний невозможно построить впринципе для хоть сколько-то сложных программ, никакой памяти не хватит.

Nikolay
07.07.2016
10:16:55
посоны, вы там вааще работаете или так, чисто пофилософствовать зашли?:):)

Антон
07.07.2016
10:16:59
посоны, вы там вааще работаете или так, чисто пофилософствовать зашли?:):)
грамотная теория построения эксперимента может сэкономить массу денег :)

ojab
07.07.2016
10:17:57
гм, а что вообще есть живое для mutation testing под руби?

Антон
07.07.2016
10:18:03
mutant

Pavel
07.07.2016
10:18:11
я не очень понимаю как эта теория позволяет дать 100% гарантию
Я не могу ответить в двух словах как, это же целая огроменная сложная наука. https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9

Nikolay
07.07.2016
10:18:17
грамотная теория построения эксперимента может сэкономить массу денег :)
пока вы тут носрале в чатег, я затестил туеву хучу функционала и с заимплементил с десяток фиксов :)

ojab
07.07.2016
10:18:29
Bundler could not find compatible versions for gem "rspec-core": In snapshot (Gemfile.lock): rspec-core (= 3.5.0) In Gemfile: mutant-rspec was resolved to 0.5.0, which depends on rspec-core (~> 2.14.1)

какое-то оно не очень живое

по крайней мере для rspec'a

Andrey
07.07.2016
10:18:50
> @TurnaviotovNikolay респекам https://relishapp.com/rspec/rspec-expectations/v/3-4/docs/built-in-matchers https://semaphoreci.com/community/tutorials/getting-started-with-rspec

Nikolay
07.07.2016
10:19:20
ты мог сделать это очень плохо, и по факту ничего не работает
мог, но я сначала тестирую функционал ручками, чтобы удостовериться что он таки работает так как надо :)

Антон
07.07.2016
10:19:35
релоадишь консоль пол дня?

или браузер

Страница 157 из 1684