Кто Отвечает За Качество Тестирования Приложений? 10 Причин, Почему Ошибка Попадает В Продакшн

Мы подготовили для вас перевод статьи Дмитрия Ярыгина, QA-инженера с более чем 8-летним опытом работы в крупных проектах по всему миру, преподавателя курса «Мобильный QA-инженер» в OTUS. Хотите развиваться в этом направлении? Приглашаем вас посетить бесплатный двухдневный интенсив «Введение в автоматизацию тестирования мобильных приложений на Selenium и Appium» .



Кто отвечает за качество тестирования приложений? 10 причин, почему ошибка попадает в продакшн

Качество тестирования.

Кто несет за это ответственность? Многие годы в моей голове был только один ответ на этот вопрос.

Конечно, QA-инженер! Ведь я сам QA-инженер.

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

Однако я заметил некоторые закономерности, возникшие во время тестирования.

Они заставили меня задуматься о процессе тестирования в целом и о том, как его можно улучшить.

Должны ли разработчики тестировать свой код? Спасибо за вопрос.

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

Вы знаете свой код вдоль и поперёк и понимаете, где могут возникнуть проблемы.

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

Да, оно само найдется в какой-то определенный момент, но архитектуру приложения вы все равно знаете лучше.

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

Мы QA-инженеры, мы сосредоточимся на этом и покроем тестами, чтобы вы меньше волновались.

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

Модульные тесты — это определенно то, что должны делать разработчики, это их ответственность.

Юнит-тесты помогут вам избежать ненужных ошибок и ненужных отчетов о них.

Лучше избегать ошибок до того, как код попадет в команду тестирования, верно? Несколько слов о тестировании собственного кода.

Я считаю, что разработчики должны хотя бы дым-тестировать свой код. Нет необходимости в обширном тестировании.

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

Если код не работает на этом этапе, то зачем вообще отдавать его в QA? Вы получите десятки сообщений об ошибках, даже если уже знаете о наличии проблем — это только замедлит процесс разработки.

Мы пропустили ошибку.

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

Есть несколько причин, почему ошибка появилась только на этом этапе:

  1. Место появления ошибки никогда не было приоритетом для тестировщиков.

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

    Это результат отсутствия общения между разработчиками и тестировщиками.

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

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

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

  2. QA не обладает необходимыми знаниями в тестируемой области.

    Это также распространенная проблема.

    Разработчики написали функцию и автоматически предположили, что QA понимает, как она работает внутри и снаружи.

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

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

  3. Разработчиков это особо не волнует. Мы все люди.

    И у всех нас есть жизнь помимо работы.

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

    А есть разработчики, которым все равно.

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

    Для них это всего лишь побочное задание, которое нужно выполнить и забыть.

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

  4. QA-инженерам плевать.

    Вот другая сторона медали.

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

    Их не заботит качественное тестовое покрытие; они не хотят общаться с разработчиками.

    Обсуждать ошибки можно, но такие тестировщики могут просто не посчитать их важными и даже не зарегистрировать.

  5. Тестировщики недостаточно квалифицированы.

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

    Например, вам нужно провести тестирование на проникновение, но все, что в вашем распоряжении — это команда тестировщиков, которые умеют проводить только ручное тестирование.

    В этом случае они просто не будут знать, как к этому подойти.

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

    квалифицированные QA-инженеры, которые точно будут знать, как проводить тестирование в этой конкретной области.

  6. Отсутствие исследований пользователей.

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

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

    Они не собираются его ломать.

    Просто они все разные и имеют разные цели, но все хотят достичь их с помощью вашего приложения.

    QA-инженеры могут привыкнуть к ошибке и понять, что она возникает нечасто и поэтому не имеет большого значения.

    Пользователь этого не потерпит. Если ваше приложение сломалось, следующим шагом будет его удаление и поиск альтернативы.

    Это реальность.

    Исследование пользовательской аудитории и/или наличие тестовой группы пользователей — две стратегически важные вещи.

  7. Плохая организация процесса общения.

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

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

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

    Это в корне неверный подход.

  8. Тестеров не хватает. Приложение может быть сложным и требовать тестирования на нескольких платформах и браузерах.

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

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

  9. Разработчики перегружены.

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

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

  10. Качество не в центре внимания.

    Рассмотрим и этот сценарий.

    Здесь и там было несколько мелких ошибок.

    Ни один из них не является критическим.

    Однако пользователям приложение не нравится.

    Отзывы плохие.

    UX ниже среднего.

    И почему все? Да потому что никто не думал о создании качественного продукта.

    Разработчики делали свою работу, тестировщики — свою, но за самим процессом контроля качества никто не следил.

    Разработка приложений должна объединять команды, делая их одним целым.

    Если такого настроения в команде нет, то о качестве никто не заботится.

Заключение Сегодня приложения становятся все более сложными.

Если вы хотите узнать, кто виноват в провале проекта, это просто.

В этом могут быть виноваты QA-инженеры, разработчики и менеджеры.

Или все вместе.

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

Единственный вопрос должен быть: «Мы делаем действительно хороший продуктЭ» .

Если ответ на этот вопрос положительный, то не должно быть сомнений в том, что все команды делают одно большое дело.

Виновных не будет, и все будут довольны, ведь обеспечение качества – это ответственность каждого! Теги: #qa #testing #Тестирование веб-сервисов #Тестирование мобильных приложений #otus #тестирование качества #инженер по автоматизации контроля качества #стратегия контроля качества #мобильное обеспечение качества

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.