Я тут ввязался в очередной (приватный по аське) срач статика-динамика, аргументов за динамику не услышал, но услышал аргумент из серии "не всё так плохо": нормальные мол люди тесты сами не пишут, а генерят автоматически с помощью спец тулзов, например:
Может стоит на QuickCheck сразу ссылку дать?
BTW Quviq (и Джон Хьюз там CEO) продаёт QuickCheck под динамический Эрланг.
Кстати, непонятен, конкретный вопрос, о котором высказываться, или просто "пишите, что хотите"?
Re[2]: Автоматические генераторы тестов - это чё вообще и как?
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Курилка, Вы писали:
К>>Может стоит на QuickCheck сразу ссылку дать?
N>Говорят, PropEr кроет его как бык овцу. Знакомые используют, хвалят.
PropEr под Haskell?!
Re[4]: Автоматические генераторы тестов - это чё вообще и как?
Здравствуйте, Курилка, Вы писали:
К>>>Может стоит на QuickCheck сразу ссылку дать? N>>Говорят, PropEr кроет его как бык овцу. Знакомые используют, хвалят. К>PropEr под Haskell?!
Под Erlang (и не только). Вы зачем-то смотрите только хаскельную версию, но это не единственная.
The God is real, unless declared integer.
Re[5]: Автоматические генераторы тестов - это чё вообще и как?
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Курилка, Вы писали:
К>>>>Может стоит на QuickCheck сразу ссылку дать? N>>>Говорят, PropEr кроет его как бык овцу. Знакомые используют, хвалят. К>>PropEr под Haskell?!
N>Под Erlang (и не только). Вы зачем-то смотрите только хаскельную версию, но это не единственная.
Обычно читают, на что отвечают, не?
Я и хаскельную привёл, и указал на эрланговую, но в ответе ссылка именно на исходную хаскельную, так что, про "зачем-то" вопрос отнюдь не ко мне
Re[5]: Автоматические генераторы тестов - это чё вообще и как?
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Курилка, Вы писали:
К>>PropEr под Haskell?!
N>Под Erlang (и не только). Вы зачем-то смотрите только хаскельную версию, но это не единственная.
BTW, можно ссылки про PropEr "не только под Erlang"?
Re[2]: Автоматические генераторы тестов - это чё вообще и как?
Здравствуйте, Курилка, Вы писали:
К>или просто "пишите, что хотите"?
Ну в общем да, но желательно не названия конкретных продуктов перечислять, а обсуждать сам принцип как таковой. Откровенно говоря, я пока ещё даже не начинал разбираться, что они могут и границы их применимости, но как известно, чтение хорошего обсуждения товарищей с опытом реального использования даст больше информации, чем делание туториалов.
Априори я настроен скептически: подобного рода тулза не способна действовать разумно и должна компенсировать отсутствие качества количеством. Она может, допустим, анализировать код и покрывать, к примеру, все if-ы, но в случаях "bottom-up" (фактически интеграционного тестирования) это теряет всякий смысл — количество тестов зашкалит за все разумные пределы. А уж если тестировать с базой, как я люблю (честный "bottom up")... Откуда она возьмёт хоть какой снимок данных, не говоря уже о снимке полезном? В обратную по SQL-запросам (которые её придётся восстанавливать, они тоже могут быть динамически конструируемыми с кучей if-ов и for-ов) восстановит все возможные наборы состояний? Во-первых, не верю, пупок надорвётся у разработчиков таких тулзов. Во-вторых, никаких RAID-массивов не хватит.
Re: Автоматические генераторы тестов - это чё вообще и как?
Не, похоже не то. Здесь речь идёт про тесты всей системы в целом, record/play с плюшками, это не годится для тестирования отдельных внутренних подсистем, где нечего record и нечего play. Т.е. книга для тестеров, а не для разработчиков.
Re[3]: Автоматические генераторы тестов - это чё вообще и как?
D>Не, похоже не то. Здесь речь идёт про тесты всей системы в целом, record/play с плюшками, это не годится для тестирования отдельных внутренних подсистем, где нечего record и нечего play. Т.е. книга для тестеров, а не для разработчиков.
Т.е. вот есть у нас, грубо говоря, функция / метод класса / весь интерфейс класса / ещё какой фасад. Графического интерфейса (который начинает упоминать автор с первых же страниц) в нём нет. Что там record-ить то? А если под автоматизацией здесь понимать параметризованные тесты, вызываемые в цикле (обобщение для @dataProvider), то это никакого отношения не имеет к "автоматической генерации тестов". Если я пишу for (i <- 0 to 100) testFor(i), никакая это не генерация.
Re: Автоматические генераторы тестов - это чё вообще и как?
Ну, как здесь уже указали, есть всякие property-testing тулзы типа QuickCheck'а/PropEr'а, которые не то, чтобы генерируют тесты, но генерируют большие объемы данных для тестов, и способны получить минимальный необходимый набор данных для того, чтобы поломать код.