Инструменты для генерации тестов (синтаксическое тестирование)
#1
Отправлено 20 декабря 2007 - 21:54
Некоторое время назад возникла необходимость составить наборы тест-кейсов для редактора SQL запросов, т.е. наборы чистых и грязных тестов для каждого стейтмента SQL. Иными словами, задача синтаксического тестирования. Решил попробовать для этой цели один из существующих инструментов, причем попробовать сначала для личного ознакомления, в домашних условиях, так сказать, чтобы потом, в случае успеха, презентовать начальству. Для начала захотелось скачать триал. И здесь столкнулся с различными трудностями. О них - далее.
1. Продукт Verifysoft JSynTest. Чтобы скачать триал, нужно обязательно писать с корпоративного ящика, иначе шансы получить дистрибутив малы. Наверное, это новые веянья защиты от нечестных юзеров... С корпоративного ящика писать не хочу, так как продукт меня интересует на данный момент конкретно в целях самообразования.
2. Продукт SynTesK из семейства uniTESK. На сайте компании нет ссылки на триал, поэтому написал им письмо. И получил ответ. Оказывается, SynTesK распространяется бесплатно в обмен на информацию об опыте его использования! Круто! (прошу заметить, радуюсь от души, т.е. без иронии.) Надо только договор подписать. Из содержимого бланка договора следует, что я должен представлять некоторый вуз и использовать продукт в учебном процессе. А что же делать, если захочется применить этот продукт в коммерческих целях? Об этом я и спросил в повторном письме. Но, к сожалению, ответа не получил (прошло больше недели времени). На всякий случай написал аналогичное письмо уважаемому господину Баранцеву, представляющему производителя сего продукта на данном форуме (если я что-то неправильно говорю, прошу простить и поправить)). Ответа тоже, пока, нет(.
3. RAGS, Microsoft. Нашел статью от Don Slutz'а и др. статьи, из которых узнал, что в MS разработали инструмент для решения задач, аналогичных моей. Но никаких ссылок на этот продукт не нашел.
Вопрос: кто знает, как получить дистрибутив (триально-бесплатный) одного из перечисленных выше продуктов? Какие еще есть продукты, решающие мою задачу?
На данный момент изобретаю велосипед, применяя для генерации синтаксических тестов pairwise testing, благо, есть бесплатные и легко доступные програмки)). Только вот для больших стейтментов типа SELECT это не идеальное решение(.
Очень прошу откликнуться! Заранее благодарю.
P.S. Еще пара моментов не совсем по теме, но не хотелось заводить новый топик пока.
1) попробовал установить CTesK от uniTESK для ознакомления с model-based testing). Ругается при инсталляции, что не находит JVM. Проверил, переустановил, пишу в консоли команду вида "ctesk.exe -is:javahome c:\Program Files\Java\j2re1.4.2_06\bin". Не помогает. Что делать?
2) Прошу уважаемого rlabs отозваться). Я писал Вам писал письмо и в аську стучал. Возможно, Вы не получили сообщение, а, может, времени не нашлось... Вот решил проявить настырность)).
#2
Отправлено 21 декабря 2007 - 06:06
Про книжку - письма надо писать на почтовый адрес, а не на идентификатор MSN. Попробуйте еще раз.
По поводу же. И в тезисах о RAGS, и в похожей литературе (гуглом отыскивается) описано несколько подходов к построению системы тестирования. Алгоритм в чистом виде, конечно, отсуствует, но если уже есть pair-wise, то недолго и более умный генератор запросов написать. В RAGS для этого используются синтаксические правила и деревья, у кого-то еще из MS - генетические алгоритмы. Всё это при наличии словаря синтаксиса - не очень сложная задача для девелопера (главное сформулировать правильно). Хотя, кстати, вышеупомянутые инструменты используются для тестирования самой базы данных, тестирование редактора должно быть проще.
Ну вот это как раз напрасно. Если самообразование для пользы дела - никакой проблемы в использовании рабочей почты нет и не должно быть. А вот тратить время "в сикрете" как раз не очень хорошо.С корпоративного ящика писать не хочу, так как продукт меня интересует на данный момент конкретно в целях самообразования.
Попросить триал, сделать ограниченный пилотный проект, оценить пользу, убедить заинтересованных лиц в приобретении продукта.А что же делать, если захочется применить этот продукт в коммерческих целях?
#3
Отправлено 21 декабря 2007 - 08:37
Не знаком с такой прогой, как CTesK, но что каксается джавы - поробуйте:1) попробовал установить CTesK от uniTESK для ознакомления с model-based testing). Ругается при инсталляции, что не находит JVM. Проверил, переустановил, пишу в консоли команду вида "ctesk.exe -is:javahome c:\Program Files\Java\j2re1.4.2_06\bin". Не помогает. Что делать?
1) Указать такой путь "c:\Program Files\Java\j2re1.4.2_06\"
2) Установить переменую окружения JAVA_HOME="c:\Program Files\Java\j2re1.4.2_06\"
3) Установить последнюю версию джавы
4) Установить джаву в директорию без пробела. Пути с пробелами в именах и джава ингода плохо дружат.
5) Опять же пробел, путь неплохо бы в кавычки взять: ctesk.exe -is:javahome "c:\Program Files\Java\j2re1.4.2_06\bin"
Alexey
#4
Отправлено 24 декабря 2007 - 10:23
Я писал на ящик на mail.ru. Уже еще раз написал. Получили?)Ну вот я и отзовусь, кстати.
Про книжку - письма надо писать на почтовый адрес, а не на идентификатор MSN. Попробуйте еще раз.
Попробую разобраться и сформулировать задачу (в ближайшем будущем, надеюсь)). Спасибо за направление.По поводу же. И в тезисах о RAGS, и в похожей литературе (гуглом отыскивается) описано несколько подходов к построению системы тестирования. Алгоритм в чистом виде, конечно, отсуствует, но если уже есть pair-wise, то недолго и более умный генератор запросов написать. В RAGS для этого используются синтаксические правила и деревья, у кого-то еще из MS - генетические алгоритмы. Всё это при наличии словаря синтаксиса - не очень сложная задача для девелопера (главное сформулировать правильно). Хотя, кстати, вышеупомянутые инструменты используются для тестирования самой базы данных, тестирование редактора должно быть проще.
В принципе, согласен. На счет JSynTest (который "хочет", чтобы за ним обратились с корпоративного ящика): судя по информации на их сайте, там даже нужно договариваться, с какого момента триал начинается. Т.е. если я скачаю продукт, начну триальное использование, а потом отвлекусь по необходимости (такое бывает нередко), то могу потерять триальное время зря... Т.е. их политика энтузиазма не дает особо, поэтому хотелось найти инструмент от другого производителя. Вот, например, жду ответа от UniTESK...Ну вот это как раз напрасно. Если самообразование для пользы дела - никакой проблемы в использовании рабочей почты нет и не должно быть. А вот тратить время "в сикрете" как раз не очень хорошо.С корпоративного ящика писать не хочу, так как продукт меня интересует на данный момент конкретно в целях самообразования.
В письме в UniTESK я задал вопрос о возможной стоимости в том числе. Жду ответа.Попросить триал, сделать ограниченный пилотный проект, оценить пользу, убедить заинтересованных лиц в приобретении продукта.А что же делать, если захочется применить этот продукт в коммерческих целях?
Нашел в интернете кроме указанных в начале еще другие инструменты для model-based testing (не syntax testing конкретно). Мне этот подход в принципе интересен. Есть даже бесплатное решение (mbt.tigris.org), , которое генерит тесты, но на основе графа (для рисования графа есть еще одно бесплатное приложение). Только вот если у меня более 50 вершин (задача о тестировании визарда, которую я относительно недавно поднимал на форуме), то не хочется их все рисовать а потом соединять. Кстати, Бейзер пишет, что такие большие модели нужно разбивать на подмодели, но я не придумал как это сделать в моем случае...
В итоге, вдохновившись статьями Гарри Робинсона, хочу в скором будущем написать простой генератор тестов на основе Excel документа с колонками вида Start state - Action - End state. в связи с этим вникаю в задачу о китайском почтальоне).
Кто-нибудь пробовал решать такую задачу? Вообще кто-нибудь применяет в своей работе model-based testing? Или это лучше в отдельной теме обсуждать?
#5
Отправлено 24 декабря 2007 - 10:31
Не знаком с такой прогой, как CTesK, но что каксается джавы - поробуйте:1) попробовал установить CTesK от uniTESK для ознакомления с model-based testing). Ругается при инсталляции, что не находит JVM. Проверил, переустановил, пишу в консоли команду вида "ctesk.exe -is:javahome c:\Program Files\Java\j2re1.4.2_06\bin". Не помогает. Что делать?
1) Указать такой путь "c:\Program Files\Java\j2re1.4.2_06\"
2) Установить переменую окружения JAVA_HOME="c:\Program Files\Java\j2re1.4.2_06\"
3) Установить последнюю версию джавы
4) Установить джаву в директорию без пробела. Пути с пробелами в именах и джава ингода плохо дружат.
5) Опять же пробел, путь неплохо бы в кавычки взять: ctesk.exe -is:javahome "c:\Program Files\Java\j2re1.4.2_06\bin"
Спасибо за советы!
Перепробовал все - не получилось ничего(. Наверно, я еще не созрел для работы с CTesK (юмор)).
Вообще, разве Java не должна (или должен?)) при инсталляции прописывать в системе путь к себе?
Чтобы запустить на выполнение jar-файл (mbt от tigris.org), я его скопировал в папку с java.exe и получилось. С инсталляцией CTecK такой фокус не проходит(.
Уже просто из принципа хочется понять, что я делаю не так).
#6
Отправлено 24 декабря 2007 - 11:10
Джава не прописывает в системе путь к себе. Инсталятор же копирует файлы (java.exe) в фолдер %SystemRoot%\system32 и что-то в реестре делает.Спасибо за советы!
Перепробовал все - не получилось ничего(. Наверно, я еще не созрел для работы с CTesK (юмор)).
Вообще, разве Java не должна (или должен?)) при инсталляции прописывать в системе путь к себе?
Чтобы запустить на выполнение jar-файл (mbt от tigris.org), я его скопировал в папку с java.exe и получилось. С инсталляцией CTecK такой фокус не проходит(.
Уже просто из принципа хочется понять, что я делаю не так).
Поэтому, если вы ставили не из zip-файла, а инсталятором, то для запуска jar файла можно на нем просто кликнуть.
Копировать в папку с java.exe не обязательно, да и нехорошо- лучше так запускать из командной строки:
>С:\путь-где-стоит-джава\bin\java.exe -jar your-jar-file.jar
Если джава таки есть в систем32 - то так должно тоже сработать
>java.exe -jar your-jar-file.jar
Пришлите ссылочку, где этого зверя (CTesK) можно скачать, если у них есть триальные версии. Попробую поставить - на словах тяжело понять, что там у вас не складывается.
Alexey
#7
Отправлено 24 декабря 2007 - 13:03
1. Запустить то
2. Выполнить то
...
Потом с помощью скриптов все это импортилось в Rational TestManager и Rational ManualTest.
Описание модели было на языке YAML, в силу его лёгкой читаемости, расширяемости модели.
В принципе, текст можно заменить, например на код, и будет автоматический тест.
К сожалению, из за высокой занятости на работе, программу так и не довел до ума (может когда-нибудь )
#8
Отправлено 24 декабря 2007 - 13:20
Эгхм. Повторюсь еще раз. Есл посмотреть в профиль пользователя, там есть кнопки "отправить сообщение" и "написать на электропочту". И не надо упорно копировать руками идентификатор пользователя MSN (там даже иконка специфическая) и отправлять почту вникуда (да, я не виноват, что этот юзернейм уже не исправить, хотя ящика такого нет очень давно).Я писал на ящик на mail.ru. Уже еще раз написал. Получили?)Ну вот я и отзовусь, кстати.
Про книжку - письма надо писать на почтовый адрес, а не на идентификатор MSN. Попробуйте еще раз.
#9
Отправлено 24 декабря 2007 - 20:33
java в system32 есть. так - работает).Если джава таки есть в систем32 - то так должно тоже сработать
>java.exe -jar your-jar-file.jar
Вот триал:Пришлите ссылочку, где этого зверя (CTesK) можно скачать, если у них есть триальные версии. Попробую поставить - на словах тяжело понять, что там у вас не складывается.
http://www.unitesk.r....2.20060802.exe
#10
Отправлено 24 декабря 2007 - 21:01
На рисунке обведена ссылка, на которую я нажал (уже второй раз))), чтобы отправить письмо. Отправил. Надеюсь, будет мне счастье), уже как бы пора).Эгхм. Повторюсь еще раз. Есл посмотреть в профиль пользователя, там есть кнопки "отправить сообщение" и "написать на электропочту". И не надо упорно копировать руками идентификатор пользователя MSN (там даже иконка специфическая) и отправлять почту вникуда (да, я не виноват, что этот юзернейм уже не исправить, хотя ящика такого нет очень давно).
Если же все равно не получите, то могли бы вы мне написать на yurock83@ukr.net или yurock83@inbox.ru? Буду признателен).
gif1.GIF 4,34К 112 Количество загрузок:
#11
Отправлено 25 декабря 2007 - 13:23
Спасибо, открыл для себя процедуру смены почтового адреса на форуме. Написал на @ukr.net.На рисунке обведена ссылка, на которую я нажал (уже второй раз))), чтобы отправить письмо. Отправил. Надеюсь, будет мне счастье), уже как бы пора).
#12
Отправлено 25 декабря 2007 - 13:44
Прошу прощения, письмо не получал, на форум тоже нечасто захожу в последнее время. Про CTesK передал ссылку специалистам -- свяжутся, помогут разобраться с проблемой. Про SynTesK мне нужно некоторое время, чтобы выяснить текущий статус -- проект постепенно переходит в статус OpenSource, так что я думаю в скором времени не будет никаких препятствий к его использованию в коммерческих проектах.2. Продукт SynTesK из семейства uniTESK. На сайте компании нет ссылки на триал, поэтому написал им письмо. И получил ответ. Оказывается, SynTesK распространяется бесплатно в обмен на информацию об опыте его использования! Круто! (прошу заметить, радуюсь от души, т.е. без иронии.) Надо только договор подписать. Из содержимого бланка договора следует, что я должен представлять некоторый вуз и использовать продукт в учебном процессе. А что же делать, если захочется применить этот продукт в коммерческих целях? Об этом я и спросил в повторном письме. Но, к сожалению, ответа не получил (прошло больше недели времени). На всякий случай написал аналогичное письмо уважаемому господину Баранцеву, представляющему производителя сего продукта на данном форуме (если я что-то неправильно говорю, прошу простить и поправить)). Ответа тоже, пока, нет(.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#13
Отправлено 25 декабря 2007 - 14:07
Относительно SynTESK. Посмотрите на http://bnftool.sf.net (качать *standalone.zip) Это инструмент, на основе которого сделан SynTESK. Умеет генерировать только "чистые" или "позитивные" тесты. В дистрибутиве есть пара примеров использования. Будут вопросы - пишите.
UniTesK - технология функционального тестирования с использованием формальных спецификаций.
#14
Отправлено 25 декабря 2007 - 23:12
Большое спасибо за помощь, внимание, ответы!
Буду ждать января, открытой версии SynTesK и попробую пока познакомиться с bnftool )).
#15
Отправлено 11 февраля 2008 - 09:23
Письмо на info@unitesk.com отписал - ответа пока нет. Причем это уже не первое письмо. Ответа не поступало вообще.
Кто в курсе? Что можете подсказать?
По поводу BNFTool - скачал, но ни примеров, ни доки в архиве не оказалось. Может кто может поделиться?
P.S. Предстоит задача тестирования компилятора C подобного языка. Кто может уже поделиться подобным опытом?
Есть уже свой вариант теста, генерящий семантически правильные (и не очень) предложения. В основном пока используется для завала компилятора (объемом кода), но найдена и часть семантических ошибок. На семантику планируется отдельный тест (для позитивных и негативных предложений) - тут и хотелось бы попользоваться SynTesK. Не знаю насколько он будет полезен - хочу понять.
#16
Отправлено 11 февраля 2008 - 11:13
Хотелось бы снова поднять вопрос о получении триалки SynTesK. Где и как?
Письмо на info@unitesk.com отписал - ответа пока нет. Причем это уже не первое письмо. Ответа не поступало вообще.
Кто в курсе? Что можете подсказать?
По поводу BNFTool - скачал, но ни примеров, ни доки в архиве не оказалось. Может кто может поделиться?
P.S. Предстоит задача тестирования компилятора C подобного языка. Кто может уже поделиться подобным опытом?
Есть уже свой вариант теста, генерящий семантически правильные (и не очень) предложения. В основном пока используется для завала компилятора (объемом кода), но найдена и часть семантических ошибок. На семантику планируется отдельный тест (для позитивных и негативных предложений) - тут и хотелось бы попользоваться SynTesK. Не знаю насколько он будет полезен - хочу понять.
Мне нужно было нагенерить хостнеймов, причем как верных так и нет.
Я сходил на pairwise.org
Не стал сильно вчитываться, просто скачал PICT от M$
дальше сделал как в доке:
prefix: www., firstsymbol: ~., ~-, my middlesymbol: ~_, -, ~@ domen: domain, ~домен lastsymbol: ~-, 1 separator: . zone: ru, ~badzone port: ~:0, :80, ~:65536, ~/,
(это упрощеннй вариант)
Потм просто для удобства (что бы легче было вставлять в тестовый код) написал скриптик на js:
var objArgs = WScript.Arguments; var objShell = new ActiveXObject("WScript.Shell"); var objStdOut = WScript.StdOut; var objStdErr = WScript.StdErr; var PICT = objShell.Exec("pict " + objArgs(0)); PICT.StdOut.SkipLine(); while (!PICT.StdOut.AtEndOfStream){ var re = /\t/g; line = PICT.StdOut.ReadLine(); line = line.replace(re, ""); re = /~/g; if (re.test(line)) { line = line.replace(re, ""); objStdErr.WriteLine("Host: " + line + ""); } else { objStdOut.Write("Host: " + line + "\r\n"); } }
вывод PICT'а перенаправил в свой скриптик:
@ECHO OFF cscript //Nologo script.js hostmodel 1> good 2> bad
откуда уже перенаправляю в 2 файла, хорошие и плохие
Host: my-domain1.ru/
Host: www.my-domain-.ru:80
Host: my-domain1.ru:65536
Host: www.my-domain1.ru:65536
Host: my-domain1.ru:0
Host: my-domain1.badzone:80
Host: my-домен1.ru
Host: www.--domain1.ru
Host: my@domain1.ru:80
Host: .-domain1.ru
Host: www.my_domain1.ru
Host: my_domain1.ru:80
Host: www.my-domain1.ru/
Host: www..-domain1.ru:80
Host: www.my-домен1.ru:80
Host: www.my-domain1.ru:0
Host: --domain1.ru:80
Host: www.my-domain1.badzone
Host: www.my@domain1.ru
Host: my-domain-.ru
и
Host: my-domain1.ru:80
Host: my-domain1.ru
Host: www.my-domain1.ru
Host: www.my-domain1.ru:80
P.S. я нормальный ... просто так удобнее было разобраться c pairwise=)
#17
Отправлено 11 февраля 2008 - 12:55
Мне нужно было нагенерить хостнеймов, причем как верных так и нет.
откуда уже перенаправляю в 2 файла, хорошие и плохие
Host: my-domain1.ru/
и
Host: my-domain1.ru
(хоть это и не очень в тему) Возможно, я недопонял шутку, но в чем у вас (планировалась) разница между хорошими и плохими хостами?
#18
Отправлено 11 февраля 2008 - 13:17
Мне нужно было нагенерить хостнеймов, причем как верных так и нет.
откуда уже перенаправляю в 2 файла, хорошие и плохие
Host: my-domain1.ru/
и
Host: my-domain1.ru
(хоть это и не очень в тему) Возможно, я недопонял шутку, но в чем у вас (планировалась) разница между хорошими и плохими хостами?
Там на конце слешь, мне нужен был не url а именно hostname
cscript //Nologo script.js hostmodel 1> good 2> bad
hostmodel - файлик с параметрами (самый первый), good и bad - файлики куда скдаываются результаты
в нем префикс ~ означает отрицательный результат(в hostmodel "~/"), а если посмотреть в доку то там еще есть возможность
накладывать некоторые условия на параметры и значения. См Model Options в User’s Guide.
для проверки синтаксиса может и слабовато, но для проверки возможных имен переменных, на мой взгляд, само то ....
#19
Отправлено 11 февраля 2008 - 13:36
(хоть это и не очень в тему) Возможно, я недопонял шутку, но в чем у вас (планировалась) разница между хорошими и плохими хостами?
А почему шутку?
Кстати в MetaCommunications, на сколько я понял, есть свои наработки по pairwise ...
#20
Отправлено 11 февраля 2008 - 14:30
Да, теперь понятно, спасибо.Там на конце слешь, мне нужен был не url а именно hostname
для проверки синтаксиса может и слабовато, но для проверки возможных имен переменных, на мой взгляд, само то ....
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных