День 1: Тестування API
Введення в API: Ознайомлення з поняттям API, його роллю у розробці програмного забезпечення та важливістю тестування.
Основи тестування API: Розуміння методів тестування API, створення HTTP-запитів, перевірка відповідей, обробка статусу кодів.
Автоматизація API-тестів: Введення в автоматизацію тестування API з використанням популярних інструментів, таких як Postman та RestAssured.
Тестування безпеки API: Вивчення базових принципів тестування безпеки API та перевірка на вразливості.
Вступление до основ тестирования ПО
Введення в API
Ознайомлення з поняттям API, його роллю у розробці програмного забезпечення та важливістю тестування.
– это процесс проверки и анализа программного продукта с целью выявления дефектов, ошибок и недостатков. Оно является неотъемлемой частью разработки ПО и играет важную роль в обеспечении качества и надежности конечного продукта.
Обеспечение качества: Тестирование помогает гарантировать, что программное обеспечение соответствует установленным требованиям и выполняет свои функции без ошибок. Оно помогает выявить и исправить проблемы, которые могут возникнуть в процессе разработки.
Выявление ошибок и дефектов: Тестирование позволяет выявить ошибки и дефекты в ПО, которые могут привести к неправильной работе приложения или нарушению его функциональности. Это позволяет разработчикам исправить проблемы до выпуска продукта на рынок.
Улучшение пользовательского опыта: Хорошо протестированное ПО обеспечивает лучший пользовательский опыт. Тестирование помогает обнаружить и исправить проблемы, которые могут повлиять на удобство использования, надежность и производительность приложения. Это позволяет создать продукт, который удовлетворяет потребности и ожидания пользователей.
Экономия времени и ресурсов: Раннее выявление ошибок и дефектов в процессе тестирования помогает предотвратить их распространение на следующие стадии разработки. Это позволяет сэкономить время и ресурсы, которые могут быть затрачены на исправление проблем в более поздних этапах.
Установление доверия пользователей: Хорошо протестированное ПО создает доверие у пользователей. Когда продукт работает без сбоев и соответствует их ожиданиям, пользователи больше доверяют ему и склонны использовать его на постоянной основе.
соответствие требованиям, которыми руководствовались проектировщики и разработчики,
правильность ответа для всех возможных входных данных,
выполнение функций в приемлемое время,
практичность,
совместимость с программным обеспечением и операционными системами,
соответствие задачам заказчика.
Цели тестирования программного обеспечения могут варьироваться в зависимости от потреб бизнеса и конкретного проекта. Однако, в целом, основные цели тестирования заключаются в выявлении ошибок и дефектов в программном обеспечении, проверке соответствия требованиям и ожиданиям пользователей, проверке функциональности, производительности, безопасности и совместимости программного обеспечения.
Основной целью процесса тестирования является доказательство того, что результат разработки соответствует предъявленным к нему требованиям.
Получение информации о статусе готовности заявленной функциональности системы или программы.
– це набір правил та інструкцій, які дозволяють різним програмним компонентам взаємодіяти між собою. API визначає, як програми можуть комунікувати, обмінюватися даними та викликати функції одна з одної.
Інтерфейс комунікації: API визначає набір методів, функцій та даних, які можна використовувати для взаємодії з іншими програмами або компонентами. Ці методи та функції можуть включати запити на дані, створення, збереження та оновлення даних, а також інші операції.
Абстракція комплексності: API надає спрощений спосіб взаємодії з складними системами або бібліотеками. Вміння використовувати API дозволяє програмістам взаємодіяти з функціональністю, не розуміючи всіх внутрішніх деталей.
Стандартизація: API допомагає стандартизувати спосіб взаємодії між програмами. Це дозволяє різним розробникам створювати програми, які можуть спілкуватися між собою, незалежно від того, на якій мові програмування чи платформі вони розроблені.
Розділення відповідальностей: API дозволяє розділити відповідальність між різними компонентами програми чи різними програмами. Наприклад, серверний API може надавати можливість веб-додаткам звертатися до бази даних, не розкриваючи деталей підключення до неї.
Розширення функціональності: За допомогою зовнішніх API можна розширювати функціональність своєї програми, використовуючи функціональність, надану іншими розробниками чи компаніями.
Інтеграція: API дозволяє різним компонентам програми або різним програмам взаємодіяти між собою. Це особливо важливо у розробці розподілених систем, де різні сервіси можуть обмінюватися даними та функціональністю.
Модульність: Використання API допомагає створювати програмне забезпечення відокремленими модулями. Кожен модуль може мати свою функціональність та інтерфейс, і це дозволяє зробити код більш читабельним та підтримуваним.
Реюзабельність: API дозволяє створювати різні програми, які можуть використовувати однаковий набір функцій. Це сприяє реюзабельності коду та швидкому розгортанню нових програм.
Партнерство: Відкриті API дозволяють розробникам створювати додатки, які розширюють функціональність певного програмного продукту. Це важливо для партнерства та розвитку екосистеми навколо продукту.
Функціональне тестування: Тестування API допомагає перевірити, чи працюють методи та функції згідно специфікації. Це важливо для забезпечення правильної роботи програми на рівні API.
Інтеграційне тестування: Тестування взаємодії між різними компонентами програмного забезпечення може виявити проблеми, пов’язані з передачею даних або некоректною взаємодією.
Перформанс-тестування: Тестування API допомагає виявити можливі проблеми з продуктивністю, які можуть виникнути під час великого навантаження на API.
Безпека: Тестування API може допомогти виявити можливі уразливості, такі як недостатні контролі при передачі даних або доступ до конфіденційної інформації через API.
Автоматизоване тестування: Тестування API може бути автоматизовано, що дозволяє швидко та ефективно перевірити функціональність та стабільність API.
або відкрити у новій вкладці Google Презентація
Для отримання додаткового матеріалу потрібно перейти за посиланням
Google Drive
Чому програміст не може знайти свою дівчину?
Тому що він використовує REST API.
Як програмісти вітають один одного?
Вони кажуть: "Привіт, World API".
Як називається API, яке допомагає людям заснути?
Sleepy API.
Як називається API, яке допомагає вам знайти роботу?
LinkedIn API.
Функціональне тестування API: Тут перевіряється, чи повертають методи та функції очікувані результати. Для цього ви передаєте вхідні параметри через HTTP-запит та перевіряєте, чи повертає відповідь очікуваний результат.
Інтеграційне тестування API: У цьому випадку ви перевіряєте взаємодію між різними компонентами чи сервісами. Ви створюєте сценарії, де одна частина викликає методи іншої частини та перевіряєте, чи відбувається взаємодія належним чином.
Тестування безпеки API: Тут перевіряється, чи існують можливі уразливості у методах API, такі як вразливості ін’єкції, недостатні права доступу тощо.
Тестування продуктивності API: Під час такого тестування перевіряється, як добре API працює під великим навантаженням. Ви вимірюєте час відповіді, швидкість обробки запитів тощо.
HTTP-методи: Ви використовуєте методи HTTP, такі як GET, POST, PUT, DELETE, для взаємодії з різними ресурсами.
URI: Ви вказуєте URI (Uniform Resource Identifier) для вказання ресурсу, з яким ви хочете взаємодіяти.
Параметри: Ви передаєте параметри через запити, які можуть включати дані для пошуку, сортування, фільтрації тощо.
Парсинг відповіді: Ви отримуєте відповідь у форматі JSON, XML або іншому форматі, та парсите її, щоб отримати значущі дані.
Перевірка даних: Ви перевіряєте, чи повернуті дані відповідають очікуванням, та перевіряєте правильність значень.
Статус-коди HTTP: При кожному HTTP-запиті сервер повертає статус-код, який вказує на результат операції. Наприклад, 200 означає успішний запит, 404 – ресурс не знайдено, 500 – внутрішня помилка сервера.
Перевірка статус-кодів: Ви перевіряєте статус-код, щоб зрозуміти, чи вдалося виконати запит належним чином.
Обробка помилок: Ви також обробляєте можливі помилки або некоректні статус-коди та реагуєте на них відповідним чином.
Для отримання додаткового матеріалу потрібно перейти за посиланням
Google Drive
Більше практики, тестів та інформації на нашому практикуму https://iqaengineer.com/ua/api_testing/
або відкрити у новій вкладці Google Презентація
Життя QA інженера: Якщо у вас немає статус-коду для власного життя, можливо, ви маєте оновити свій API.
Одруження як HTTP-запит: Я візьму POST-запит з обіцянкою любові та відправлю на адресу "/вінішуючий/шлюб". Очікуйте статус-код 201 Created!
Якщо тестер взаємодіє зі своїм кофе: GET /кава/збадьорити. Відповідь: 418 I'm a teapot.
Життя без тестування API: Як ви будете знати, чи вам сьогодні довезуть піцу? 404 Pizza Not Found!
Тестери та статус-коди: 200 OK знайти помилки і внести зміни. 500 Internal Server Error відкрито допомагати розібратися.
Спеціалізований інтернет для QA: Якщо ви відкриєте нову вкладку, у вас буде GET-запит. Якщо закриєте, DELETE-запит!
Перш за все, тестування безпеки API передбачає огляд потенційних загроз та вразливостей, таких як ін’єкції, перехоплення сесій, витік конфіденційної інформації тощо.
Важливо перевірити, як виконується аутентифікація та авторизація користувачів у системі. Чи використовується безпечний механізм передачі облікових даних? Чи мають користувачі доступ лише до тих ресурсів, до яких вони мають права?
Це одна з найпоширеніших вразливостей. Під час тестування слід перевірити, чи валідуються та екрануються дані, які надходять від користувача, щоб уникнути SQL-, HTML- та інших ін’єкцій.
Переконайтеся, що дані, передані між клієнтом та сервером, шифруються та захищені від перехоплення, таким чином унеможливлюючи зловмисникам здійснити атаку MITM (Man-In-The-Middle).3
Перевірте, чи здійснюється коректне валідування вхідних даних. Це допоможе запобігти введенню некоректних даних, які можуть спричинити вразливості або атаки.
Для отримання додаткового матеріалу потрібно перейти за посиланням
Google Drive
Більше практики, тестів та інформації на нашому практикуму https://iqaengineer.com/ua/api_testing/
або відкрити у новій вкладці Google Презентація
Крадіжка даних через недостатньо захищені API: У 2017 році компанія Equifax стала жертвою атаки через вразливість в їх API. Зловмисники використали “Broken Authentication” для доступу до конфіденційної інформації понад 143 мільйонів клієнтів, включаючи соціальні номери.
Криза безпеки з Facebook API: У 2018 році було виявлено, що компанія Cambridge Analytica використовувала API Facebook для збору даних мільйонів користувачів без їхньої згоди. Цей інцидент підкреслив важливість правильної аутентифікації та авторизації у великих системах.
Злам Tesla API через перебір паролів: У 2020 році дослідникам вдалося отримати доступ до системи Tesla, використовуючи брутфорс атаку на API, через яке автомобіль керується додатком.
Вразливість OAuth в Reddit API: У 2018 році було виявлено, що Reddit API дозволяв зловмисникам використовувати аутентифікаційний токен для доступу до чужого облікового запису без пароля.
Смарт-годинники та виток даних через API: У 2019 році було виявлено, що деякі смарт-годинники мали вразливості в API, через які зловмисники могли отримати доступ до особистих даних користувачів, таких як геолокація та здоров’я.
Підзарядка електромобілів через API: У 2018 році дослідники виявили вразливість в API для підзарядки електромобілів, яка дозволяла атакувачам переключати зарядку на інші автомобілі або вимикати її взагалі.
Міжнародний аеропорт та недостатня авторизація: У 2014 році дослідники змогли використати API міжнародного аеропорту, щоб отримати доступ до пасажирських даних, включаючи номери бортових квитків.
Злам API для діагностики автомобілів: У 2021 році було виявлено вразливість в API, яке використовується для діагностики та програмування автомобілів. Зловмисники могли отримувати доступ до найсекретніших функцій автомобіля.
Атака на Twitter API: У 2020 році зловмисники використали вразливість в API Twitter для злому облікових записів відомих осіб та компаній, щоб поширити шахрайські повідомлення.
Скарги через недостатню безпеку API фінансових служб: Системи API фінансових служб часто використовуються для передачі грошових коштів. Недостатня безпека API може призвести до втрати грошей та порушення довіри користувачів.
включає створення скриптів або тестових сценаріїв, які взаємодіють з програмним інтерфейсом замість людського користувача. Це дозволяє виконувати тести швидше, частіше та більш точно. Автоматизація сприяє виявленню помилок на ранніх стадіях розробки, що робить процес тестування більш ефективним та економічно обгрунтованим.
це один з найпопулярніших інструментів для автоматизації тестування API. Він надає зручний графічний інтерфейс для створення, відправки та аналізу HTTP-запитів до API. За допомогою Postman можна легко створювати та налаштовувати тестові набори, які автоматично перевіряють правильність відповідей сервера.
це бібліотека для тестування REST API на мові Java. Вона надає можливість писати тестові сценарії в коді, що дозволяє інтегрувати автоматизовані тести безпосередньо в ваш проект. RestAssured спрощує створення запитів, перевірку відповідей та обробку статусу кодів.
Для отримання додаткового матеріалу потрібно перейти за посиланням
Postman
RestAssured
Сніпети
Більше практики, тестів та інформації на нашому практикуму https://iqaengineer.com/ua/api_testing/
Можливості для зв'язку з нами
Практичні завдання
Мы также присутствуем в социальных сетях! Подписывайтесь на нас и получайте последние новости, акции, скидки, бесплатные тренинги и участие в марафонах.
Будем рады видеть вас в нашем сообществе!
Публичная оферта. Авторское право © 2024 Школа подготовки тестировщиков