Угадывание ошибок при тестировании программного обеспечения – одна из наиболее распространенных техник тест-дизайна, основанных на применении опыта и используемых в проектах. В этом пособии мы подробно изучим следующие темы:
- Что такое техника угадывания ошибок?
- Как применять технику угадывания ошибок?
- Когда использовать технику угадывания ошибок?
- Подводные камни техники угадывания ошибок
Что такое техника угадывания ошибок?
Угадывание ошибок – это техника, при которой тестировщики используют навыки, интуицию и опыт. Она необходима для прогнозирования возникновения ошибок, дефектов и сбоев, которые трудно обнаружить с помощью формальных методов, таких как анализ граничных значений и эквивалентное разбиение.
Этот метод неструктурирован, то есть никак не связан с математикой. Если несколько тестировщиков применят эту технику к одному и тому же приложению, то в итоге они могут получить разные тестовые сценарии. Результат зависит от опыта работы тестировщика с аналогичными приложениями и его знаний в данной области.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.
Методический подход к технике угадывания ошибок заключается в создании списка возможных ошибок, дефектов и сбоев, а затем разработке тестов, которые будут покрывать этот список.
Как применять технику угадывания ошибок?
Угадывание ошибок зависит от опыта тестировщиков с учетом следующих рассуждений:
Как приложение работало в прошлом?
Для техники угадывания ошибок лучше всего подходит тестировщик, который уже работал с этим приложением. Он будет хорошо понимать поведение предыдущих версий приложения. Например, вполне вероятно, что в определенной области ПО всегда выявлялись ошибки, поэтому ей требуется дополнительное тестирование. Здесь тестировщик может применить метод угадывания ошибок, в то время как в стабильных областях используются только формальные методы.
Какие ошибки допустимы?
У каждого приложения есть своя история, основанная на людях, которые над ним работают, а также на его функциональности и точках интеграции. Опытный тестировщик должен знать, какого рода ошибки возникали в прошлом. Например, есть приложение для e-commerce, в котором логика скидок часто давала сбой при применении случайного скидочного кода. В этом случае тестировщик проверит различные комбинации действующих и недействующих скидок и убедится, что логика работает нормально. Такое понимание ситуации приходит только тогда, когда у тестировщика имеется достаточный опыт работы с приложением, и он в курсе всех прошлых проблем.
Какие сбои происходили в других приложениях?
Опытный тестировщик будет опираться не только на текущее приложение, но и использовать свой опыт тестирования аналогичных приложений. Иногда требований бывает недостаточно, или приложение может быть совсем новым, и данные о его использовании ранее будут отсутствовать. В таких случаях тестировщику приходится полагаться на предметный опыт в этой области.
Давайте разберемся в этом на простом примере:
Рассмотрим сценарий, в котором вы тестируете функциональность перевода средств в банковском приложении. Есть поле, в которое нужно ввести сумму. Согласно требованиям, вы можете перевести любую сумму в диапазоне от 100 до 100000.
Если вы примените стандартные методы анализа граничных значений и эквивалентного разбиения, вы можете получить следующие значения для проверок:
99, 100, 101, 500000, 99999, 100000, 100001.
Однако опытный тестировщик сталкивался с тем, что несколько похожих приложений не обрабатывали случаи с отрицательным значением. Он использует этот опыт, чтобы создать сценарии поиска ошибок для текущего приложения
Когда использовать технику угадывания ошибок?
Мы всегда должны помнить, что угадывание ошибок не заменит формальные методы. Там, где это возможно, мы должны использовать его в дополнение к формальным методам и только в тех ситуациях, когда у тестировщика имеется опыт работы с подобными приложениями.
Техника угадывания ошибок будет эффективна, если
- У тестировщика есть хороший опыт работы с такими же/подобными приложениями.
- Имеется достаточно данных о поведении и ошибках приложения в прошлом.
- Требования неадекватны, и формальные методы трудно применить.
- Приложение или функциональность критически важны для бизнеса, и существует веская причина приложить больше усилий для тестирования, применяя технику угадывания ошибок в дополнение к формальным методам.
Некоторые дефекты, обнаруженные в процессе угадывания ошибок, обычно являются результатом исчерпывающего тестирования приложения. Однако тестировщик уже сталкивался с такими проблемами в прошлом и может использовать свой опыт, чтобы придумать тестовые сценарии без повторного проведения исчерпывающих тестов. Это позволит сэкономить много времени и при этом найти несколько дефектов, которые могли быть обнаружены лишь в крайнем случае.
Подводные камни техники угадывания ошибок
Как и любой неструктурированный метод, техника угадывания ошибок зависит от интуиции и опыта QA инженера. Недостаток опыта может привести к неудаче. Это особенно рискованно в случаях, когда требования не очень ясны или знания о продукте недостаточны. Важно убедиться, что тестировщики на проекте имеют достаточно знаний в предметной области и опыт работы с аналогичными приложениями. Если у тестировщиков нет нужного опыта, они будут создавать нерелевантные сценарии ошибок, что приведет к низкому качеству тестирования.
Перевод статьи Faisal Khan «Error Guessing».