Уеб тестването е различно от тестването на настолни приложения. При тестването на уеб приложения обикновено използваме браузър (клиента), за да поискаме уебсайт от уеб сървър, като комуникираме със сървъра чрез HTTP или HTTPS.
Важно е, че като тестери, когато участваме в уеб тестване, трябва да сме запознати с основите на HTTP, за да разберем добре как работят уеб приложенията.
При уеб тестването, освен функционалното тестване на отделни и интегрирани компоненти, някои от типовете тестове като производителност, сигурност, кръстосан браузър и отзивчивост, които не са задължително необходими при тестване на настолни приложения, стават от голямо значение при тестване на уеб приложения. Това е така, защото уеб приложенията са отворени за много публика, така че производителността трябва да се отчита.
Освен това уеб приложенията са по-податливи на атаки за сигурност, като DDos и SQL Injection, и ако даден уебсайт е насочен, престойът може да бъде много скъп, така че трябва да се постави голям акцент върху тестването на сигурността.
Повече уебсайтове се изграждат с помощта на уеб услуги. Те предоставят възможност на тестерите да тестват уеб приложението в изолирани компоненти, а не пълноценно интегрирано уеб приложение.
Предимствата на тестването на уеб услуги в изолация са:
Няма включен браузър - Можем да общуваме директно с уеб услуга, стига да знаем крайната й точка и какви параметри да изпращаме.
Много по-бързо - Тъй като се насочваме към изолирана уеб услуга, няма изображения, javascript или css за зареждане, така че отговорът е много по-бърз.
По-лесно отстраняване на грешки - при тестване на уеб услуга, ако срещнем проблем, е много по-лесно да открием причината за проблема и така отстраняването на грешки става по-малко болка.
Повече контрол - ние имаме пряк контрол върху това, което искане подаваме до уеб услугата, така че можем да използваме всякакви данни за сценарии за грешки на уеб услуги.
Можем да използваме Инструмент SopaUI за да тествате уеб услуга.
Тестването на производителността е особено важно при уеб тестване, тъй като уеб приложението е изложено на потенциално голям брой аудитория.
Когато тестваме уеб приложения, не само трябва да гарантираме, че уебсайтът е функционално стабилен, трябва да се уверим, че приложението няма да се срине, когато е подложено на голямо натоварване на сървъра.
За съжаление повечето хора забравят за тестването на производителността на уеб приложението или отлагат тестването непосредствено преди пускането, което е твърде късно. Ако има нещо коренно погрешно в дизайна или кода, което би могло да повлияе на производителността, няма да знаем за това, докато не стане твърде късно.
Най-добрият подход е да провеждате проверка на производителността толкова често, колкото тестовете за функционална регресия, за да имаме увереност, че производителността не е регресирала като част от промените в кодовата база.
Jmeter е популярен инструмент за тестване на натоварване с отворен код, който може да се използва за проверка на ефективността на даден сайт. Може да се интегрира и в CI сървър.
Тъй като има различен брой браузъри, трябва да гарантираме, че нашето уеб приложение работи според очакванията на всички тях (поне основните, т.е. Google Chrome, Mozilla Firefox и Microsoft Internet Explorer), да не забравяме Opera и Safari.
Както при всички тестове, трябва да знаем кои браузъри и техните версии поддържа приложението и след това да планираме тестването съответно.
Тестването на всичко във всеки браузър може да отнеме много време, поради което можем да използваме автоматизирани инструменти за проверка на функционалността на различни браузъри.
Освен това има онлайн инструменти за тестване на различни браузъри, които улесняват живота на тестерите да изпълняват тестовете си в различни браузъри.
Говорейки от личен опит, броят на проблемите, свързани с браузъра, е много малко и най-вече е свързан с много стари версии на браузърите или CSS не се прави правилно, давайки проблеми с оформлението.
Следователно може да не е необходимо да стартирате всички тестови случаи във всички браузъри, тъй като може да отнеме много време (дори когато е автоматизирано) за много малка печалба и шанс нещо да не работи много ниско.
Най-добрият подход е да стартирате всички тестови случаи в един основен браузър и след това да изберете няколко най-важни сценария и да ги стартирате в останалите браузъри.
По-голямата част от компаниите, разработващи уеб приложения, работят в гъвкав модел за разработка с чести версии, поради което е необходимо често тестване. При уеб тестване автоматизацията на тестове може да бъде от голяма полза, защото премахва тежестта на повтарящата се работа.
Освен че проверяваме функционалността, можем да използваме и автоматизирани скриптове, за да генерираме тестови данни, които са ни необходими по време на уеб тестване.
Друг начин, по който автоматизацията може да помогне при ръчно тестване, са инструменти като Селен WebDriver може да прави екранни снимки на действителната страница на браузъра. Ако трябва да проверим визуално голям брой страници, напр. искаме да знаем как локализираният текст се изобразява на различни уеб страници, можем да използваме инструмента, за да преминем през страниците и да направим екранни снимки и след това бързо да проверим визуално.
За повече информация вижте Тествайте съвети за автоматизация и най-добри практики
Доста често се налага да се анализира HTTP трафикът от браузъра към сървърите надолу по веригата. Като анализираме уеб трафика, можем да разгледаме подробностите за всяка заявка и отговор.
При уеб тестване, анализът на HTTP трафик е особено полезен при тестване на маркери за проследяване на трети страни, като маркери на Google Analytics или маркери на omniture на уеб страници.
Не само можем да проверим, че маркерите съдържат правилни стойности, ние всъщност можем да проверим дали заявките се изстрелват към подходящите системи на трети страни и че получаваме валиден отговор, обикновено 200 OK код за отговор.
За да можем да визуализираме и запишем HTTP трафик, трябва да използваме подходящ инструмент, който действа като прокси и може да прослушва заявките и отговорите между клиента, обикновено браузър, и сървърите.
Ето някои от най-популярните инструменти, които можем да използваме за анализ на HTTP трафик:
Wireshark ако искате да видите всичко, което се случва в мрежата.
Скрипач ако искате просто да наблюдавате HTTP / s трафик.
HTTP заглавки на живо ако сте във Firefox и искате бърза приставка, само за да видите заглавките.
FireBug можете да получите тази информация също и осигурява приятен интерфейс, когато работите върху една страница по време на разработката. Използвал съм го за наблюдение на AJAX транзакции.
Повече хора имат достъп до уебсайтове от мобилните си телефони. Това означава, че уеб тестването вече не е ограничено до браузъри на настолни компютри. Сега трябва да тестваме уеб приложения на мобилни платформи, както и на настолни компютри.
Има два типа уеб приложения за мобилни устройства, такива, които са специално разработени за мобилни платформи, и такива, които са „отзивчиви“, т.е. има само една версия на уеб приложението, създадено за настолни и мобилни устройства, но приложението се визуализира и е показва се различно в зависимост от размера на устройството.
И двата типа изискват тестване на мобилни устройства и / или симулатори.
По време на уеб тестване, както и функционално тестване, ние също трябва да проверим за, но не само: