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

1. В первую очередь от претендента на позицию тестировщика ждут, что он знает что-такое тестирование. Определений тестирования множество, например, оно может быть таким:

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

Или таким:

  • Тестирование ПО – проверка реального поведения программного продукта на соответствие заявленным требованиям

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

2. Многие интервьюеры интересуются, в чем отличие тестирования от QA. При ответе на этот вопрос лучше всего вспомнить и описать общую картину процесса обеспечения качества продукта. Есть 3 основных уровня:


Здесь также важно показать свой взгляд на этот вопрос и сформулировать различия своими словами

3. Часто на интервью встречаются вопросы про различие верификации и валидации продукта:

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

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

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

  • По объекту тестирования: функциональное и нефункциональное:
    • Функциональное тестирование – проверка того, что продукт выполняет свое прямое назначение, предоставляет функции, требуемые заказчиком\пользователями.
    • Нефункциональное тестирование – это проверка качественных характеристик продукта: скорости работы, надежности, безопасности и т.п. Нефункциональное тестирование делиться на (приведу основные виды):
      • Тестирование производительности
      • Конфигурационное тестирование
      • Юзабилити-тестирование
      • Тестирование пользовательского интерфейса
      • Тестирование безопасности
      • Тестирование совместимости
  • По изолированности компонент: системное, интеграционное, модульное. Можно сказать, что это классификация по уровню, по масштабности тестирования:
    • Мы можем проверять работоспособность ПО на уровне одного отдельного программного модуля\блока – это модульное тестирование.
    • Можно проверять взаимодействие нескольких модулей друг с другом через какой-либо интерфейс – это интеграционное тестирование.
    • Самый большой масштаб, это системное тестирование – проверка работоспособности смей системы \ всего продукта в целом.
  • По версии функционала: тестирование новой функциональности и регрессионное тестирование:
    • С одной стороны мы можем проверять новые функции, которые включены в последнюю сборку продукта
    • С другой – проводить регрессионное тестирование, т.е. проверять что функционал из предыдущих версий не пострадал после внедрения нового. Понятие и цели регрессионного тестирования – являются важным и частым вопросом на интервью
  • По ожидаемому результату: позитивное и негативное тестирование:
    • Позитивное тестирование – проверки, цель которых получить положительный результат, правильную отработку системы
    • Негативное тестирование – проверка сценариев, когда действие не может быть выполнено системой, анализ того, как система реагирует на ошибки и некорректные запросы
  • По уровню знаний системы: тестирование методом черного, белого или серого ящика:
  • По степени автоматизации: ручное и автоматизированное тестирование:
    • Во первых, здесь нужно объяснить разницу между этими видами тестирования, что просто: ручное – выполняется вручную, автоматизированное – с использованием средств автоматизации, программных средств (т.е. одна программа тестирует другую)
    • Во вторых, часто требуется объяснить, когда выгодна, не выгодна автоматизация или невозможна автоматизация
  • По уровню планирования: тестирование по тестовым кейсам и исследовательское тестирование
    • В первом случае мы заранее планируем какие проверки будем выполнять и готовим их в виде тестовых кейсов\тестовых сценариев.
    • Во втором – мы исследуем продукт в «свободном плавании», выполняем те проверки и в той последовательности, которые кажутся необходимыми в данный момент времени.

В данном вопросе главное – суметь объяснить на примерах назначения и различия видов тестирования. Очень важно помнить и понимать, что все эти виды и типы тестирования не обязательно являются взаимоисключающими, их нельзя перечислить в один ряд через запятую. Это скорее взгляд с разных точек зрения на то, как тестировать и что тестировать. Поэтому, например, функциональное тестирование может быть: в рамках белого и черного ящика; можно проводить его вручную, а можно использовать автоматизацию; мы можем проверять позитивные или негативные функциональные сценарии; можно проверять функционал проходя по тестовым сценариям или без них и т.д. С остальными видами дело обстоит также.

Сергей Гудков , специалист по разработке и продвижению сайтов (более 160 сайтов и 250 сплит-тестов), руководитель Сonversion42

Андрей Осипов , сертифицированный тренер Google, практикующий веб-аналитик, автор блога «Веб-аналитика и результат»

Мы часто получаем запросы на тексты для А/В-тестирования. Для каких целей есть смысл его проводить?

А/В-тест можно проводить практически для любых изменений на сайте. Ведь тест – это возможность достоверно узнать, насколько они эффективны.

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

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

Запрос «текст для А/В-тестирования» звучит не очень. Лучше заказывать просто новый, более продающий текст. А измерять продающие характеристики текста можно с помощью тестирования.

A/B-тестирование для сайтов: нужно тестировать текст, дизайн, страницу в целом, «продающесть» текста или страницы?

Тестировать можно что угодно.

Если вы думаете, что кнопка «Купить» незаметна, тестируйте только изменение кнопки. Если вы сделали новый дизайн страницы, можно протестировать разницу между двумя дизайнами.

Иногда в тесте сравнивают два сайта. Это очень спорное занятие – если вам интересно, предлагаем обсудить этот вопрос на вебинаре более конкретно.

Можно тестировать и по одному элементу за раз, и сразу целые страницы. От чего это зависит? Всё очень просто. Если у вас есть 10/30/100 мелких изменений, и вы уверены, что каждое из них увеличит конверсию, совмещайте это всё в один тест. Если запускать их по отдельности, то делать даже 30 тестов – это может быть очень долго и не слишком эффективно. И наоборот. Если есть одно важное изменение, и вы сомневаетесь насчет реакции посетителей сайта на него, запускайте один тест на одно изменение.

Какие данные (максимум) можно получить при А/В-тестировании?

Смысл А/В-тестов крайне прост: делим посетителей на две группы – одной из них показываем вариант А, другой – вариант В.

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

Также при интеграции А/В-теста с системами веб-аналитики, в частности с Google Analytics, можно увидеть разницу в поведении по всем параметрам: глубина и время посещения, посещение конкретных страниц, показатели отказов, достижение всех целей и т.д.

Какие сервисы могут помочь правильно провести A/B-тест?

Правильность запуска всегда зависит от вас. Сервисы – это инструмент. Как молоток. Если вы умеете им пользоваться, то у вас всё получится. ☺

Самые распространённые сервисы для запуска А/В-тестов:

  • Google Analytics (бесплатный);
  • VWO (платный, https://vwo.com/ );
  • Optimizely (платный, https://www.optimizely.com/ ).

Для большинства потребностей хватает Google Analytics. Мы сами его часто используем и вам рекомендуем.

Сколько элементов можно тестировать за один раз? Правильно ли сравнивать 2 текста, в которых отличается более 1–2 элементов?

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

Когда вы проводите очень-очень много тестов, бывают моменты, когда идей и гипотез нет. Такой себе провал. В такие моменты можно тестировать по принципу «А давайте сделаем и поглядим… Интересно же». ☺

В А/В-тестировании самое ценное – это время и объем трафика. Иными словами, вы можете провести ограниченное количество тестов в ограниченное время. Поэтому простой сайта без теста – это растрата бесценного ресурса.

Какие условия должны соблюдаться для правильного А/В-тестирования? Какой минимум просмотров/визитов/уников?

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

  1. Должен быть целевой показатель, например, общая конверсия интернет-магазина или лендинга, показатель отказов какой-то группы страниц, кликабельность кнопки «Купить» и т.д.
  2. Тест должен завершиться победой одного из вариантов со статистической достоверностью. Это означает, что данный вариант с очень большой вероятностью действительно лучше.
  3. Тест должен продолжаться ~2 цикла принятия решения о покупке. Например, известно, что девушки выбирают украшения около недели. Значит, минимальный срок теста составит 2 недели. В целом мы рекомендуем держать тесты от 1 до 3 недель.

Вопрос «А сколько надо трафика?» не совсем корректный. Длительность теста зависит от количества трафика и дельты целевого показателя. Например, тест с увеличением конверсии с 1% до 2% завершится быстрее, чем тест, где рост будет с 1% до 1,2%. Также тест на сайте с посещаемостью 1000 человек в сутки будет идти дольше, чем на сайте с 5000 посетителей.

Как интерпретировать полученные результаты для дальнейшей проверки гипотез?

Интерпретация результатов довольно проста. Выигравший вариант надо внедрить. ☺

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

Какие главные ошибки допускаются при А/В-тестировании?

Ошибок много. ТОП-3 из них:

  1. Тесты заканчивают раньше достижения статистической достоверности. Это может очень дорого стоить бизнесу. Внедряя изменения после таких тестов, вы не знаете, сделали вы лучше или хуже.
  2. Тестируются необоснованные идеи, подсказанные уборщицей из соседнего офиса. По сути, впустую тратятся бесценное время сайта и ресурсы компании на подготовку и реализацию теста.
  3. Не отслеживаются показатели во время теста. Часто бывает, что при запуске программисты ошиблись, и одна вариация работает с ошибкой. Если не контролировать тест, то узнать об этом можно через недели 2–3. Это пустая трата времени и ресурсов.

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

Почему это важно

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

«Разработчики все безответственные… Этот тестировщик неквалифицированный… Я нахожу баги через минуту использования продукта… Да вы кроме чаепитий там вообще что-то делаете?!» – выслушивали мы от директора после каждого релиза. Дальше последовало решение руководства о наборе команды опытных тестировщиков вместе с руководителем отдела. Всё это сопровождалось многочисленными разговорами о том, каким должен быть качественный продукт.

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

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

Отличия тестирования и обеспечения качества

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

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

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

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

Что делает QA-специалист:

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

В идеальном мире с идеальными процессами тестировщики вообще не нужны! Специалисты QA примут превентивные меры, и на долю тестировщика останется так мало работы, и она будет настолько примитивная, что каждый участник процесса сможет отвечать за выполнение необходимых критериев на вверенном ему участке функционала. На тему современного обеспечения качества без бюрократии и простоев очень советую прочитать потрясающую книгу «Как тестируют в Google» . Описанные в ней идеи просты и понятны, и в то же время от них веет масштабностью и результативностью.

Что могут сделать тестировщики для улучшения качества продукта

Многие ли компании себе целый отдел обеспечения качества? Задумаемся: действительно ли тестировщики – такие ограниченные в правах, замкнутые в оковы регламентов и инструкций люди, которые не в состоянии повлиять на качество продукта? Чаще всего, это не так. Все, кто хочет изменить мир к лучшему, начинают с себя, со своей работы над продуктом. Например, руководители в тестировании – с работы своей команды, ведь качественная организация процесса позволяет повысить эффективность тестирования.

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

Например, если есть жалобы на пропускаемые дефекты, то мы начинаем их фиксировать для анализа причин пропуска. Допустим, после пары итераций станет понятно, что причина в недостаточном покрытии функционала тестами. Отлично! Начинаем фиксировать процент покрытия. Ага, у нас недостаточно тестов. Почему? Да потому, что сроки на подготовку и тестирование слишком сжатые, и мы не успеваем писать тесты в требуемом для полного покрытия объеме. Оценка сроков адекватная, только вот передача версии в тестирование происходит позже запланированной даты, а сроки релиза отодвигать нельзя. В чем проблема? Разработчики не успевают – их оценка на разработку всегда оказывается на 2-3 дня меньше фактического времени на реализацию. Почему? Допустим, менеджер подбрасывает незапланированные задачи в середине итерации. Зачем? Заказчик требует – он не видит разницы между разработкой сайта-каталога и сайта-магазина.

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

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

Влияние процесса тестирования на качество ПО

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

Небольшое вступление о том, что побудило написать эту статью.

  • Так сложилось, что за несколько лет довелось и собеседовать и общаться с довольно многими коллегами по цеху разработки ПО. На собеседованиях – чаще, в общении – меньше, но упоминался вопрос «В чем разница между QA и тестированием?», или его вариант «В чем разница между Quality Assurance и Quality Control?». Интересно, но очень немногие смогли объяснить разницу. Вы не подумайте, что я умничаю, несколько лет назад я и сам не смог бы внятно ответить:).
  • Еще один побуждающий фактор в том, что в большинстве случаев объявление вакансий на тестировщика звучит: «Требуется QA» или «QA Tester». Может показаться как придирка, но «QA Tester» это как? Тот, который тестирует того, кто делает QA?
  • Но главное, в большинстве случаев мы перекладываем ответственность за качество продукта на плечи тестировщиков (зачастую это хрупкие плечи девушек ИТ-шниц). Т.е. надеемся что (внимание, ключевые слова большими буквами) ОНИ, ПОТОМ, ЭТО протестируют и будет нам КАЧЕСТВО.
    • ОНИ – не мы все вместе, а кто-то другой.
    • ПОТОМ – реактивно, поздно. Аспекты качества не планируется изначально.
    • ЭТО – какие именно результаты поставки и критерии приемки?
    • КАЧЕСТВО – понятие растяжимое, может определяться по-разному к разным результатам поставки, к взаимодействию между участниками проекта, и у тех же участников ожидания по качеству разные.

Захотелось внести ясность. Скромно полагаю, что могу быть достаточно авторитетен, все-таки, ИТ-шного опыта 15 лет, серьезно участвовал во внедрении CMMI, интересуюсь разнообразными стандартами в области управления качеством различных объектов и систем, и т.п. В общем, некоторый опыт и знания имеются.

Для начала давайте посмотрим, что такое тестирование, или Quality Control (в дальнейшем QC). QC это применение техник контроля качества определенных артефактов. Это проверки соответствия того, что мы УЖЕ СДЕЛАЛИ некоторым ожиданиям. Например:

  • Проверка соответствия функционала спецификации.
  • Инспекция (review) документов относительно требований к их написанию, содержанию и формату. Документом может быть спецификация, календарный план проекта, тестовая документация и т.п.
  • Инспекция (review) кода относительно стандарта кодирования, архитектурной документации, требованиям безопасности и т.п.
  • Верификация проверяет артефакт на соответствие требованиям, описанным-оговоренным РАНЕЕ, т.е. смотрит в прошлое. Например, заказчик, читающий и утверждающий спецификацию, по которой уже были обсуждения делает верификацию.
  • Валидация же проверяет артефакт на возможность его ДАЛЬНЕЙШЕГО использования, т.е. смотрит в будущее. Например, тестировщик, «идущий» по тестовым сценариям, которые составлены на базе спецификации, делает верификацию. Но если ту же спецификацию инспектирует тестировщик на предмет тестируемости, а разработчик на предмет реализуемости, то это уже валидация.

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

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

Теперь давайте посмотрим на Quality Assurance (QA), оригинальные определения.

  • CMMI. Quality Assurance – planned and systematic means for assuring management that the defined standards, practices, procedures, and methods of the process are applied.
  • PMBOK. Perform Quality Assurance – The process of auditing the quality requirements and the results from quality control measurements to ensure appropriate quality standards and operational definitions are used.
  • Wikipedia. Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality. The methods by which this is accomplished are many and varied, and may include ensuring conformance to one or more standards, such as ISO 9000 or a model such as CMMI.

Если сказать в двух словах, то QA отвечает за качество процессов , которые в свою очередь применяются для создания артефактов (продуктов). Инструментарий оценки качества процессов – аудит (см.

Но и это еще не все, на самом деле QA в свою очередь является элементом Управления Качеством (Quality Management — QM). Существуют немного отличающиеся определения о составе QM, приведу важнейшие из них:

  • Планирования качества – о качестве продукта, услуг начинают думать с самого начала. Определяются процессы, методологии, стандарты, критерии приемки, контрактные обязательства, целевая среда функционирования продукта и т.д.
  • Обеспечения качества – собственно отвечает за качество процессов и их применение
  • Контроль качества – техники контроля качества артефактов (продуктов)
  • Улучшения качества – постоянные, измеримые улучшения процессов с целью сокращения расходов (деньги, время, материалы), оптимизации работы, улучшения качества продукта и т.п.
  • Ответственность руководства (Management Commitment/Responsibility) по отношению к QM – причем это означает вполне конкретные действия, т.е. заинтересованность (лидирование, инициирование) элементов QM, выделение ресурсов (люди, время, деньги), обучение, внутреннее и внешнее «продвижение» отношения к качеству, контроль элементов QM.

Независимо от типа проекта, будь то вебсайт, SaaS платформа или же мобильное приложение, Вы должны определиться какой же тип тестирования выбрать - ручное или автоматизированное тестирование? Английская версия статьи manual testing vs automated testing . Существует огромное количество разных типов тестирования, которые относятся как к ручному (мануальное), так и автоматическому. Но сперва давайте узнаем, что такое ручное тестирование в веб-разработке.

Что такое автоматизированное тестирование?

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

В автоматизированном тестировании должен присутствовать тестировщик, который создаст программу и затем будет ее запускать. Наиболее популярной программой тестирования является Selenium Web Driver IDE. Используя язык Java или Python Вы можете начать тестирование. Кстати, если эти два языка входят в список программных языков 2019 года .

Плюсы автоматизированного тестирования:

1. Качество. Точность результатов тестирования напрямую зависит от уровня разработчика. Однако по большей части, точность результатов близка к 99.9%. Практически все возможные варианты, к примеру, валидации формы, можно охватить написав 5 строчек кода.

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

3. Выгодный. Большие проекты, особенно с высокой нагрузкой очень нуждаются в повышенном внимании и качестве. В долгосрочной перспективе, только автоматизированное тестирование будет выгодным и для финансового проекта, и для ecommerce сайта, и для веб проекта казино. Обратите внимание, на ecommerce тренды 2019 . Более того, по статистике, чтобы заменить одного автоматизированного тестировщика требуется от 3 до 8 ручных тестировщиков. Средняя стоимость автоматизированного тестировщика составляет $25 в час. При условии работы с Восточно-Европейской компанией. Агентства из США берут от $55 в час.

4. Захватывающее. В отличии, от ручного тестирования, автоматизированное считается креативным. Потому что, тестировщик в этой роли выступает как программист.

5. Видимость результатов. Ручное тестирование в основе своей субъективное. Видимость результатов, эффективности, и статистика перед каждым релизом это важные особенности автоматизированного тестирования. Отчеты генерируются также в автоматическом режиме.

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

Минусы автоматизированного тестирования

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

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

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

4. Ограничения. Ограничения в невозможности тестировать цвета, гамму, и UX. Эти пункты, хоть и являются второстепенными, но без должного внимания к ним, Ваши пользователи вряд ли смогут наслаждаться платформой на 100%.

Что такое ручное тестирование в разработке?

Ручное тестирование, это процессы через которые разработчики, или manual QA тестировщик тестируют продукт: вебсайт, платформу, SaaS, что угодно чтобы найти дефекты и ошибки. Ручное тестирование идеально подходит для тех проектов с малым бюджетом, либо же краткосрочных (до 2 месяцев). Ручное тестирование проходит от лица тестировщика, который выступает как конечный пользователь системы.

Проверяет все функции, ссылки, пункты меню и т.д. Чтобы избежать поломанных ссылок, или не рабочего функционала. Часто тестировщик также использует несколько браузеров, чтобы охватить как можно больше пользователей, и само собой мобильную версию. К примеру, наиболее популярны Chrome, Firefox, Safari, IE11, Edge. С мобильными устройствами все несколько проще - всего лишь Google Chrome и Safari для iOS устройств. Но постает вопрос - стоит ли начать с вебсайта или мобильного приложения ? Или же оба одновременно?

Какие же плюсы ручного тестирования?

1. Низкие затраты. В краткосрочной перспективе, это финансово выгодное решение.

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

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

Минусы ручного тестирования

1. Ограничения. К сожалению, нельзя проверить в ручном режиме все угодно. К примеру, нагрузочное тестировании практически нереально. Чтобы узнать какую веб-сервер сможет выдержать нагрузку - нужно фактически дать такую нагрузку.

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

3. Качество. На больших проектах ручное тестирование теряет свое качество. Нехватка времени, и рассеивание внимания стоят на первых местах.

Автоматизированное или ручное тестирование?

Прежде всего к Вам, как к владельцу проекта, несколько вопросов:

  1. Какой срок и объем Вашего проекта?
  2. Имеет ли значение поддержка платформы?
  3. Ищите ли Вы выгодное и доступное решение в области тестирования?

Если хоть бы на один из вопросов Вы ответили положительно, значит Вам скорее всего подойдет автоматизированное тестирование. В нашем опыте, достижение наилучшего результата возможно только объединив оба типа тестирования. Это позволит минимизировать риски, смягчить затраты и выпустить желаемый продукт очень быстро. Тем более, что Вы также решите визуальную составляющую, тренды веб дизайна 2019 помогут Вам в этом.

Кому нужно автоматизированное или ручное тестирование?

В первую волну попадают SaaS платформы, и те которые «делают деньги» со своего сайта. Онлайн казино, игровые площадки. Высоко нагруженные проекты из любой отрасли также нуждаются в автоматизированном тестировании. Ручное тестирование идеально подходит для вебсайтов для малого бизнеса, персональных сайтов и других маленьких веб проектов.