Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Как лучше всего проводить тестинг ASP.NET страниц?


Автор: Kosya4ok 5.3.2008, 18:57
Всеи привет!
Вот столкнулся с проблемой тестинга множества ASP.NET страниц. 
1. Не подскажете есть ли какие то готовые решение?
2. Как часще всего проводиться тестинг?
3. На чем  лучше писать тестовые скрипты?(JavaScript, C#)
Есть ли какие то идеи по этому поводу?

Автор: Kosya4ok 6.3.2008, 09:55
Неуже ли данный вопрос является таким сложным?  smile 

Автор: Mymik 6.3.2008, 11:00
данный вопрос является вопросом для тестеров... а тут только программеры сидят. А программеры тестеров ненавидят, потому что они из конфетки делают кучу какашек...

Автор: Kosya4ok 6.3.2008, 11:31
Хм. Если ты программист то это что означает что ты никогда не тестировал свой же код? Ну и ну. Ну а мона тада сцылочку де мона обратится к тестерам?

Автор: Mymik 6.3.2008, 11:49
Kosya4ok, я тестирую с помощью debug. А тебе, как я понял, нужны автоматические системы тестирования сайтов.
http://forum.vingrad.ru/forum/topic-190511/anchor-entry1385196/0.html
http://www.gotdotnet.ru/Forums/Web/537915.aspx

Добавлено через 1 минуту и 29 секунд
да, кстати, ты знаешь что одна из заповедей тестировщик звучит примерно так "никогда не давайте тестировать программу разработчику этой программы, потому что человек не способен найти свои ошибки" ;)

Автор: Kosya4ok 6.3.2008, 12:03
Ага. Конечно знаю. Тогда и тебе встречка. А тебе что не доводилось тестировать код написанный не тобой?

Добавлено через 11 минут и 45 секунд
Так там про тестрование сайта под нагрузкой. А мне требуется тестировать сайт с разлиными параметрами заполнения полей на сайте. И их очень много. 
P.S. RoboForum исключаем.

Автор: Mymik 6.3.2008, 13:01
Цитата(Kosya4ok @  6.3.2008,  12:03 Найти цитируемый пост)
Ага. Конечно знаю. Тогда и тебе встречка. А тебе что не доводилось тестировать код написанный не тобой?

Вот честно, хоть и мало у нас тестеров в фирме, но вот заставлять тестировать программиста... это извращение.
В чужом коде я только разбирался, для того чтобы дописать его. Все остальное делают UnitTest'ы 

Автор: ivashkanet 6.3.2008, 16:55
Kosya4ok, такого понятния как автоматическое тестирование юеринтерфейса (а это и есть aspx страницы) почти не существует. Тестируют классы приложения.
Чтобы покрыть тестами как можно больше кода, стараются свести код на странице к минимуму. 
В идеале:
Код
private void btnCalculate_Click(...)
{
    string param1 = tbxFirstValue.Text;
    string param2 =ddlOperation.SelectedValue;
    ...

    PageLogic.Calculate(param1, param2, ...)
}


В данном случае тестуют класс PageLogic, а а ошибки на странице (не поддающаяся тестам часть) сводятся к минимуму.

Вот все что я знаю про тестирования веб страниц.

P.S. Про "почти": я что-то слышал про написание скриптов для тестирования Веб страниц, но не знаю ни что это ни на каком языке и с помощью какого инструмента это реалзуется. Да и не совсем ясно как это возможно.

P.P.S. Mymik, ты не прав. Программист просто обязан тестировать свой код! Ему же будет легче! 
1) Проще вносить изменения в код: ты уверен что ничего не сломал, так как тесты работают. проводить рефракторинг без тестов, ИМХО, почти невозможно.
2) При написании тестов (перед написание класса, а не после!) программист выступает в роли пользователя свое класса (ну и что, что он еще не написан) и думает об удобстве его использования, а не реализации.
3) И самое главное: ощущение уверенности: тесты прошли -- ты нигде не накосячил smile

Предлагаю прочитать какую-нить книгу по TDD (Test-Driven Development: Разработка Управляемая Тестами). 
Я просто балдею от книги Test-Driven Development in Microsoft .Net -- J. Newkrik и A. Vorontsov MS Press 2004
Можно, конечно, найти и другую и даже на русском, но я советую именно ее. Тем более она читается очень легко (наверное потому, что один из авторов русский).

Автор: Kosya4ok 6.3.2008, 21:46
Сенкс та за такой развернутый ответ. Будем изучать рекомендуемую литерутрку.

Автор: Stepan_Lameroff 6.3.2008, 22:26
Цитата(ivashkanet @  6.3.2008,  16:55 Найти цитируемый пост)
такого понятния как автоматическое тестирование юеринтерфейса (а это и есть aspx страницы) почти не существует

Ув. ivashkanet, позволю с вами немного не согласиться smile
При определенном усердии и желании при помощи http://watin.sourceforge.net/ и http://watintestrecord.sourceforge.net/ данная задача вполне осуществима.
 

Автор: ivashkanet 7.3.2008, 11:34
Stepan_Lameroff, слушай, класс  smile 
Наверное именно про такие скрипты я и слышал. Жаль что только для IE, но тоже хлеб  smile 

Большое спасибо, буду разбираться.

Автор: Stepan_Lameroff 12.3.2008, 08:25
ivashkanet,
Цитата(ivashkanet @  7.3.2008,  11:34 Найти цитируемый пост)
Жаль что только для IE, но тоже хлеб


http://watin.sourceforge.net/firefox.html - реализована поддержка Firefox smile

 

Автор: ivashkanet 12.3.2008, 09:12
Stepan_Lameroff, я когда познакомился поближе понял, что:
1) Какая вообще разница какой браузер? Верстку ты на нем сложно проверить -- намного удобнее открыть и посмотреть не поплыло ли, чем писать многокилобайтный скрипт. А функциональность (формы) у браузеров не отличается.
2) IE != MS IE. IE = Интернет Эксплорер (просто МС первыми захапали этот бренд). В Жаве (WatiJ) используетя тоже IE, но врятли это MS IE. Скорее уже Mozilla или сразу Gecko.

Так что это было написано по непониманию smile

Ознакомился я с этими Ватин*-ами и пришел к выводу, что тестировать все же лучше по старинке ( smile ), как я описал в моем первом посте. И тесты быстрее и нагляднее, и ошибок меньше сделаешь, и сами тесты будут не впример шустрее.

Таким образом считаю этот вариант тестирования полезным только в случае когда UI уже есть, все написано без учета возможности тестирования (как у меня в проекте) и по-другому тесты написать не получиться. (Но даже в моем случае, поотрывал бы руки предыдущим разработчикам, писать тесты с помощью WatiN не имею никакого желания smile )

Автор: Stepan_Lameroff 12.3.2008, 17:33
ivashkanet, Watin является UI testing framework, о почти полном отсутствии которых вы говорили, и, на мой взгляд, одним из лучших. А использовать, или изобретать велосипеды - дело лично каждого.
З.Ы. Если модераторы посчитают этот пост оффтопом, заранее приношу извинения! 

Автор: ivashkanet 12.3.2008, 18:06
Stepan_Lameroff, я не отрицаю, что был не в курсе такого вида тестирования. 
Более того я считаю что он найдет своего пользователя (тем более WatiN Recoder). 
А для написаных приложений это возможно единственный вариант.

Я просто написал свое мнение, сложившееся после знакомства с этим средством.
И это не значит, что оно не может изменится. Возможно в будущем я изменю позицию. Кто знает  smile 

Цитата(Stepan_Lameroff @  12.3.2008,  16:33 Найти цитируемый пост)
Watin является UI testing framework, о почти полном отсутствии которых вы говорили

Да, я это понял и оценил. "Отметил галку" в памяти, что такое есть, разобрался что это и с чем его едят. А "почти" было добавлено именно потому, что я слышал про такие фреймворки, но кроме "слышал" ничего не было...

Цитата(Stepan_Lameroff @  12.3.2008,  16:33 Найти цитируемый пост)
изобретать велосипеды

А про какой велосипед ты упоминаешь?



Автор: ulu 17.3.2008, 15:28
http://sm-art.biz/Ivonna.aspx позволяет тестировать Asp.Net страницы, "забираясь" внутрь объектной модели. То есть, ты пишешь что-то вроде
Код
Page page = session.GetPage("Default.aspx");

и потом исследуешь контролы на странице и проверяешь их свойства.

Есть возможность задавать заголовки запроса и проверять кукисы ответа, например. Есть масса более продвинутых сценариев: что будет, если накрылась база, например, или проверка того, что при регистрации пользователю отправляется письмо.

Цитата

Вот честно, хоть и мало у нас тестеров в фирме, но вот заставлять тестировать программиста... это извращение.


Попробовав Test Driven Development, уже в debug возвращаться не захочется. Тестеры пусть тестируют оболочку, но программную логику должен тестировать сам программист.

Автор: ivashkanet 18.3.2008, 09:25
ulu, спасибо большое за фреймворк. Будем знать.

Но все же, возможно пока, я придерживаюсь точки зрения изложенной выше.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)