Найти тему
Жизнь массовщика

Первая часть курса по тестированию ПО.

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

При тестировании создается тестовая модель. Тест-кейсы, чек-листы. Каждый кейс должен состоять из шагов и хорошим тоном является создание двух трех шагов:

  • открыл страницу;
  • ввел логин и пароль;
  • нажал на кнопку.

Два-три действия по минимуму. И если у нас возникает отклонение- у нас возникает ошибка, баг, дефект.

Из чего состоит тестирование:

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

Менеджеры определяют по своим метрикам как загружен тестировщик, загружен он или нет, компетентность, справляется тестировщик или нет.

Проектирование тестов. Большая часть работы тестировщика это проектирование тестов. И хорошо описанные тесты по хорошему сможет пройти даже школьник. Но проблема в том, что нам могут попасться не те ошибки, которые мы ожидали и вот здесь уже все-таки выполнять тесты должны тестировщики, а не школьники.

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

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

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

А при AGILE требования создаются при каждом новом спринте, так же в AGILE минимум бюрократии и документооборота. Поэтому требования аналитик докладывает в устном виде, что приводит к некоторым трудностям. А требования для тестировщека это самое главное.

-2

Три подхода к тестированию:

  • формальный. Что мне сказали то я и сделал. Подход джуниора. Если джуниор хороший, то работа выполняется педантично, хорошо, но без энтузиазма. И над ним всегда должен быть кто-то.
  • "мне сказали, я разобрался". Используются технологии, лайфхаки. Тормошит аналитика, тормошит разработчика. Это Мидл.
  • "Увидел проблему разобрался" подход Сеньора.

И маленький анекдот. Джуниора нужно пинать, мидл справляется сам, а сеньор пинает джуниора.

Виды тестирования:

  • ручное тестирование;
  • автоматизированное тестирование;

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

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

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

Ручное тестирование это основа для автоматизации, нагрузочного тестирования, анализа и планирования. Не набравшись опыта с ручным тестированием лучше не браться за другие виды тестирования.

На этом первую часть закончу. Охота узнать Ваше мнение и если не сложно поставьте палец вверх.