четверг, 30 октября 2008 г.

Генератор тестовых сценариев

Свершилось! Я прикрутил графический пользовательский интерфейс к генератору тестовых сценариев. Прошу наслаждаться: http://www.dmugtasimov.ru/testgenerator/testgenerator.html.

вторник, 7 октября 2008 г.

Как я Java на сайт устанавливал

Сегодня на меня снизошло озарение! Дело в том, что у меня есть сайт www.dmugtasimov.ru, на котором я разместил свою статью о тестировании сложных логических условий. Кроме статьи на сайте выложен исходный код на Java и собранный jar консольного приложения для генерации тестовых сценариев по сложным условиям в соответствии с алгоритмом изложенном в статье. Длится это уже около года. Реально генератором никто не пользуется, по крайней мере я не знаю таких. Причина видимо в том, что интерфейс приложения мягко говоря не очень удобный. Поэтому я решил прикрутить Web-интерфейс, через который можно будет генерировать тестовые сценарии, а потом их копировать в любые приложения через буфер обмена. А дальше мои приключения.

Web-хостинг, на котором живет www.dmugtasimov.ru я покупаю у компании Караван. Они предоставляют стандартный пакет средств Web-разработки CGI, php, perl, mod_perl, python, но среди них нет поддержки Java. Мой генератор написан на Java, причем сам использует генератор парсеров JavaCC, который специфичен для языка, кроме того код я писал около года назад. В общем мне нужен быстрый эффект, поэтому переписывание готового кода с Java на один из поддерживаемых провайдеров языков был для меня последним вариантом.

Наиболее простым вариантом мне показалась компиляция байт-кода Java в исполняемый код и выполнять его под CGI. Здесь стоит оговориться, что под CGI я никогда не программировал (хотя технология простая и довольно древняя), у провайдера установлен FreeBSD, с которым я никогда не работал и тем более никогда не компилировал собственные исполнимые бинарники. Пришлось учиться...

Во-первых, я установил под VMware FreeBSD 6.2, такую как у провайдера. Пытался устанавливать и обновлять приложения, но со временем обнаружил, что версия 6.2 больше не поддерживается и соответственно новые приложения установить не просто. Пришлось сначала обновить версию до 6.3. Потом я долго разбирался с менеджерами пакетов FreeBSD (точнее читал мануалы). В итоге оказалось, что с FreeBSD 6.3 поставляется gcc 3.x.x, в который не включен компилятор gcj. Последний по заявлениям разработчиков умеет компилировать исходный код и байт код Java в исполняемых код посредством gcc. Обновлять gcc под FreeBSD до 4.x.x я не решился, т.к. не понятно что из этого получится и как это сделать, т.к. для FreeBSD 6.3 версия gcc 3.x.x считается актуальной.

На соседней VMware жила Ubuntu 6.x, поэтому я решил собрать под ней исполнимый бинарник, который потом запущу под FreeBSD 6.x. Получилось, gcc и gcj оказались нужных версий, правда последний пришлось устанавливать, но это не страшно...

Создать исполнимый файл из jar-ника удалось, он даже запустился и отработал. Однако оказалось, что логика работы генератора тестов нарушилась. Выяснять почему gcj не смог корректно преобразовать jar в исполнимый файл я не стал и временно отложил эту задачу.

И вот в один прекрасный момент на меня снизошло озарение: нужно написать Java Applet, которой вызывать из JavaScript и выполнять это все в браузере на стороне клиента. Реализацией этой идеи теперь занимаюсь.