Найти тему
шКодник

Знакомство. Теория тестирования. Первая часть.

Доброго времени суток, друзья!

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

Так как я планирую сразу рассказывать Вам о всех новых вещах и фишках, которые я сам узнал, то статьи будут не очень большие. Так что то, что я могу успеть узнать из разных источников (видео, статьи, книги), переложить в удобный и читаемый текст и оформить это все в качестве статьи за 1-2 дня, вы совершенно точно успеете прочитать, попрактиковаться и проанализировать за такое же время. Итак, начнем.

Естественно, начнем с фундаментальных вещей и разберемся с тем, что же такое тестирование и для чего оно нужно 😊Пересмотрел некоторые видео, ссылки на которые оставлял в telegram канале, прочитал пару статей.

За определением понятия тестирования ПО обратимся к нашей любимой Википедии.
Тестирование программного обеспечения – это процесс исследования, испытания программного продукта, имеющий своей целью проверку соответствия между реальным поведением программы и её ожидаемым поведением на конечном наборе тестов, выбранных определённым образом.

Еще часто встречал такую формулировку: в широком смысле, тестирование ПО – это техника контроля качества программного продукта, включающая в себя проектирование тестов, выполнение тестирования и анализ полученных результатов.

Стало ли до конца понятно, что такое тестирование ПО? Думаю, что частично, но не до конца) Поэтому копаем дальше и пытаемся все это привести в нормальный лаконичный ответ:

Тестирование ПО – это проверка соответствия реального поведения ПО ожидаемому. Все. На мой взгляд дальнейшие детали сейчас не нужны.

А зачем мы должны тестировать разрабатываемый продукт, какие наши цели?

  • Для проверки соответствия требованиям.

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

  • Для обнаружения проблем на более ранних этапах разработки и предотвращения повышения стоимости продукта.

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

  • Обнаружение вариантов использования, которые не были предусмотрены при разработке. А также взгляд на продукт со стороны пользователя.

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

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

Каждая найденная пользователем ошибка влияет на его отношение к продукту. Что если на сайте apple вы увидите орфографическую ошибку? Да, это не никак не повлияет на качество гаджетов, которые они производят, но отношение к ним у многих людей может измениться (как такой гигант может допустить такую детскую ошибку?).

  • Получение информации о том, в каком состоянии сейчас наш продукт.

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

Да, с определением мы разобрались, но каким образом мы тестируем наше ПО? Процесс тестирования включает в себя несколько сущностей, стадий (в каких-то из них допустимы вариации, это не стандартизированный подход):

  • Test Management (планирование работ).

Если кратко, то на этом этапе тестировщик выясняет свой фронт работы, существующие требования, уточняет или набрасывает сам примерные сроки и готовит тест-план.

  • Test Design (проектирование тестов).

После получения требований, необходимо понять, что и как мы будем тестировать. Для этого тестировщик прикидывает те проверки, которые он сочтет приемлемыми.

  • Test Execution (выполнение тестов).

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

  • Test Analysis (анализ результатов тестирования).

После прохождения всех проверок, необходимо собрать воедино всю информацию о состоянии тестированного/ой ПО/части ПО.

Это не исчерпывающая информация об этих сущностях, но я думаю на первый раз хватит 😊 Более подробно об этом поговорим в следующих статьях)

И помните, только тот, кто идет, способен дойти до цели. Поэтому до встречи!

Что мы узнали сегодня:

  1. Дали понятное и лаконичное определение понятию тестирование ПО.
  2. Узнали какие цели преследует тестировщик.
  3. Какие стадии в себя включает тестирование.