Автоматические генераторы тестов - это чё вообще и как?
От: dimgel Россия https://github.com/dimgel
Дата: 05.10.12 14:15
Оценка:
Всем привет.

Я тут ввязался в очередной (приватный по аське) срач статика-динамика, аргументов за динамику не услышал, но услышал аргумент из серии "не всё так плохо": нормальные мол люди тесты сами не пишут, а генерят автоматически с помощью спец тулзов, например:

http://sourceforge.net/projects/cutfg/develop
https://developers.google.com/java-dev-tools/codepro/doc/features/junit/test_case_generation
http://code.google.com/p/scalacheck/

Прошу уважаемое сообщество высказаться.
Re: Автоматические генераторы тестов - это чё вообще и как?
От: Курилка Россия http://kirya.narod.ru/
Дата: 05.10.12 14:23
Оценка:
Здравствуйте, dimgel, Вы писали:

D>Я тут ввязался в очередной (приватный по аське) срач статика-динамика, аргументов за динамику не услышал, но услышал аргумент из серии "не всё так плохо": нормальные мол люди тесты сами не пишут, а генерят автоматически с помощью спец тулзов, например:


D>http://sourceforge.net/projects/cutfg/develop

D>https://developers.google.com/java-dev-tools/codepro/doc/features/junit/test_case_generation
D>http://code.google.com/p/scalacheck/

D>Прошу уважаемое сообщество высказаться.


Может стоит на QuickCheck сразу ссылку дать?
BTW Quviq (и Джон Хьюз там CEO) продаёт QuickCheck под динамический Эрланг.
Кстати, непонятен, конкретный вопрос, о котором высказываться, или просто "пишите, что хотите"?
Re[2]: Автоматические генераторы тестов - это чё вообще и как?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 05.10.12 14:43
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Может стоит на QuickCheck сразу ссылку дать?


Говорят, PropEr кроет его как бык овцу. Знакомые используют, хвалят.
The God is real, unless declared integer.
Re[3]: Автоматические генераторы тестов - это чё вообще и как?
От: Курилка Россия http://kirya.narod.ru/
Дата: 05.10.12 14:49
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, Курилка, Вы писали:


К>>Может стоит на QuickCheck сразу ссылку дать?


N>Говорят, PropEr кроет его как бык овцу. Знакомые используют, хвалят.


PropEr под Haskell?!
Re[4]: Автоматические генераторы тестов - это чё вообще и как?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 05.10.12 15:25
Оценка:
Здравствуйте, Курилка, Вы писали:

К>>>Может стоит на QuickCheck сразу ссылку дать?

N>>Говорят, PropEr кроет его как бык овцу. Знакомые используют, хвалят.
К>PropEr под Haskell?!

Под Erlang (и не только). Вы зачем-то смотрите только хаскельную версию, но это не единственная.
The God is real, unless declared integer.
Re[5]: Автоматические генераторы тестов - это чё вообще и как?
От: Курилка Россия http://kirya.narod.ru/
Дата: 05.10.12 16:06
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, Курилка, Вы писали:


К>>>>Может стоит на QuickCheck сразу ссылку дать?

N>>>Говорят, PropEr кроет его как бык овцу. Знакомые используют, хвалят.
К>>PropEr под Haskell?!

N>Под Erlang (и не только). Вы зачем-то смотрите только хаскельную версию, но это не единственная.


Обычно читают, на что отвечают, не?
Я и хаскельную привёл, и указал на эрланговую, но в ответе ссылка именно на исходную хаскельную, так что, про "зачем-то" вопрос отнюдь не ко мне
Re[5]: Автоматические генераторы тестов - это чё вообще и как?
От: Курилка Россия http://kirya.narod.ru/
Дата: 05.10.12 16:09
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, Курилка, Вы писали:


К>>PropEr под Haskell?!


N>Под Erlang (и не только). Вы зачем-то смотрите только хаскельную версию, но это не единственная.


BTW, можно ссылки про PropEr "не только под Erlang"?
Re[2]: Автоматические генераторы тестов - это чё вообще и как?
От: dimgel Россия https://github.com/dimgel
Дата: 05.10.12 17:26
Оценка: 10 (1) +1
Здравствуйте, Курилка, Вы писали:

К>или просто "пишите, что хотите"?


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

Априори я настроен скептически: подобного рода тулза не способна действовать разумно и должна компенсировать отсутствие качества количеством. Она может, допустим, анализировать код и покрывать, к примеру, все if-ы, но в случаях "bottom-up" (фактически интеграционного тестирования) это теряет всякий смысл — количество тестов зашкалит за все разумные пределы. А уж если тестировать с базой, как я люблю (честный "bottom up")... Откуда она возьмёт хоть какой снимок данных, не говоря уже о снимке полезном? В обратную по SQL-запросам (которые её придётся восстанавливать, они тоже могут быть динамически конструируемыми с кучей if-ов и for-ов) восстановит все возможные наборы состояний? Во-первых, не верю, пупок надорвётся у разработчиков таких тулзов. Во-вторых, никаких RAID-массивов не хватит.
Re: Автоматические генераторы тестов - это чё вообще и как?
От: LaptevVV Россия  
Дата: 05.10.12 17:32
Оценка: 2 (1)
Здравствуйте, dimgel, Вы писали:

D>Всем привет.


D>Я тут ввязался в очередной (приватный по аське) срач статика-динамика, аргументов за динамику не услышал, но услышал аргумент из серии "не всё так плохо": нормальные мол люди тесты сами не пишут, а генерят автоматически с помощью спец тулзов, например:


D>http://sourceforge.net/projects/cutfg/develop

D>https://developers.google.com/java-dev-tools/codepro/doc/features/junit/test_case_generation
D>http://code.google.com/p/scalacheck/

D>Прошу уважаемое сообщество высказаться.

Вот эту книжку для начала неплохо почитать: http://www.ozon.ru/context/detail/id/2279595/
Автор(ы): И. Винниченко
Издательство: Питер
Цена: 199р.

Книга посвящена вопросам практического применения автоматизации тестирования, которое является одним из важнейших аспектов обеспечения качества программных продуктов. В ней дается детальное описание программных средств, необходимых для повседневной
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Автоматические генераторы тестов - это чё вообще и как?
От: dimgel Россия https://github.com/dimgel
Дата: 05.10.12 17:48
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Вот эту книжку для начала неплохо почитать: http://www.ozon.ru/context/detail/id/2279595/
Автор(ы): И. Винниченко
Издательство: Питер
Цена: 199р.

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


Не, похоже не то. Здесь речь идёт про тесты всей системы в целом, record/play с плюшками, это не годится для тестирования отдельных внутренних подсистем, где нечего record и нечего play. Т.е. книга для тестеров, а не для разработчиков.
Re[3]: Автоматические генераторы тестов - это чё вообще и как?
От: dimgel Россия https://github.com/dimgel
Дата: 05.10.12 17:52
Оценка:
D>Не, похоже не то. Здесь речь идёт про тесты всей системы в целом, record/play с плюшками, это не годится для тестирования отдельных внутренних подсистем, где нечего record и нечего play. Т.е. книга для тестеров, а не для разработчиков.

Т.е. вот есть у нас, грубо говоря, функция / метод класса / весь интерфейс класса / ещё какой фасад. Графического интерфейса (который начинает упоминать автор с первых же страниц) в нём нет. Что там record-ить то? А если под автоматизацией здесь понимать параметризованные тесты, вызываемые в цикле (обобщение для @dataProvider), то это никакого отношения не имеет к "автоматической генерации тестов". Если я пишу for (i <- 0 to 100) testFor(i), никакая это не генерация.
Re: Автоматические генераторы тестов - это чё вообще и как?
От: Mamut Швеция http://dmitriid.com
Дата: 10.10.12 07:59
Оценка:
D>Прошу уважаемое сообщество высказаться.


Ну, как здесь уже указали, есть всякие property-testing тулзы типа QuickCheck'а/PropEr'а, которые не то, чтобы генерируют тесты, но генерируют большие объемы данных для тестов, и способны получить минимальный необходимый набор данных для того, чтобы поломать код.

Сам пока не пользовался, но идея хорошая


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.