Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 25 • Страница 1 из 21  2  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
Начитавшись книжек по XP задумал сделать сабж - может кто уже делал что-то подобное? Можно работатьь вместе :)



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
а по конкретнее о чем речь то?


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
2Ray Adams есть задача. Ты пишешь объект или класс. У него есть методы. Необходимо автоматически и быстро проверить функциональность и адекватность методов.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
мдя, хорошо сказал!
Цитата:
Необходимо автоматически и быстро проверить функциональность и адекватность методов.

А что такое функциональность и тем более адекватность методов!??? И еще применитоельно к PHP?


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
как я понял никто не знает что такое XP, в чем заключается тестирование модулей и т.п.

Для интересущегося Ray Adams объясню - как точно удостовериться в том что метод InsertRecord ($title, &id) добавляет строку в бд с неким столбцом равным $title и возвращает id этой записи? запустить метод и проверить результатов. автоматический запуск с автоматической проверкой и есть тест метода. на каждый метод обычно пишется несколько тестов.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
ого,не хило! :)
А зачем все это? Неужели нельзя проверить InsertRecord ($title, &id) другим , человеческим методом???

Цитата:
на каждый метод обычно пишется несколько тестов.

Если так писать софт, то можно долго и упорно писать тесты на свои методы, этому сейчас в институтах учат чтоли?.


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
2Ray Adams в книжки по xp.
Как только код становится достаточно большим что в голову ен влезает тесты дают 100% контроль работоспособности при любом изменении. Вто например у меня есть пара классов по 50кб. которые приходится регулярно менять. чтобы не тестать каждый раз, можно написать тесты. кстати - тесты ручками регулярно пропускют ошибки :)


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Casey_
А можно поинтересоваться, чем тебя например существующие пакеты для тестирования не устраивают?

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
А они есть?
Единственное, что я нашел - это phpunit на sourceforge. Не катит :( Там нет того что мне нужно. Пока решил писать класс самому... Может есть еще энтузиасты? Одному все таки сложно - работы дофига...


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Casey_
Rational Test RealTime - позволяет тестировать что угодно, и под любой платформой.

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
2Avaddon thanks, посмотрел за зверь... Пока не сильно понял, но понял что штука крутая :)
Я во думаю - может нет особо смысла мне на такое заморачиваться? Мне надо то обычно проверить стандартные операции с файлами и бд... Написать для них стандартные тесты и реализовать алгоритм добавления и проверки... Буду в общем думать


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Casey_
Ты знаешь, я не силен в PHP, но в моем любимом Perl есть специальные Test-модули, с помощью которых и можно организовать тестирование. Скорее всего, в PHP имеется нечто похожее.

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
perl forever!!!
давно собирался учить но все упирается во время - чтобы выучить perl так, что я на нем мог комфортно работать, т.е. как минимум как я сейчас знаю php, надо пару лет :)

PS Перл куда более объекто-ориентирован, чем php.


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Casey_
Вот если ты знаешь PHP, то на хорошее изучение Perl у тебя уйдет не пара лет, а пара месяцев.
Идеология примерно одинаковая, надо только освоить перловые заморочки.

_________________
Цель жизни - d20 по жизни...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Как только код становится достаточно большим что в голову ен влезает тесты дают 100% контроль работоспособности при любом изменении. Вот например у меня есть пара классов по 50кб. которые приходится регулярно менять. чтобы не тестать каждый раз, можно написать тесты. кстати - тесты ручками регулярно пропускют ошибки

Мдя :), я вот на php избегаю классы, слабоват в ООП пока что php, ну если конечно не брать во внимание 5 версию. Но все равно, за столько лет програмирования (с 1989 года) мне ниразу не пришлось такое делать, а уж проекты у меня были огромные и на php в том числе. Книжки не всегда учат полезному :), особенно когда начинают учить правилам программирования, а не самому програмингу.
От себя добавлю, мне кажется что затрата на написани модулей для тестирования обьектов = двойная трата времени! Ведь каждая функция по себе уникальна и что именно она делает заранее никакой модуль тестирования не угадает! А значить для каждой функции класса тебе придется писать отдельный тест, двойная работа!


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
2Ray Adams - насчет тестов не совсем так.

Когды ты пишешь тесты ты выстраиваешь про себя структуру программы. Т.е. например - я пишу управление картинками в галерее. У меня есть класс который обеспечивает функциональность галереи. Прежде чем пишу класс, я думаю - что он будет делать? Дофига тестов писать влом, вот и выстаиваешь архитектуру. Например - фотогарелея может: добавлять картинку с комментарием. удалять картинку. менять картинку и комментарий. выводить список по дате в обратном порядке. я придумываю названия методов и пишу тесты для них. потом пишу код. это функциональность остается 100%. если что-то добавляется, изменяется, я нахожу болееэлегантное решение - я его делаю, прогоняю тесты - все ок - значит ништяк. Я на 100% уверен в правильности изменений. А ведь методов может быть 30 и я не помню как работают (как устроены) остальные 29 кроме того, который я только что поменял. Но я знаю, что если тесты дали зеленый свет - значит они (методы) работают как надо.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
ведь методов может быть 30 и я не помню как работают (как устроены) остальные 29 кроме того


Это уже не хорошо, свой код надо знать! Что там и как делается!
А насчет тестов, ну вот приведи небольшой пример одного класса с одной фукнцией и к нему класс для тестирования. Хочу понять о чем вообще идет речь. Никогда просто ничего подобного не писал да и никогда об этом ничего не читал!


 

Member
Статус: Не в сети
Регистрация: 01.12.2003
Откуда: Воронеж
XP - это что типа eXtremal Programming :P

_________________
Вылечу кривые руки топором!!!


 

Member
Статус: Не в сети
Регистрация: 04.03.2004
Откуда: Москва
2DEATH666 да
2Ray Adams если у тебя 4 проекта таких кто ты ОДИН класс в голове удержать не можешь :)

пример - плиз
InsertRecord ($title, &id)
функция должна вставить строку в таблицу

тест для функции - это проверка, что действительно ли запись с возвращенным номером id существует, и данные там именно те, что передали в функцию.

Добавлено спустя 2 минуты:
2Ray Adams сорри не понял с певрого раза вопроса :)

Значит функция делает mysql_query
а тест должен делать тоже mysql_query и проверять.

Класс для тестирования - это объект, в котором большинство функций (типа такой проверки :) автоматизированы, и ты когда пишешь тесты - ты просто задаешь параметры.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Понял я понял. Но вот пользы пока не вижу никакой.
С одной стороны да, вроде польза есть и причем несомненная. К примеру обьект очень большой и функций там штук 100 и половина завязана . Меняем одну и проверяем. НО!!! Сложность создания обьекта , который будет тестировать правильность работы другого обьекта в два раза больше чем создание первого обьекта. Надеюсь правильно мысль свою сказал.

Теперь вот небольшой пример. Есть у меня в одном проекте один класс. Там всего 4 функции. И вот как я не силился но понять ак сделать для них проверку я не понял :)
1. Функция получает на входе определенный идентификатор и далее проверяя некоторые условия вытаскивает информацию их кеша в базе, или тянет из интернета . Далее она же, производит большой разбор полученных результатов в результате которого заполняются около 100 переменных! И далее уже обновляются некоторые параметры в базе в нескольких таблицах.
2. Функция на основе переменных рисует довольно сложную таблицу с картинками в html. (вот эту фукнцию вообще фиг как провериш)
--
Дальше даже и приводить примеры не буду. Насколько будет сложно вообще попытаться реализоваться тестовые функции для описанных выше двух функций! :) :)

Кстати , а что за книга про хр?


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 25 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan