Повсеместное проникновение интернета, рост и усложнение бизнеса, глобализация, цифровизация, мобильные технологии – лишь некоторые тренды, царящие в 21-м веке. Они открывают компаниям дополнительные возможности, в части предоставления менеджерам комплексной, всесторонней информации для принятия управленческих решений, автоматизации процессов, в рамках которых взаимодействуют несколько или, даже, все подразделения компании, повышения эффективности и снижения расходов за счет своевременности, полноты, доступности информации. Реализация этих возможностей во многом зависит от ИТ ландшафта компании. Возможность объединения своих систем, а порой и систем контрагентов в единую экосистему является вызовом для ИТ лидеров компаний.
Объединение систем посредством интеграционных интерфейсов стало стандартом для всех отраслей бизнеса. При разработке систем уже в обязательном порядке закладывается API, т.е. некие описанные процедуры и функции, посредством вызова которых можно взаимодействовать с системой извне. Качество реализации API и продуманность интеграции систем является ключевым моментом в создании целостной ИТ экосистемы в компании, т.к. любые ошибки могут повредить данные сразу в нескольких системах, что не только сложно и дорого исправить, но и вызывает трудности в их поиске. В том числе, чтобы избежать подобных проблем существует тестирование API.
Тестирование API – проверка работоспособности и соответствия требованиям процедур и функций системы, открываемых вовне. Тестирование API отличается от функционального тестирования систем. Т.к. для обмена данными системам не требуется графический интерфейс, то он отсутствует. При тестировании API используются специфические инструменты, позволяющие делать запросы в системы, чьи API тестируются и разбирать ответы этих систем. Как правило, запросы соответствуют одному из промышленных стандартов, например, SOAP, REST.
В тестировании API, как и в любом другом тестировании есть своя специфика. Ниже перечислены несколько ключевых особенностей тестирования API.
1) Проверка работы API на большом количестве различных наборов данных. Системы, которые обмениваются информацией содержат множество разнородной информации, поэтому необходимо проанализировать и составить наборы данных, обеспечивающие наибольшее покрытие системы при тестировании. Выполнение запросов, как правило, занимает секунды, поэтому проверить API на большом количестве различных наборов данных возможно. Намного сложнее подготовить тестовые данные, обеспечивающие максимальное покрытие возможных вариантов.В настоящее время, тестирование API применяется не только для проверки интеграции нескольких систем. С развитием IoT (интернет вещей) и всеобщим распространением мобильных телефонов тестирование API активно применяется при тестировании серверной части интернета вещей и тестировании мобильных приложений, т.к. мобильные приложения, зачастую, используют API других систем. Также, используя API сервера можно частично проверить и работу клиентской части, путем подмены ответов сервера. Применений тестирования API огромное множество, и оно будет все более и более востребованным.
В нашей компании ITQC накоплен значительный опыт по тестированию API. При тестировании мы учитываем не только технические, но и бизнес требования, что в совокупности с другими видами тестирования позволяет обеспечить уверенность клиента в качестве разрабатываемого продукта.