Трудно представить себе современное приложение, которое работает только в автономном режиме. Даже если такая возможность разработчиками предоставляется, все равно практически любому приложению необходимо время от времени соединяться с интернетом, чтобы обновить данные или загрузить обновления.
Чтобы провести комплексное тестирование интернет-соединения, следует проверить:
- текущее соединение с интернетом, на котором мы будем работать;
- конфигурации соединения с интернетом тестируемого приложения;
- устойчивость приложения к неполадкам в сети;
- устойчивость приложения к перегрузкам (нагрузочное тестирование).
Проверка соединения с интернетом
Перед началом работы стоит протестировать текущее соединение, чтобы определить, будут ли тесты в данной среде валидными. Тестирование интернет-соединения среды включает в себя проверку скорости отправки и получения пакетов, а также качество подключения с помощью вычисления колебания в серии последовательных измерений пинга при посылке запросов на один и тот же адрес.
Последнее является одним из базовых умений пользователя консоли. Команда, позволяющая это делать, стоит в начале списка команд, которые узнает новичок. Речь идет, конечно, о команде ping. Она идентична для Windows и Linux.
Команду следует вписать в консоли, а после нее IP-адрес или http-адрес страницы, которую мы хотим «пинговать». Команда посылает несколько тестовых пакетов по протоколу TCP/IP на указанный сервер и измеряет время ответа (если таковой последует). Таким образом, мы проверяем работоспособность сети, а также качество соединения с конкретным IP-адресом, указанным после команды, ведь может так случиться, что соединение с интернетом у нас рабочее, а на вызываемом сервере как раз проблемы, из-за чего машины не могут соединиться друг с другом. Перед началом тестирования полезно «пропинговать» сервер нашего приложения, чтобы убедиться, что соединение надежное и среда настроена правильно.
На скриншоте видно, как мы даем в консоли команду пропинговать страницу google.com. Программа сообщает нам, что совершила попытку отправить по указанному адресу пакет с 32 байтами данных (небольшой тестовый пакет, просто чтобы получить ответ). Утилита делает это 4 раза и высвечивает результаты попыток на экране. Далее приводится отчет об операциях со средними показателями. Чтобы получить ответ от сайта программе понадобилось в среднем около 13 миллисекунд. Неплохое время! Наш интернет работает быстро и стабильно (ни одного пакета не потеряно).
Проверка пропускной способности канала связи (насколько быстро посылаются/получаются пакеты) осуществляется с помощью специальных программ и утилит, которые легко можно найти в интернете. Например, Test TCP (TTCP) от Cisco. Также можно проверить все три аспекта с помощью онлайн-утилит (например, https://www.nperf.com/ru/ или https://www.speedtest.pl/ru/).
Тестирование интернет-конфигураций приложения
Когда мы убедимся, что среда работает стабильно и правильно, наступает очередь тестирования конкретного приложения. Начать стоит с конфигураций интернет-соединения в данном приложении, если таковые имеются. Чаще всего мы можем столкнуться с такой необходимость в случае десктопных приложений.
В подавляющем большинстве случаев параметры соединения с сетью находятся в специальном конфигурационном текстовом файле, к которому нет доступа “простым” пользователям. Какие параметры необходимо сообщить приложению и в каком формате они должны сообщаться, подскажут разработчики. Задача тестировщика попробовать разные комбинации таких параметров, а также неправильные параметры. Последнее нужно, чтобы проверить, как система будет реагировать на неправильные параметры и какую информацию об ошибке предоставит пользователю.
Например, рассмотрим конфигурационный файл приложения ERP. Приложение должно знать, к какой базе данных подключаться, какой сервер использовать, с каким профилем работать и какие плагины использовать.
Всю эту информацию мы предоставляем ей в конфигурационном файле. Чтобы удобнее было оперировать данными, можно разделить их на секции (названия в квадратных скобках. Вариантов тестирования конфигураций множество: базы на локальном/удаленном сервере, несуществующие пути к БД и серверам, правильные/неправильные логины и пароли, разные комбинации плагинов и так далее.
Проверка устойчивости приложения к перепадам в сети
После теста конфигураций стоит проверить “устойчивость” приложения к неполадкам в сети и перебоям связи. Например, хорошим тестом будет прерывание интернет-соединения во время выполнения каких-либо задач: загрузки данных, обновлений, отправления данных на сервер.
Перебои в связи не должны серьезно нарушить работу приложения и точно не должны привести к потере каких-либо данных. Кроме того, пользователь должен быть проинформирован, что произошло, какая задача не была выполнена и почему, а также что может сделать пользователь, чтобы исправить ситуацию.
Стоит ли упоминать, что информация должна быть правдива (точно диагностировать проблему) и содержать действенные инструкции насчет того, как разрешить сложившуюся ситуацию.
Нагрузочное тестирование
Нелишним также бывает проведение нагрузочного тестирования, которое чаще всего является все же прерогативой автоматизаторов. Нагрузочное тестирование предполагает симуляцию ситуации, когда сервер перегружен (присоединяется большое количество пользователей, сервер должен прочесть большой документ или сгенерировать отчет на основе большого количества данных).
Задачей такого тестирования является не только проверить, справится ли ПО с задачей, но и измерить время отклика (часто этот параметр можно улучшить программными методами). Нагрузка на сервера чаще всего создается с помощью специальных программ.
Итоги
Тестирование интернет-соединения включает в себя много аспектов и требует знания закономерностей работы протокола TCP/IP, инфраструктуры, умения программировать, работать с аппаратными средствами. Многие тесты делаются с помощью специально разработанного и сконфигурированного ПО. Однако, самые простейшие доступны для исполнения даже обычному пользователю.