Доброго времени суток, друзья!
Я поставил себе цель стать веб-тестировщиком. Не буду вдаваться в подробности такого решения, но важно знать лишь одно – мне предстоит разобраться в очень многих интересных вещях в этой теме, я должен быть в ней как рыба в воде, чтобы найти свою первую работу. Ну а как говорится, если хочешь чему-то научиться – научи этому другого человека. Поэтому, друзья, я буду выкладывать здесь объяснение всех тем, которые я сам прохожу в удобоваримом виде, чтобы каждый мог понять, о чем идет речь. Как я и сказал, я хочу стать веб тестировщиком, а значит тестирование мобильных приложений, игр и т.п. здесь рассматриваться не будет (во всяком случае, пока что такой мысли у меня нет в голове).
Так как я планирую сразу рассказывать Вам о всех новых вещах и фишках, которые я сам узнал, то статьи будут не очень большие. Так что то, что я могу успеть узнать из разных источников (видео, статьи, книги), переложить в удобный и читаемый текст и оформить это все в качестве статьи за 1-2 дня, вы совершенно точно успеете прочитать, попрактиковаться и проанализировать за такое же время. Итак, начнем.
Естественно, начнем с фундаментальных вещей и разберемся с тем, что же такое тестирование и для чего оно нужно 😊Пересмотрел некоторые видео, ссылки на которые оставлял в telegram канале, прочитал пару статей.
За определением понятия тестирования ПО обратимся к нашей любимой Википедии.
Тестирование программного обеспечения – это процесс исследования, испытания программного продукта, имеющий своей целью проверку соответствия между реальным поведением программы и её ожидаемым поведением на конечном наборе тестов, выбранных определённым образом.
Еще часто встречал такую формулировку: в широком смысле, тестирование ПО – это техника контроля качества программного продукта, включающая в себя проектирование тестов, выполнение тестирования и анализ полученных результатов.
Стало ли до конца понятно, что такое тестирование ПО? Думаю, что частично, но не до конца) Поэтому копаем дальше и пытаемся все это привести в нормальный лаконичный ответ:
Тестирование ПО – это проверка соответствия реального поведения ПО ожидаемому. Все. На мой взгляд дальнейшие детали сейчас не нужны.
А зачем мы должны тестировать разрабатываемый продукт, какие наши цели?
- Для проверки соответствия требованиям.
То есть при разработке продукта всегда есть заказчик (заинтересованное лицо), которые представляет то, как должен выглядеть его продукт. Его видение продукта и есть требования и задача тестировщика выяснить, насколько разрабатываемый продукт соответствует этим требованиям.
- Для обнаружения проблем на более ранних этапах разработки и предотвращения повышения стоимости продукта.
Важно понимать, что процесс создания любого ПО – это длительный процесс, который состоит из разных фаз (планирование, разработка, тестирование). Если тестировщики будут подключаться к тестированию в самом конце, когда разработчики уже все создали, то при нахождении какой-либо ошибки, ее исправление может каскадом обрушиться на всю систему (и соответственно больше времени уйдет на устранение проблемы и соответственно больше денег). Поэтому обнаружение этой же самой ошибки, скажем, на этапе планирования при выявлении требований будет нам более выгодно.
- Обнаружение вариантов использования, которые не были предусмотрены при разработке. А также взгляд на продукт со стороны пользователя.
Тестирование ПО подразумевает не только четкое следование требованиям заказчика, но и проверка на удобство, общепринятые стандарты и т.п.
- Повышение лояльности к компании и продукту, т.к. любой обнаруженный дефект негативно влияет на доверие пользователей.
Каждая найденная пользователем ошибка влияет на его отношение к продукту. Что если на сайте apple вы увидите орфографическую ошибку? Да, это не никак не повлияет на качество гаджетов, которые они производят, но отношение к ним у многих людей может измениться (как такой гигант может допустить такую детскую ошибку?).
- Получение информации о том, в каком состоянии сейчас наш продукт.
Тестировщик выясняет, какая часть уже сейчас готова, какая в разработке, а в какой найдены ошибки, которые необходимо исправить. Эта и другая подобная информация о состоянии продукта может быть интересна заказчику, менеджеру проекта и др.
Да, с определением мы разобрались, но каким образом мы тестируем наше ПО? Процесс тестирования включает в себя несколько сущностей, стадий (в каких-то из них допустимы вариации, это не стандартизированный подход):
- Test Management (планирование работ).
Если кратко, то на этом этапе тестировщик выясняет свой фронт работы, существующие требования, уточняет или набрасывает сам примерные сроки и готовит тест-план.
- Test Design (проектирование тестов).
После получения требований, необходимо понять, что и как мы будем тестировать. Для этого тестировщик прикидывает те проверки, которые он сочтет приемлемыми.
- Test Execution (выполнение тестов).
Здесь происходит непосредственно реализация тех проверок, которые были написаны на предыдущем этапе.
- Test Analysis (анализ результатов тестирования).
После прохождения всех проверок, необходимо собрать воедино всю информацию о состоянии тестированного/ой ПО/части ПО.
Это не исчерпывающая информация об этих сущностях, но я думаю на первый раз хватит 😊 Более подробно об этом поговорим в следующих статьях)
И помните, только тот, кто идет, способен дойти до цели. Поэтому до встречи!
Что мы узнали сегодня:
- Дали понятное и лаконичное определение понятию тестирование ПО.
- Узнали какие цели преследует тестировщик.
- Какие стадии в себя включает тестирование.