Исследовательское тестирование (которое ниже будет называться ИТ) может рассматриваться некоторыми как тестирование без жесткой структуры и четкого плана. Хотя это отчасти верно, все же оно имеет некоторое планирование.
При исследовательском тестировании мы не создаем тест-кейсы с предсказуемым исходом (ожидаемыми результатами). Это связано с тем, что мы пытаемся исследовать приложение и тем самым получить более глубокое представление о тестируемой системе.
Исследовательское тестирование имеет некоторые ограничения, например, определяется время, отведенное на тесты, а также то, какую часть системы мы будем тестировать. Для получения наиболее эффективного результата следует сосредоточиться на определенной части приложения, чтобы иметь возможность тщательно ее исследовать.
Использование правильных инструментов может помочь нам сделать исследовательское тестирование более эффективным и простым.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Зачем нужны инструменты для исследовательского тестирования?
Инструменты могут оказать нам значительную помощь при проведении исследовательских испытаний. На учебном сайте Guru99 есть хорошее определение этих инструментов: “Инструменты исследовательского тестирования – это программы, которые помогают тестировщикам проверять систему “на лету”. Эти инструменты позволяют выполнять проектирование и проведение тестов одновременно без особого планирования. Инструменты исследовательского тестирования также помогают автоматизировать процесс тестирования.
Многие из этих инструментов не только помогают проводить более эффективное тестирование, но и дают возможность создавать отчеты по результатам исследовательских тестов. Другим преимуществом является расширение возможностей изучения системы, что, в свою очередь, может дать нам более четкое представление о том, что следует автоматизировать, а что нет.
Как именно инструменты помогают в исследовательском тестировании?
Управление и запись сессий
Самым простым и, возможно, самым важным компонентом исследовательского тестирования является ведение записей. Запись наблюдений, вопросов и проблем позволяет нам размышлять и получать ценные сведения о результатах наших исследований.
Инструменты, связанные с сессиями, могут помочь нам в следующих вопросах:
- ведение записей
- сообщение об ошибках
- запись идей и наблюдений
- создание записей экрана с дополнительным звуком
- создание скриншотов
- импорт и экспорт сессий исследовательского тестирования (в различных форматах) для использования в отчетах.
Также здесь может пригодиться ручка и бумага или простая программа типа Notepad. Существуют и другие, более специфические инструменты, предназначенные для исследовательского тестирования, в виде расширений браузеров (в основном подходящих для исследовательского тестирования пользовательского интерфейса), а также полноценных настольных, мобильных и веб-приложений. К числу наиболее широко используемых инструментов относятся:
Расширения браузера для ИТ:
- Exploratory Testing – расширение браузера для управления сеансами ИТ с простым минимальным пользовательским интерфейсом. Оно позволяет создавать баг-репорты, делать заметки, скриншоты, отслеживать URL, сохранять и импортировать сессии, а также экспортировать отчет в любом из нескольких форматов. Хорошее решение, если вы только начинаете работать с ИТ-инструментами, так как оно очень интуитивно, понятно и просто в использовании.
- SpiraCapture – позволяет записывать сеансы ИT, организовывать их, фиксировать нажатия на клавиатуру, определять изменения URL, фиксировать сетевые ошибки.
- Test & Feedback – это расширение позволяет делать заметки, задачи, отправлять отзывы, создавать тест-кейсы и добавлять вложения. Расширение является бесплатным независимо от того, используете вы его в standalone или connected режиме.
Приложения для ИT:
- TestRail – полноценное решение для управления тестированием, поддерживающее создание ИТ тестов, где можно добавить параметры прохождения сессии, указать цели (при необходимости можно настроить дополнительные поля). Можно добавлять комментарии, вложения и связывать с баг-трекером с помощью идентификаторов дефектов.
- Testivator – блокнот для тестировщиков, доступный для iOS и Android. Он предлагает минималистичный пользовательский интерфейс, позволяющий добавлять заметки во время ИТ-сессий, делать скриншоты, а также создавать базовые отчеты. Вы можете использовать их открытый API для подключения существующего клиентского приложения и хранения данных в Testivator.
- XRAYExploratory Testing – настольное приложение для Windows, Mac и Linux. Поддерживает интеграцию с Xray и Jira. Вы можете экспортировать отчеты о сеансах ИТ в PDF, вести видео- и аудиозапись, делать скриншоты и засекать время.
- Rapid Reporter – приложение для создания заметок с пояснениями, пользовательский интерфейс выглядит несколько устаревшим (если вы ностальгируете по старым версиям Windows, то, возможно, почувствуете себя как дома), но если ваши потребности просты, то это приложение справится с задачей. Утилита является автономной и не требует установки: exe-файл можно хранить на USB-накопителе. Заметки сохраняются в формате CSV.
Тестирование комбинаций ввода
Исследование различных комбинаций для форм ввода может быть облегчено с помощью специальных инструментов. Эти инструменты оснащены предопределенными значениями, которые покрывают наиболее распространенные вариации значений ввода. Таким образом, можно проводить более тщательное негативное тестирование, практически применяя методы эквивалентного разбиения и анализа граничных значений.
Расширение BugMagnet – прекрасный пример одного из таких инструментов. С его помощью мы можем мгновенно заполнять поля ввода текстом разного размера, различными символами, как допустимыми, так и недопустимыми комбинациями URL, e-mail и многим другим. Установив расширение, просто щелкните на форму (после установки расширения) и выберите в контекстном меню пункт “Ввод”.
Инструменты этой категории также позволяют проводить тестирование на проникновение и тестирование безопасности. Экспериментировать с SQL-инъекциями можно с помощью таких инструментов, как SQLMap, jSQL Injection, Blisqy и многих других. Перечисленные инструменты позволяют легко исследовать, как наша система справляется с SQL-инъекциями, JS-инъекциями, межсайтовым скриптингом (XSS), парсингом HTML и т.д. Не нужно быть специалистом по тестированию безопасности, чтобы проверить наличие наиболее распространенных эксплойтов.
Тестирование API
Тестирование API становится все более актуальным, поскольку API-First-подход внедряется все большим числом компаний. При тестировании программного обеспечения знание как тестировать API может помочь получить более глубокое представление о системе, а также сэкономить много времени. Изучение API может помочь найти потенциальные уязвимости в системе.
Кроме того, знание API, используемых нашей тестируемой системой, может помочь нам улучшить автоматизированные тесты пользовательского интерфейса, выполняя запросы к API напрямую, вместо моделирования всех взаимодействий с пользовательским интерфейсом.
Примерами инструментов для исследования API являются:
- Вкладка Network – В инструментах разработчика веб-браузера мы можем увидеть выполненные запросы и проверить детали тела запроса/ответа в формате JSON. Проверяя детали Response и Preview на вкладке Network, особенно в области headers, мы можем найти коды состояния ответа, URL запроса, используемый метод HTTP, заголовки и т.д.
- HTTP-клиенты, такие как Postman, позволяют тестировать API. Другие инструменты HTTP-клиента – SoapUI, Insomnia и многие другие также помогают выполнять HTTP-запросы и получать ту же информацию, что и на вкладке Network в браузере, но при этом предоставляют нам больше возможностей для управления. Мы можем использовать эти инструменты для тестирования API, мониторинга и устранения неполадок.
Мониторинг и сбор сетевого трафика
Средства мониторинга и сбора сетевого трафика и данных, такие как Developer Tools в браузере, прокси-серверы Fiddler и Charles или HTTPS-клиенты, например, Postman, могут сделать наше исследовательское тестирование более техничным и дать нам полезные данные о системе. Также часто полезными становятся инструменты командной строки.
Генерация данных
Предположим, что нам необходимо проверить новую функциональность, позволяющую клиенту сохранить предпочтительный способ оплаты. Нам необходимо убедиться, что доступно множество вариантов оплаты. Мы можем использовать SQL запрос для создания тестовых данных: “хороших” тестовых данных, которые ожидаются приложением, и “плохих” тестовых данных, которые не ожидаются приложением. Примерами таких инструментов могут служить SQL Data Generator и библиотека Faker.
Визуализация тестируемой системы
Инструменты Mind Map помогают нам визуализировать наши цели и используются для получения представления об архитектуре исследуемой системы.
Примерами инструментов для составления mind maps являются:
- Miro – платный инструмент с широкими возможностями интеграции. Он поддерживает работу с интерактивными досками и другие виды совместной работы в команде и становится гораздо более популярным для удаленной работы.
- Xmind – платный инструмент с большим количеством встроенных опций. Доступны веб-, мобильные и десктоп версии приложения.
- MindUp – многофункциональный онлайн-инструмент для создания mid maps, доступный в бесплатной версии. Поддерживаются пользовательские сочетания клавиш, экспорт файлов в различные форматы (PDF, PPT и т.д.) и интеграция с облачными хранилищами Mindup Cloud и Google Drive.
- MindMeister – онлайн-инструмент для создания mind maps. Дает возможность для более простого управления проектами и создания презентаций. Бесплатный тарифный план ограничен тремя картами, а другие тарифные планы идут по подписке.
Исследование пользовательского интерфейса
Примерами developer tools для исследовательского тестирования пользовательского интерфейса являются:
- Вкладка Elements, полезная для проверки DOM (Document Object Model).
- Раздел Console, в котором можно проверить наличие консольных ошибок и предупреждений.
- На вкладке Application можно получить информацию о токенах сеансов. Редактируя срок действия токена, можно проверить, выходите ли вы из системы после того, как срок действия токена закончился. Также можно просмотреть используемые файлы cookie, выборочно очистить кэш в зависимости от используемого приложения.
- Вкладка Sources предоставляет нам базовые возможности отладки, например, установку точек останова для JavaScript-кода, выполняемого на сайте.
- Панель инструментов Toggle Device позволяет моделировать различные размеры экранов и устройств, чтобы проверить, насколько адаптивным является наш сайт.
Вывод
Исследовательское тестирование может принести большую пользу нашему продукту, если провести его “правильным образом”. Запись заметок и наблюдений дает нам представление о “болевых точках” нашей системы и позволяет понять, что стоит автоматизировать, а что нет.
Чтобы убедиться в том, что мы используем наиболее подходящие инструменты для проведения исследовательского тестирования, первым шагом будет изучение имеющихся инструментов. Но самым важным является метод проб и ошибок – необходимо попробовать различные инструменты для того, чтобы понять, какие из них подходят нам лучше всего.
Оставайтесь любознательными, и удачных исследований!
Перевод статьи «Software Tools For Easy, Effective Exploratory Testing».