Начали мы с обсуждения - что такое API. Вот несколько определений, которые мы сформулировали:
- Дверь, в которую можно постучаться и тебе ответят) (Evgeniy Nepsha)
- Ключ к функционалу, или части функционала программы, чтобы использовать ее в других приложениях (Миша Гречуха)
- То, что нужно знать, чтобы взаимодействовать с каким-то ПО. если свое пишешь или тестируешь (Oleksandr Velychko)
- Программный интерфейс для интеграции программ между собой (Koval, Konstantin)
- Интерфейс взаимодействия с ПО (Nikita Drok)
Кроме того, мы пришли к выводу, что API способен помочь в тестировании продукта, для доступа к которому он используется. Например, с помощью API можно начинать тестирование продукта в том случае, когда GUI не готов. И автоматизировать тесты через запросы к API обычно намного легче - для этого достаточно несложных запросов на скриптовом языке или на bash.
Отдельная интересная тема, которую мы обсудили - аутентификация пользователей для использования API. Она бывает разной - к некоторым API доступ открыт, к другим нужен специальный ключ, к третьим нужно передавать логин и пароль. Доступ через API может быть источником уязвимостей приложения, потому что иногда про него забывают. И поэтому через API пользователи могут получить доступ к закрытому для них функционалу.
Дальше была самая крупная часть сессии - практика. Объектом тестирования был выбран API Яндекс переводчика. И, надо сказать, участники нашли несколько интересных вещей - потенциальных багов:
- При запросе без указания необходимого параметра lang появляется не совсем корректная ошибка: "{"code":501,"message":"The specified translation direction is not supported"}". Тестировщик: Evgeniy Nepsha.
- При запросе с html тегами во входящем тексте, варианты перевода отличаются при использoвании формата html и plain, хотя сам исходник ничем не отличается. Тестировщик: Evgeniy Nepsha.
- При запросе перевода с параметром lang=ru-en, с параметром text, который содержит текст "Russian" , выходной текст содержит перевод "English". Что выглядит по меньшей мере странным, потому что слова Russian мы просить не переводили. Тестировщик: Evgeniy Nepsha.
- Допустимы запросы с параметром text больше максимально допустимых документацией 10000 символов (без пробелов). Тестировщик: Maryna Kolesnik.
- При переводе с французского на испанский слово "Francais" переводится как "inglés". Откуда вдруг берется английский - непонятно :) Тестировщик: Oleksandr Velychko.
- Непонятная логика транслитерации. При запросе возвращается "Лингва Латина нон пенис canina к", хотя ожидается, что все слова будут в транслите. Тестировщик: Nikita Drok.
После практики мы выбрали тему следующей сессии - ей будет "Тестирование мобильных приложений". А также подвели итоги:
- Для тестирования API нужно знать специальные инструменты и уметь ими пользоваться. Это сильно облегчает тестирование.
- Ожидаемо пригодится знание функционала самого продукта и технологий, которые в нем используются.
- API тестирование - хороший кандидат для автоматизации.
- Умение программировать тоже пригодится в тестировании API - оно поможет взглянуть на API с точки зрения его основных пользователей.
- При тестировании Web API нужно знать основы HTTP (коды ошибок, методы GET-POST-PUT, и так далее)
Всю переписку можно посмотреть в файлике.
Добрый день. Очень интересно, скажите, а есть видео, с сесии? Очень хочется посмотреть).
ОтветитьУдалитьЗдравствуйте! Видео нет, но оно и не нужно - все, что есть, можно прочитать в переписке.
ОтветитьУдалить