План уроку:
Client-server model
HTTP & HTTPS
Що тестувати?
Інструменти WEB-тестування
Архітектура Client-Server
Трирівнева архітектура
Переваги архітектури:
Потужний сервер дешевше 100+ потужних клієнтських машин
Немає дублювання коду
Персональні дані у безпеці
Недоліки архітектури:
Впала одна ланка — усі відпочивають
Висока вартість обладнання
Потрібна команда підтримки
HTTP та HTTPS
HTTP — це протокол, в якому описані правила передачі в інтернеті.
Він допомагає браузеру завантажувати веб-сторінки, а серверу отримати інформацію, яку користувач запровадив на сайті.
HTTPS — це HTTP, але з надбудовою безпеки.
Розглянемо цей процес на прикладі реальних ключів
- Боб відправляє Алісі замок, ключ від якого є тільки у нього
Замок тут публічний ключ
- Аліса закриває замком Боба ящик з секретом та посилає назад
Також браузер шифрує повідомлення за допомогою публічного ключа і передає на сервер
- Відкрити скриньку не зможе ніхто: ні сама Аліса, ні співробітники пошти
Шахрай так само не може розшифрувати повідомлення браузера без закритого ключа
- Боб отримує ящик, відкриває своїм єдиним ключем та дізнається секрет
Сервер розшифровує повідомлення закритим ключем, який є тільки у нього
Специфіка Web Testing
Чинники якості сайтів
Своєчасність – час оновлення після дій.
Структура – лаконічна та легка для читання.
Контент – актуальний та зрозумілий.
Відновлюваність – розмір втрати даних.
Безпека – шифрування, верифікація користувачів.
Зручність використання – навігація.
Продуктивність – час завантаження сторінок.
Functionality Testing. Кукі
Зазвичай, на комп'ютерах користувачів записуються файли cookie двох типів.
Session Cookie: Ці файли cookie активні доти, доки не буде відкритий браузер, який запускає файл cookie. Коли ми закриваємо браузер, цей файл cookie сеансу видаляється.
Persistent Cookies: Ці файли cookie постійно записуються на комп'ютер користувача та зберігаються протягом кількох місяців або років.
Functionality Testing. Посилання
Протестуйте вихідні посилання з усіх сторінок на конкретний тестований домен.
Перевірте всі внутрішні посилання.
Протестуйте посилання, що використовуються для надсилання електронної пошти адміністратору або іншим користувачам з веб-сторінок.
Перевірте, чи є сторінки-сироти.
Перевірте чи є непрацюючі посилання.
Functionality Testing. Текстові блоки
Перевірте всі валідації для кожного поля.
Перевірте поля на значення за замовчуванням.
Перевірте відправку форм заповнюючи, обов'язкові та не обов'язкові поля.
Interface Testing
У програмній інженерії тестування інтерфейсу – це тестування з'єднання, яке поєднує два компоненти системи.
Тестування інтерфейсу включає тестування двох основних сегментів:
Веб-сервер та інтерфейс сервера додатків
Інтерфейс сервера застосунків та сервера баз даних.
Це тестування гарантує, що кінцеві користувачі або замовник не зіткнуться з
проблемами при використанні програмного продукту.
Interface Testing
У програмній інженерії тестування інтерфейсу – це тестування з'єднання, яке поєднує два компоненти системи.
Тестування інтерфейсу включає тестування двох основних сегментів:
Веб-сервер та інтерфейс сервера додатків
Інтерфейс сервера застосунків та сервера баз даних.
Це тестування гарантує, що кінцеві користувачі або замовник не зіткнуться з проблемами при використанні програмного продукту.
Інтерфейс командного рядка (CLI) – це місце, де ви вводите текст, а комп’ютер відповідає на цю команду.
Графічний інтерфейс користувача (GUI) – це місце, де ви взаємодієте з комп’ютером за допомогою зображень, а не тексту.
Програмний інтерфейс додатку (API) – представляє собою спосіб, яким програми можуть взаємодіяти один з одним. Фактично це специфікація можливих взаємодій з компонентом ПЗ.
Загальні елементи введення даних
Загальні елементи навігації
Загальні елементи відображення
Usability Testing. Навігація
Тест для навігації:
сайт має бути зручним;
головне меню має бути на кожній сторінці;
застосунок має бути послідовним.
Usability Testing. Контент
Перевірка контенту:
контент має бути логічним;
контент має бути зрозумілим;
перевірте на орфографічні помилки;
контент має бути осмисленим;
зображення мають бути розміщені в потрібному місці та з правильними розмірами.
Compatibility Testing
Основні перевірки:
браузер та версія;
операційна система;
адаптивність до мобільного перегляду.
Performance Testing
Stress testing:
як система реагує на навантаження;
як система відновлюється після збоїв;
тощо.
Load testing:
продуктивність на різній швидкості інтернет-з'єднання;
чи може система витримувати пікові навантаження;
обробка безліч одночасних запитів користувачів;
великі вхідні дані від користувачів;
тощо.
Performance Testing:
Jmeter
Gatling
Analyzing HTTP Traffic:
Wireshark
Fiddler
Charles
Postman
Web browsers Developer tool
Security Testing:
OWASP
Test Automation:
Selenium WebDriver
Katalon studio
Cypress
And a lot of other tools
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Урок 1. Web Testing
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
Опис завдання:
Валідатор паролів повинен перевіряти вхідний пароль на відповідність заданим правилам безпеки.
Правила безпеки для паролів:
Пароль повинен містити щонайменше 8 символів.
Пароль повинен містити щонайменше одну велику літеру.
Пароль повинен містити щонайменше одну малу літеру.
Пароль повинен містити щонайменше одну цифру.
Пароль може містити спеціальні символи (!, @, #, $, %, ^, &, *).
Завдання:
Визначте класи еквівалентності для валідатора паролів на основі правил безпеки.