Безмилостно тестване на уеб приложения проект OpenQA Свилен Иванов (svilen.ivanov@gmail.com) OpenFest 2007
Какво ще представя <ul><li>Как може автоматизирано да се тества едно уеб приложение </li></ul><ul><li>Създаване на тест си...
Защо автоматизиране? <ul><li>Трудоемко (и скучно) </li></ul><ul><ul><li>различни платформи/браузъри = много варианти </li>...
Какво е функционално тестване? <ul><li>Проверява коректността на системата от гледна точка на потребителя </li></ul><ul><l...
Какво е Selenium? <ul><li>Проект специализиран за уеб приложения </li></ul><ul><li>Управлява браузър, симулирайки потребит...
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация
Пример: Тестване на регистрация <ul><li>Тестов сценарий: </li></ul><ul><ul><li>Отваряме приложението </li></ul></ul><ul><u...
Как изглежда един тест
Как изглежда един тест 01  <table> 02   <tr> 03   <td> open </td> 04   <td> /WebApplication1 </td> 05   <td></td>  06   </...
Как да стартираме теста (1/3) <ul><li>Чрез Selenium Test Runner </li></ul><ul><ul><li>ядрото: Javascript/HTML за симулиран...
Как да стартираме теста (2/3) <ul><li>Чрез Selenium IDE </li></ul><ul><ul><li>разширение към Firefox </li></ul></ul><ul><u...
Как да стартираме теста (3/3) <ul><li>Чрез Selenium Remote Control </li></ul><ul><ul><li>прокси сървър между браузъра и пр...
Възможности <ul><li>Потребителски действия </li></ul><ul><ul><li>Навигация </li></ul></ul><ul><ul><li>Попълване на входни ...
Заключение <ul><li>Selenium предлага автоматизиране на голяма част от ръчното тестване </li></ul><ul><li>Преносимост на те...
Upcoming SlideShare
Loading in …5
×

Безмилостно тестване на уеб приложения със Selenium

4,343 views

Published on

Аудиторията ще бъде запозната с проекта OpenQA (http://www.openqa.org/), обединяващ инструменти с отворен код за подпомагане и/или автоматизиране тестването на приложения. Ще бъде обърнато специално внимание на Selenium – изключително полезен инструмент за създаване на функционални тестове за уеб и AJAX приложения, както и изпълнението им без намесата на човек върху множество браузъри (Firefox, Internet Explorer) и платформи (Linux, Windows). Ще бъдат показани примерни тестове, начини за създаването им (ръчно или чрез приставка към Firefox), както и възможности за разширяване на Selenium за специфични задачи.

Освен практическата страна - запознаване със Selenium - лекцията насърчава разработчиците да създават софтуер изчистен от грешки като представя достъпни и качествени инструменти за автоматизиране на рутинни (и най-вече скучни) задачи при тестването софтуера. Selenium може да се използва като алтернатива на „затворени“ продукти за функционално тестване в съвременните, гъвкави и тестово-ориентирани методологии за разработка на софтуер (Agile Development, Test-Driven Development, Extreme Programming).

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,343
On SlideShare
0
From Embeds
0
Number of Embeds
190
Actions
Shares
0
Downloads
72
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Theme created by Sakari Koivunen and Henrik Omma Released under the LGPL license.
  • Безмилостно тестване на уеб приложения със Selenium

    1. 1. Безмилостно тестване на уеб приложения проект OpenQA Свилен Иванов (svilen.ivanov@gmail.com) OpenFest 2007
    2. 2. Какво ще представя <ul><li>Как може автоматизирано да се тества едно уеб приложение </li></ul><ul><li>Създаване на тест симулиращ реален потребител на приложението </li></ul><ul><li>Изпълнение на един тест върху различни браузъри и платформи </li></ul><ul><li>Всичко това с помощта на Selenium </li></ul><ul><ul><li>средство за автоматизирано тестване на уеб приложение с отворен код </li></ul></ul><ul><ul><li>част от групата проекти с отворен код за тестване – OpenQA </li></ul></ul>
    3. 3. Защо автоматизиране? <ul><li>Трудоемко (и скучно) </li></ul><ul><ul><li>различни платформи/браузъри = много варианти </li></ul></ul><ul><li>Изисква значителен човешки ресурс </li></ul><ul><ul><li>тестери, запознати в детайли с приложението </li></ul></ul><ul><ul><li>„човешки“ фактор </li></ul></ul><ul><li>Не може да се повтаря лесно </li></ul><ul><ul><li>например веднъж дневно, в началото на работния ден </li></ul></ul><ul><li>Намалява възможността за „неприятни“ изненади с наближаване на крайния срок </li></ul>
    4. 4. Какво е функционално тестване? <ul><li>Проверява коректността на системата от гледна точка на потребителя </li></ul><ul><li>Обхваща почти всички подсистеми на приложението: </li></ul><ul><ul><li>потребителски интерфейс, съобщения за грешки </li></ul></ul><ul><ul><li>манипулиране на данни, бизнес процеси </li></ul></ul><ul><ul><li>сигурност и контрол на достъпа </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>(Обикновено) се прилага се към в края на процеса на разработка </li></ul>
    5. 5. Какво е Selenium? <ul><li>Проект специализиран за уеб приложения </li></ul><ul><li>Управлява браузър, симулирайки потребителски действия </li></ul><ul><ul><li>щракане върху бутони/връзки, попълване на полета, drag & drop </li></ul></ul><ul><li>Мултиплатформен </li></ul><ul><ul><li>Linux, Windows, Mac OS X </li></ul></ul><ul><ul><li>Firefox, Internet Explorer, Safari, Opera, Konqueror </li></ul></ul><ul><li>Проект с отворен код </li></ul><ul><ul><li>стартира 2004, активна общност </li></ul></ul>
    6. 6. Пример: Тестване на регистрация
    7. 7. Пример: Тестване на регистрация
    8. 8. Пример: Тестване на регистрация
    9. 9. Пример: Тестване на регистрация
    10. 10. Пример: Тестване на регистрация
    11. 11. Пример: Тестване на регистрация
    12. 12. Пример: Тестване на регистрация
    13. 13. Пример: Тестване на регистрация
    14. 14. Пример: Тестване на регистрация
    15. 15. Пример: Тестване на регистрация <ul><li>Тестов сценарий: </li></ul><ul><ul><li>Отваряме приложението </li></ul></ul><ul><ul><ul><li>Виждаме форма за въвеждане </li></ul></ul></ul><ul><ul><li>Въвеждаме валидни потребителски име и парола </li></ul></ul><ul><ul><li>Натискаме „Login“ </li></ul></ul><ul><ul><ul><li>Ако видим списък със студенти, всичко е наред </li></ul></ul></ul>
    16. 16. Как изглежда един тест
    17. 17. Как изглежда един тест 01 <table> 02 <tr> 03 <td> open </td> 04 <td> /WebApplication1 </td> 05 <td></td> 06 </tr> 07 <tr> 08 <td> verifyTextPresent </td> 09 <td> Welcome to Student's Database </td> 10 <td></td> 11 </tr> 12 <tr> 13 <td> verifyTextPresent </td> 14 <td> Login </td> 15 <td></td> 16 </tr> 17 <tr> 18 <td> type </td> 19 <td> form:username </td> 20 <td> svilen </td> 21 </tr> 21 <tr> 22 <td> type </td> 23 <td> form:password </td> 24 <td> s3cr3t </td> 25 </tr> 26 <tr> 27 <td> clickAndWait </td> 28 <td> form:login </td> 29 <td></td> 30 </tr> 31 <tr> 32 <td> verifyTextPresent </td> 33 <td> Student's Database </td> 34 <td></td> 35 </tr> 36 <tr> 37 <td> verifyTextPresent </td> 38 <td> List of all students </td> 39 <td> svilen </td> 40 </tr> 41 </table>
    18. 18. Как да стартираме теста (1/3) <ul><li>Чрез Selenium Test Runner </li></ul><ul><ul><li>ядрото: Javascript/HTML за симулиране на действията на потребителя </li></ul></ul><ul><ul><li>позволява стартиране на тестовете в произволен браузър: Firefox, Internet Explorer, Opera, ... </li></ul></ul><ul><ul><li>необходим е достъп до уеб сървъра, където работи приложението </li></ul></ul><ul><ul><ul><li>скриптове от други домейни нямат достъп до DOM на текущата страница </li></ul></ul></ul>
    19. 19. Как да стартираме теста (2/3) <ul><li>Чрез Selenium IDE </li></ul><ul><ul><li>разширение към Firefox </li></ul></ul><ul><ul><li>стартиране на тест върху произволна инсталация на приложението без да е необходимо някакво допълнително инсталиране </li></ul></ul><ul><ul><li>подпомага разработването на нови тестове като записва действията на потребителя </li></ul></ul><ul><ul><li>идеален за бързо експериментиране с възможностите на Selenium </li></ul></ul><ul><ul><li>може да записва тестове като – HTML, Java, Perl, Python, Ruby, C# </li></ul></ul>
    20. 20. Как да стартираме теста (3/3) <ul><li>Чрез Selenium Remote Control </li></ul><ul><ul><li>прокси сървър между браузъра и приложението </li></ul></ul><ul><ul><ul><li>„инжектира“ в кода на приложението необходимия Selenium код </li></ul></ul></ul><ul><ul><ul><li>командва браузъра дистанционно </li></ul></ul></ul><ul><ul><li>позволява да се пишат тестове на различни езици: Java, Ruby, Perl, PHP, Python, C#. </li></ul></ul><ul><ul><li>дава възможност да се създават сложни тестове </li></ul></ul><ul><ul><li>стартиране на тестовете по график, като част от процеса на разработка </li></ul></ul><ul><ul><ul><li>например при промяна на кода в SVN/CVS </li></ul></ul></ul>
    21. 21. Възможности <ul><li>Потребителски действия </li></ul><ul><ul><li>Навигация </li></ul></ul><ul><ul><li>Попълване на входни полета </li></ul></ul><ul><ul><ul><li>бутони, текстови полета, падащи менюта... </li></ul></ul></ul><ul><ul><li>Щракване, влачене и пускане с мишка </li></ul></ul><ul><ul><li>Работа с cookies </li></ul></ul><ul><li>Проверка </li></ul><ul><ul><li>наличие/отсъствие на текст/DOM елементи </li></ul></ul><ul><ul><li>alert(), confirm(), изкачащи прозорци </li></ul></ul><ul><li>Разширяване </li></ul>
    22. 22. Заключение <ul><li>Selenium предлага автоматизиране на голяма част от ръчното тестване </li></ul><ul><li>Преносимост на тестовете от едни браузър/ОС на други </li></ul><ul><li>Предлага богат избор на езици за програмиране на тестовете </li></ul><ul><li>Може да се стартира без намеса на тестера </li></ul><ul><li>Предвидена е възможност за разширяване с функционалност специфична за конкретния проект </li></ul>

    ×