Какие преимущества и недостатки имеет исследовательское тестирование?
Плюсы
– Первым несомненным достоинством можно назвать гибкость. Тестировщики получают возможность оперативно реагировать на изменения и не терять эффективности в поисках дефектов и узких мест.
– Следование неожиданным сценариям позволяет своевременно устранять скрытые проблемы, что улучшает качество и надежность как всей системы в целом, так и отдельно взятых ее функций в частности.
– Исследовательский подход к тестированию дает возможность быстро находить ошибки и угрозы, которые были упущены в рамках других видов тестирования.
Минусы
– Из–за того, что подход не имеет четко выраженной структуры, велик риск того, что некоторые важные аспекты могут быть упущены. Многое зависит от опыта тестировщика, а также от уровня его вовлеченности. То есть для проведения тестов он должен не только уметь пользоваться различными методами и инструментами, но и разделять общие ценности компании в достижении целей. Банально может сказаться даже уровень усталости.
– Высокий уровень гибкости и адаптивности также может оказаться и минусом. Так как из–за переменчивости условий, тестировщик не всегда успевает зафиксировать все свои действия. Поэтому иногда могут возникать сложности в воспроизведении результатов. То есть условно, что–то куда–то ткнули, но непонятно, как это произошло и как это теперь повторить.
Когда проводится исследовательское тестирование?
Как и любой другой подход, исследовательское тестирование не всегда является подходящим вариантом для проверки, так как упускает некоторые важные нюансы. По этой причине методы и инструменты используются в комбинации для достижения наиболее эффективных результатов.
Существует несколько распространенных ситуаций, когда исследование является наиболее приемлемым способом для проведения теста программы или ее компонентов.
В начале разработки
– Когда запускается новый продукт, с помощью исследовательского подхода тестировщики могут понять, какими функциями оно обладает и с какими первичными дефектами может столкнуться пользователь.
– Исследовательское тестирование может быть применено на стадии минимальной жизнеспособности продукта, либо на стадии работы над прототипом. Благодаря этому оценивается рентабельность некоторых функций и идей. В некоторых случаях это позволяет пересмотреть взгляд на продукт и довести его до желаемого результата.
Во время изменений
– В случае, если в продукт вносятся изменения, исследование позволяет быстро оценить новые функции или другие обновления. Кроме того, проверяются исправленные ошибки, выявленные на более ранних стадиях проверки.
– Проведение исследования может понадобиться при добавлении новых компонентов и модулей, которые не являются частью основной системы. Благодаря этому изучаются связи и взаимодействия.
При недостаточной документации
Если проект не имеет достаточной сопроводительной документации или четких требований, то исследовательское тестирование помогает изучить функционал, найти сильные и слабые стороны, а также определить, каким образом можно улучшить программу.
После автоматизированного тестирования
Исследование может стать вспомогательным этапом после проведения автоматизированного тестирования, так как оно подразумевает следование определенным сценариям. Исследовательское тестирование более импровизационное и интуитивное, а значит, пойдет по нестандартным сценариям и поможет обнаружить те проблемы, которые не удалось обнаружить ранее.
В условиях ограниченного времени
Исследовательский подход к тестированию используется в случае, если сроки проверки ограничены, но при этом необходимо охватить множество функциональностей и выявить критические ошибки.
Во время подготовки к релизу
На этапе релиза исследование помогает убедиться в полной готовности продукта к эксплуатации конечными пользователями. Это позволяет снизить риски, в том числе связанные с репутацией заказчика и разработчиков.
В процессе обеспечения качества
И даже после релиза исследовательское тестирование может быть полезным. Оно помогает оценить то, как работает система в реальных условиях, когда продукт уже используется реальными пользователями. Таким образом, команда поддержки сможет обеспечить более качественное сопровождение и своевременно устранить ошибки, возникшие уже после реализации.
Регулярные сессии тестирования
В рамках глобального тестирования можно проводить исследования отдельных областей системы и ее взаимосвязей, чтобы проверить некоторые гипотезы и обнаружить скрытые угрозы и закономерности.
Исследовательское тестирование работает в контексте с другими методами проверки программного обеспечения и тем самым усиливает их. Это позволяет достичь более эффективных результатов и тем самым улучшить качество продукта разработки.
Как использовать исследовательское тестирование в работе?
Внедрение исследовательского подхода в тестирование осуществляется в несколько этапов:
Первый: подготовка к исследовательскому тестированию
Прежде чем происходит непосредственное исследование программы, необходимо ознакомиться со всей существующей сопроводительной документацией. Она позволит определить цели тестирования, что сделает процесс более эффективным.
После того, как направление было определено, формируются гипотезы и сценарии. На первый взгляд это противоречит принципу неожиданности, но задача найти иголку в стоге сена. Можно долго копошиться и разбирать каждую травинку, а можно просто взять спички и магнит.
Сценарии помогают использовать разные варианты поведения пользователей и упрощать процесс документации.
Второй: проведение тестирования
Для тестирования необходимо обозначить рамки, чтобы сосредоточить свои усилия на конкретных аспектах проверки. Таким образом, можно увеличить вероятность найти то, не знаю что.
В рамках этих временных ограничений также можно применять различные техники тестирования, например, "happy path" и "edge cases". Они помогут охватить как можно больше различных сценариев, а значит, и поиск ошибок будет более эффективным.
Третий: документирование результатов
Важно в процессе тестирования вести документацию. Это позволит воспроизвести результаты в случае необходимости. Также информацию можно использовать для составления рекомендаций по улучшению или для проведения обучения персонала и обмена опытом.
В отчетах о выявленных дефектах необходимо указать описание процесса, выполненные шаги для воспроизведения, ожидаемое и фактическое поведение.
Четвертый: анализ результатов
Обнаруженные ошибки и узкие места нужно обсудить с командой разработчиков и другими тестировщиками. Они помогут оценить текущее состояние продукта и найти причины возникновения проблем. Кроме того, совместно можно разработать методы оптимизации системы, чтобы она функционировала более эффективно. Это добавит ценности продукту.
Такие совещания с предоставлением обратной связи по продукту проводятся на регулярной основе как в процессе разработки, так и на этапе релиза и последующего обслуживания. Они позволяют сохранять позитивный опыт и разбирать ошибки программирования, чтобы избежать их повторения в будущем.
Пятый: непрерывное обучение и совершенствование
Для тестировщика, который использует исследовательский подход, важно постоянно набираться опыта. Это возможно реализовать за счет регулярного обучения и участия в практиках. Это позволит находить наиболее эффективные методы и сценарии для поиска скрытых проблем в коде.
Для того, чтобы грамотно использовать исследовательское тестирование, специалист должен обладать развитыми аналитическими навыками, а также иметь творческое мышление. Кроме того, ему необходимо иметь развитую интуицию и хорошо понимать модели поведения различных категорий пользователей. В этом случае тестировщик сможет добиваться наиболее эффективных результатов.
Что такое исследовательское тестирование?
Существуют споры относительно того, можно ли исследовательское тестирование (Exploratory testing, ET) считать самостоятельным методом проверки продукта. Некоторые считают, что это своего рода подход или образ мыслей, который можно применить в рамках отдельно взятого метода.
Исследовательское тестирование обычно проводится опытными тестировщиками, которые имеют солидный запас опыта и навыков. Кроме того, они обладают развитой интуицией, поэтому могут идти по непредсказуемому сценарию и находить там скрытые дефекты. Такой подход к тестированию можно сравнить с методом «черного ящика». Собственно, их схожесть заключается в том, чтобы имитировать поведение пользователя и тем самым находить неочевидные ошибки.
То есть основной целью исследовательского тестирования является поиск тех проблем в программе, которые не удалось обнаружить другими способами. Это необходимо сделать до релиза, чтобы с этими ошибками не столкнулись реальные пользователи.
Что характеризует исследовательское тестирование?
– Во–первых, непредсказуемость.
Часто тестировщики не имеют жесткого сценария, но и не действуют совершенно вслепую. Они исследователи, а значит, предполагают какие–то ошибки, вызванные определенной моделью поведения потенциальных пользователей. Такой подход называют интуитивным, так как интуиция также основывается на полученном ранее опыте.
– Во–вторых, адаптивность.
В зависимости от поведения программы или возникших проблем, тестировщик может быстро менять свои методы и инструменты для изучения продукта. Также стоит отметить, что исследования проводятся как вручную, так и с использованием средств автоматизации. Благодаря этому можно ускориться, если требуется быстро провести тестирование на одном из этапов или в период предрелиза.
– В–третьих, фокус на качестве.
Задачей тестировщика является понимание и имитация пользовательского поведения. Таким образом, он примеряет на себя роль среднестатистического потребителя и пытается представить запросы и требования к продукту. Устранение неполадок и узких мест позволяет повысить качество программного обеспечения и максимально приблизить его к ожиданиям аудитории.
– В–четвертых, документация.
Несмотря на то, что тестировщику приходится действовать интуитивно в рамках исследования, нельзя обесценивать важность документации. Это позволит повторить алгоритм поведения в будущем, если это потребуется для повторной проверки или для другого аналогичного проекта. Также эту информацию можно использовать для обмена опытом и для обучения новых сотрудников.
– В–пятых, использование знаний о системе.
Чтобы задать направление исследования, тестировщики могут использовать полученные ранее знания об архитектуре программного обеспечения из предыдущих версий продукта или похожих систем.
Мифы об исследовательском тестировании
Миф первый: Исследовательское тестирование не требует подготовки или планирования.
Данный подход позволяет специалисту быть гибким и подстраиваться под разные методы проверки, тем не менее это не значит, что он не должен иметь никакой подготовки. Как минимум, тестировщик должен обладать соответствующей квалификацией и опытом, чтобы его действия были более осознанными, так как их необходимо документировать.
Кроме того, требуется ознакомление с уже существующими сопроводительными документами, так как должно быть понимание того, с чем пришлось столкнуться. То есть какой основной функционал есть, как работает система, какие есть требования к продукту и так далее.
Миф второй: Исследовательское тестирование не может быть документировано.
Несмотря на то, что действия тестировщика основаны на интуиции и часто бывают неожиданными, существует крайняя необходимость в документировании алгоритмов. В будущем эта информация может понадобиться для воспроизведения действий при повторной проверке, для анализа результатов и разработки плана мер по устранению ошибок и так далее.
Миф третий: Это просто "угадать" и "тыкать".
Любой метод, основанный на интуиции, никогда не является полностью случайным. Разумеется, бывают неожиданные действия и результаты, но в большинстве своем все алгоритмы основываются на обширной базе знаний и опыта. Чем лучше тестировщик понимает пользовательские сценарии, тем лучше у него получится воспроизвести действия реальных пользователей программы. Это значит, что ему будет проще найти ошибки и не упустить важные нюансы.
Миф четвертый: Исследовательское тестирование не подходит для сложных систем.
Каждый подход к проверке не является универсальным, поэтому их и комбинируют. Тем не менее, исследование может оказаться полезным и для сложных систем, где невозможны множественные взаимодействия, чтобы охватить их традиционными методами. За счет своей гибкости, исследовательское тестирование помогает изучать различные аспекты, которые остались незамеченными.
Миф пятый: Исследовательское тестирование не может быть оценено.
Выполнение каждого тестирования подвергается оценке с точки зрения эффективности. В структурированных подходах проще оценить и количественные, и качественные показатели. В интуитивных это тоже возможно, хоть и есть свои сложности. В этом случае оцениваются число найденных ошибок, типы и тесты проведенных сценариев, а также качество охвата тестов.
Миф шестой: Это менее ценно, чем автоматизированное тестирование.
Каждый из методов проведения проверки имеет свою ценность. В комбинации они дополняют друг друга и приводят к более эффективным результатам. Если автоматизация позволяет проверять регрессию и повторяющиеся сценарии, то исследование будет полезным в нахождении неожиданных дефектов и проблем с пользовательским опытом.
Миф седьмой: Исследовательское тестирование может заменить стандартизированное тестирование.
Это не замена, так как не является самостоятельным инструментом проверки. Исследовательское тестирование является своего рода образом мысли, помогающим находить ошибки и узкие места. Поэтому это скорее дополнение к любому другому способу тестирования.
Понимая принципы исследовательского тестирования можно добиться более эффективных результатов в проверке.