А ты никогда не задумывался о том..

  • Какой путь проходит программное обеспечение перед установкой на  ноутбук или телефон?  
  • Кто и как определяет “готовность” ПО, как продукта, который сможет удовлетворить пользователя?

Давай вместе во всем разберемся!

  1. Кто же такие тестировщики ПО и чем они занимаются?
  2. Какие существуют методы тестирования? – их плюсы и минусы.
  3. Когда использовать функциональный/ нефункциональный типы тестирования?
  4. Какую документацию используют QA Engineer?
  5. В чем разница между мануальным и автоматизированным видами тестирования?

Итак, чем занимаются тестировщики ПО?

Основной целью тестирования программного обеспечения является выпуск продукта высокого качества.

Тестировщику в руки попадают новые версии ПО (сайта, программы или мобильного приложения), которые предстоит проверить на предмет ошибок (багов, несоответствий требованиям).

ОСНОВНЫЕ МЕТОДЫ ТЕСТИРОВАНИЯ

Тестирование осуществляется за счет моделирования различных ситуаций, опираясь на специальные методы:

Черный ящик – “Black box”   

Нам неизвестна внутренняя структура кода и не имеем доступа к базе данных.

Процесс исследования ПО на баги осуществляется путем генерации тестовых случаев исходя из анализа функциональной спецификации (документ, который описывает желаемые характеристики системы и итоговый результат) или определенных элементов системы.

Плюсы “Black box”:

  • возможность определения ошибок, которые не покрывает метод “White box”. К примеру, при разработке было упущено какую–то функциональность. Код работает хорошо, а вот отсутствующий элемент в системе, согласно спецификации, считается весомым багом.
  • анализ ПО на наличие дефектов осуществляется как бы на пользовательском уровне ( с позиции пользователя) без углубления во внутреннею структуру системы. К примеру, ты загружаешь новую фотку в социальную сеть и хочешь добавить яркий фильтр, реализация этого действия тоже своеобразное тестирование, для которого нужны всего лишь телефон и хорошо функционирующие приложение.
  • требуется значительно меньше времени, благодаря тому, что тест–кейсы можно составлять сразу после составления спецификации.

Минусы:

  • пропуск моментов, которые не прописаны в специфике, но присутствуют в функциональности кода (именно этот факт побуждает тестировщиков использовать“белый ящик”).
  • небольшой охват – тестированию поддаются всего лишь несколько вводных значений.
  • При нечеткой спецификации возможна трудность в составлении тест–кейсов.

Итак, Метод “Black box” стоит использовать, если тебе нужно найти баги:

  • реализации функций ПО;
  • пользовательского интерфейса;
  • функциональной спецификации.

Белый ящик – “White box”

Наличие детальной информации о внутренней составляющей системы – структуре кода.

QA Engineer предстоит работа с кодом и его логикой внутренней работы.

Плюсы метода “белого ящика”:

  • благодаря наличию информации о внутренней структуре системы значительно легче определить данные, которые помогут в эффективности тестирования.
  • способствует оптимизации кода.
  • возможность устранять дефекты в коде.
  • тестировать можно на ранних этапах разработки, еще без наличия пользовательского интерфейса.

Минусы метода “белого ящика”:

  • Нужен опыт работы в данной сфере. Новичку будет сложно разобраться с функциональностью кода.

Серый ящик – “Grey box”

Известны только некоторые элементы реализации ПО.

Стоит, отметить, что данный метод сочетает в себе подходы к тестированию “белого и черного ящиков”.  То есть, QA Engineer смотрит на систему опираясь на метод “Black box” и анализирует известные данные о ней.

Плюсы:

  • возможность применения сложных сценариев;
  • тестировщик коммуницирует с разработчиками, что позволяет избежать использования избыточных тест–кейсов и значительно сокращает время реализации задачи.

Минусы:

  • Ограничения в анализе тестового покрытия и отсутствие доступа к исходному коду.

Чтобы было легче запомнить информацию, мы свели для тебя таблицу.

Черный ящик Белый ящик Серый ящик
Нам неизвестна внутренняя структура кода и не имеем доступа к базе данных. Наличие детальной информации о внутренней составляющей системы – структуре кода. Известны только некоторые элементы структуры  ПО.
Навыки программирования
Сфера применения
Реализатор

Конечно, применение того, или иного метода на прямую зависит от наличия информации о системе и от задач, которые предстоит выполнить. Благодаря им, тестировщик еще до выпуска программы “в люди” находит в ней ошибки, тем самым улучшая качество программы.

ОСНОВНЫЕ ТИПЫ ТЕСТИРОВАНИЯ

Функциональное тестирование  

Направленное на контроль соответствий функциональных требований программного обеспечения с реальными характеристиками. Основная задача этого типа – предоставить заказчику отчет о работе востребованного функционала ПО.

Нефункциональное тестирование

Используется для определения характеристик системы (могут измеряться в различных величинах), которые не относятся к действию пользователя: производительности, безопасности, надежности и другое.

ДОКУМЕНТАЦИЯ ТЕСТИРОВЩИКА

Bug (дефект) – несоответствие фактического и ожидаемого результата. Другими словами, ошибка в системе, которая определяться во время тестирования.

Traceability matrix – матрица покрытий требований тестами.  Представляет собой двумерную таблицу, которая вмещает в себе информацию о functional requirements системы и тестовых сценариях.

Check list (чек–лист) – документ, который содержит в себе информацию о том, что нужно протестировать.

Bug Report (баг репорт) – документ, в котором детально описывается информация об обнаруженной ошибке (серьезность, приоритетность..) и условиях или причинах его возникновения.

Test Case (тестовый случай) – своеобразный алгоритм тестирования программного обеспечения, который используется при функциональном типе.

ВИДЫ ТЕСТИРОВАНИЯ

Manual testing (ручное тестирование)

Мануальные тестировщики все тесты прописывают вручную, что требует значительных усилий и времени. Но, как не крути, без применения этого вида мы даже не можем точно определить возможность автоматизации.

На информационных ресурсах часто встречается заявление о том, что тестить может любой пользователь. Это заблуждение, ведь для применения любого вида тестирования, даже такого казалось бы простого как ручное, просто необходимо владеть базой знаний этого направления.

Именно с ручного тестирования большинство людей начинает свой путь в IT, ибо знания, которые осваивает QA Engineer являются основой к дальнейшему развитию в различных направлениях.

Automation testing (автоматизированное)

Тестирование осуществляется благодаря специальному программному обеспечению, этот вид значительно упрощает работу и сокращает время на выполнения задач.

Более подробно о данном виде тестирования ты можешь прочитать в статье: “Что такое автоматизированное тестирование”.