![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
sad8c |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
Здравствуйте! Ознакомляюсь с методикой экстремального программирования. Все очень понятно, интересно и логично. Но вот только один момент никак не укладывается в голове - автор (Кент Бек) делает упор на необходимость разработки тестов работоспособности реализуемой функции непосредственно перед самой реализацией. И с ним конечно нельзя не согласиться, т.к. качественное тестирование на этапе разработки - залог качественной работы реализуемого проекта. Настораживает одно - автор имеет ввиду скрипты автоматического тестирования, причем утверждая, что (цитирую): "Любая возможность программы, для которой нет автоматических тестов, просто не существует." Соответственно, пытаясь представить себе скрипты автоматического тестирования таких функций, как например валидация формы регистрации, форма поиска, не говоря уже о яваскриптовых примочках интерфейса - на меня честно говоря находит легкий ступор...
![]() Причем я осознаю, что теоретически такие скрипты тестирования дают возможность анализировать систему с учетом множества аспектов и различных критических ситуаций... Но при этом абсолютно не понимаю, как можно реализовать такое... Если у кого-то есть опыт в подобных методиках - поделитесь пожалуйста. Я ведь не исключаю кстати и того, что я просто не правильно понял автора. |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Все правильно.
Валидация тестируется так же как и все остальное. Задаешь правильные параметры и неправильные. Затем тестируешь валидацию,
форма должна пропустить первые и не пропустить вторые. Поэтому пишешь такой тест, затем начинаешь писать саму форму. Потом прогоняешь ее. Тестирование интерфейса это во многом отдельная песня. Посмотри в сторону Selenium. Добавлено через 2 минуты и 18 секунд Вкратце, в тесте ты подаешь на вход метода данные. И проверяешь наличие ожидаемого результата (будь то обработанные данные, или выброшенное исключение) Проверять надо крайние случаи - обязательно, и 1-2 типичных варианта. |
|||
|
||||
sad8c |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
т.е. получается, что скрипт теста использует методы, описанные в последующей реализации для проверки их работоспособности, вызывая их поочередно с различными тестовыми входными параметрами. получается тогда, что основная сложность при написании теста - это продумывание критических ситуаций на входе в методы. (вы извините, если я просто перефразировал то, что уже сказано, просто хотелось самому себе подвести итого
![]() В общем - спасибо огромное за развеивание моих сомнений, теперь буду копать в направлении Selenium) |
|||
|
||||
Simpliest |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Ммм, я бы сказал несколько иначе. Основная сложность при написании теста заключается в проектировании того, что ты тестируешь. Т.е. что ты должен получить в качестве входных данных, как их обработать, и что в итоге вернуть. Например, хочу функцию возведения в степень. Теперь начинаю полностью продумывать как себя должна она вести Она может принимать любое число в качестве основания и только целые числа больше нуля в качестве показателя. Результат может быть только числом отличным от нуля. Вот как только я это продумал, то могу написать тест.
Все, теперь написав тест, могу писать саму функцию и тестировать ее. Добавлено через 5 минут и 46 секунд Вот пример, когда в тесте пропущена важная проверка. Основание не проверяется и может быть даже строкой 'abc' Поскольку я упустил это в тесте, то с почти 100%й вероятностью я не поставлю эту проверку в самой функции. Это сообщение отредактировал(а) Simpliest - 19.11.2009, 09:30 |
||||
|
|||||
sad8c |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
т.е. если я правильно понял, то в контексте приведенного примера, это :
И, насколько я понимаю, в данном примере участвует некая библиотека для тестирования, снабженная приведенными функциями (примитивными, но все же...). Значит ли это, что в существующих инструментах тестирования ПО имеются подобные API? |
|||
|
||||
Simpliest |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Да. Хотя это может быть NotFloatException - впрочем это не суть важно.
Конечно. Для тестирования используют специальные библиотеки. Для PHP используются PHPUnit, SimpleTest В Java это JUnit, для C# - NUnit PHPUnit интегрирован с NetBeans IDE, и ZendStudio. Вот насчет Eclipse PTD - точно не помню. Впрочем, его можно использовать и отдельно от IDE - это самостоятельный продукт. Добавлено через 1 минуту и 3 секунды А в примере у меня все абстрактно ![]() ![]() |
||||
|
|||||
sad8c |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
Спасибо большое за ценную консультацию! Странно, что эта тема как-то не развита на форуме...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |