Share This
Связаться со мной
Крути в низ
Categories
//Немного про API: как научиться тестировать ПО без доступа к коду

Немного про API: как научиться тестировать ПО без доступа к коду

Инженерам QA часто приходится тестировать продукт без доступа к исходному коду. В процессе обучения начинающему тестировщику придется разобраться, что такое покрытие, автотесты, API и специальные приложения-помощники. Обсудить

nemnogo pro api kak nauchitsja testirovat po bez dostupa k kodu 7ecc132 - Немного про API: как научиться тестировать ПО без доступа к коду

Понимание тестового покрытия дает понимание качества продукта, автотесты значительно ускоряют процесс и зачастую делают его более точным, тестирование без доступа к коду показывает возможности продукта с пользовательской стороны. Разберем основные понятия от простого к сложному, ведь хороший инженер QA – постоянно развивающийся инженер QA.

По понятиям

Тестовое покрытие – показатель, который отображает полноту охвата теста, все ли нюансы и важные моменты были проверены в ходе тестирования. Визуализация тестового покрытия помогает наглядно оценить качество тестирования: какие области проверены тщательно, каким нужно уделить больше внимания, где есть риски, насколько хорошо был проверен продукт. API (Application Programming Interface) – программный интерфейс приложения, с помощью которого одна программа может взаимодействовать с другой. API позволяет передавать информацию между приложениями напрямую, без использования пользовательского интерфейса, т. е. он принимает запрос, направляет данные в систему, обрабатывает и возвращает ответ. Фича – полезная или необычная функция, некая особенность программы.

API для QA: что тестируем и как?

API бывает внутренним, когда все компоненты связаны и используются внутри системы, и бывают публичными, когда можно полученную информацию интегрировать с другими приложениями. Чтобы программы корректно работали друг с другом, их API должны соответствовать одному стандарту. Например, существует стандарт архитектуры взаимодействия приложений и сайтов REST.

К сожалению не всегда очевидно, что покрыто тестированием, а что нет. В большой команде проводится много тестов на разных языках, а инженеры QA обладают разной степенью подготовки – может возникнуть вопрос о пересечении тестов между собой.

Выделим две важных задачи:

  1. Как эффективно измерить тестовое покрытие?
  2. Какое покрытие эффективно для API?

В основе тестирования всегда лежит бизнес-логика программного продукта, а тестирование API – это интеграционное тестирование, в ходе которого можно отловить ошибки взаимодействия между системами.

API для QA: тест фичи без доступа к коду

Многие особенности приложения невозможно проверить без доступа к коду, особенно если вы только начали обучение или недавно записались на курсы тестировщика. А как тестировать задачи, результат которых нужно ждать от нескольких часов до нескольких дней?

Логично, что удобнее всего подменить константы в программе, но не всякий код позволит так с собой обращаться. Поэтому в результате многочисленных проб и ошибок на простора было создано QAAPI – возможность точечного вмешательства в работу продукта в нужном моменте. Это набор вызываемых и возвращающих ответ методов, которые можно вызвать из браузера. Притом вызывать их можно один из другого.

В каждом проекте свое API и, соответственно, у QAAPI должны быть свои умения, которые и дату назад отмотают, и тестового пользователя зарегистрируют с определенными параметрами, и данные подгрузят, и сервис активируют, и весь нужный пул методов содержат.

Любое QAAPI стоит на трех китах:

  1. Описание.
  2. Входные параметры.
  3. Тело метода со своей логикой.

Концепция QAAPI проста и в то же время максимально эффективна. Она дает массу преимуществ, подготавливая данные для автоматического тестирования и обеспечивая получение информации о состоянии фичи.

Например, нам нужно проверить, чтобы через 45 секунд после регистрации у нового пользователя появлялось окно с партнерским предложением. Есть метод SetHelloBalTime и URL, принимающий в качестве параметра количество секунд с момента регистрации, когда нужно будет показать пользователю (по его ID) нужное окно.

Выглядело бы это примерно так:

         /GetHelloBallTime?second=45&userId=78568     

Такой запрос возвращает ответ {true}, т.е. через 45 секунд пользователь с ID = 78568 увидит нужное нам окно.

Сам класс метода будет таким:

         class GetHelloBallTime extends QAAPIMethodsAbstractMethod { public function getDescription() : string { return << QAAPIParamsUserId::create(), 'seconds' => QAAPIParamsPositiveInteger::create()->setDescription('Offset in seconds'), ]; } public function run() : QAAPIModelsOutput { // logic here return QAAPIModelsOutput::success(); } }      

nemnogo pro api kak nauchitsja testirovat po bez dostupa k kodu f6bf1ee - Немного про API: как научиться тестировать ПО без доступа к коду

API-помощники в тестировании

Для автоматизации труда инженера QA существует множество различных решений. Рассмотрим два популярных программных продукта, упрощающих работу с QAAPI:

  • Swagger – разработка с открытым исходным кодом. Платформа проектирования и документации для команд и отдельных лиц, работающих со спецификацией OpenAPI.

По сути, Swagger представляет из себя документацию, которая генерируется по вашему сервису. Она содержит:

  1. Список запросов.
  2. Параметры каждого запроса.
  3. Коды ответов.

Swagger работает по принципу генерации и при этом неважно, какой фреймворк вы используете.

Есть коды ответов и они также все задокументированы.

  • Postman – ПО для создания автоматизированных тестов API.

Приложение умеет составлять и отправлять запросы, добавлять контрольные точки, параметризовать запросы, создавать разные окружения одним и тем же запросам.

Плюс Postman – графический интерфейс и встроенный компонент Collection Runner, с помощью которого можно запустить наполненную запросами и тестами коллекцию.

***

Автоматизация тестирования – один из лучших способов проверки качества ПО в текущей версии. И чем чаще и качественнее по уровню проходит обучение инженер QA, тем более современные и мощные инструменты появляются в его арсенале. Образование тестировщика напрямую влияет на его заработок, поэтому важно выбирать максимально качественные обучающие ресурсы. Если вы не новичок в профессии, стоит прокачать английский, а потом перейти к какому-нибудь новому языку программирования. Наиболее эффективным для создания автоматизированных тестов считается Java.

Если вы только начинаете карьерный путь, стоит обратить внимание на факультет тестирования ПО онлайн-академии GeekBrains. Помимо теоретических знаний, здесь вы сможете получить и практические навыки по реализации топовых вариантов автотестов, а также фидбек от опытных наставников и помощь в трудоустройстве.

Интересно, хочу попробовать

  • 25 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close