Понимание тестового покрытия дает понимание качества продукта, автотесты значительно ускоряют процесс и зачастую делают его более точным, тестирование без доступа к коду показывает возможности продукта с пользовательской стороны. Разберем основные понятия от простого к сложному, ведь хороший инженер QA – постоянно развивающийся инженер QA.
По понятиям
Тестовое покрытие – показатель, который отображает полноту охвата теста, все ли нюансы и важные моменты были проверены в ходе тестирования. Визуализация тестового покрытия помогает наглядно оценить качество тестирования: какие области проверены тщательно, каким нужно уделить больше внимания, где есть риски, насколько хорошо был проверен продукт. API (Application Programming Interface) – программный интерфейс приложения, с помощью которого одна программа может взаимодействовать с другой. API позволяет передавать информацию между приложениями напрямую, без использования пользовательского интерфейса, т. е. он принимает запрос, направляет данные в систему, обрабатывает и возвращает ответ. Фича – полезная или необычная функция, некая особенность программы.
API для QA: что тестируем и как?
API бывает внутренним, когда все компоненты связаны и используются внутри системы, и бывают публичными, когда можно полученную информацию интегрировать с другими приложениями. Чтобы программы корректно работали друг с другом, их API должны соответствовать одному стандарту. Например, существует стандарт архитектуры взаимодействия приложений и сайтов REST.
К сожалению не всегда очевидно, что покрыто тестированием, а что нет. В большой команде проводится много тестов на разных языках, а инженеры QA обладают разной степенью подготовки – может возникнуть вопрос о пересечении тестов между собой.
Выделим две важных задачи:
Как эффективно измерить тестовое покрытие?
Какое покрытие эффективно для API?
В основе тестирования всегда лежит бизнес-логика программного продукта, а тестирование API – это интеграционное тестирование, в ходе которого можно отловить ошибки взаимодействия между системами.
API для QA: тест фичи без доступа к коду
Многие особенности приложения невозможно проверить без доступа к коду, особенно если вы только начали обучение или недавно записались на курсы тестировщика. А как тестировать задачи, результат которых нужно ждать от нескольких часов до нескольких дней?
Логично, что удобнее всего подменить константы в программе, но не всякий код позволит так с собой обращаться. Поэтому в результате многочисленных проб и ошибок на простора было создано QAAPI – возможность точечного вмешательства в работу продукта в нужном моменте. Это набор вызываемых и возвращающих ответ методов, которые можно вызвать из браузера. Притом вызывать их можно один из другого.
В каждом проекте свое API и, соответственно, у QAAPI должны быть свои умения, которые и дату назад отмотают, и тестового пользователя зарегистрируют с определенными параметрами, и данные подгрузят, и сервис активируют, и весь нужный пул методов содержат.
Любое QAAPI стоит на трех китах:
Описание.
Входные параметры.
Тело метода со своей логикой.
Концепция 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(); } }
API-помощники в тестировании
Для автоматизации труда инженера QA существует множество различных решений. Рассмотрим два популярных программных продукта, упрощающих работу с QAAPI:
Swagger – разработка с открытым исходным кодом. Платформа проектирования и документации для команд и отдельных лиц, работающих со спецификацией OpenAPI.
По сути, Swagger представляет из себя документацию, которая генерируется по вашему сервису. Она содержит:
Список запросов.
Параметры каждого запроса.
Коды ответов.
Swagger работает по принципу генерации и при этом неважно, какой фреймворк вы используете.
Есть коды ответов и они также все задокументированы.
Postman – ПО для создания автоматизированных тестов API.
Приложение умеет составлять и отправлять запросы, добавлять контрольные точки, параметризовать запросы, создавать разные окружения одним и тем же запросам.
Плюс Postman – графический интерфейс и встроенный компонент Collection Runner, с помощью которого можно запустить наполненную запросами и тестами коллекцию.
***
Автоматизация тестирования – один из лучших способов проверки качества ПО в текущей версии. И чем чаще и качественнее по уровню проходит обучение инженер QA, тем более современные и мощные инструменты появляются в его арсенале. Образование тестировщика напрямую влияет на его заработок, поэтому важно выбирать максимально качественные обучающие ресурсы. Если вы не новичок в профессии, стоит прокачать английский, а потом перейти к какому-нибудь новому языку программирования. Наиболее эффективным для создания автоматизированных тестов считается Java.
Если вы только начинаете карьерный путь, стоит обратить внимание на факультет тестирования ПО онлайн-академии GeekBrains. Помимо теоретических знаний, здесь вы сможете получить и практические навыки по реализации топовых вариантов автотестов, а также фидбек от опытных наставников и помощь в трудоустройстве.
Интересно, хочу попробовать