Разделы портала

Онлайн-тренинги

.
Распространенные поисковые запросы, часть 6: "Легко ли тестировать?"
03.08.2021 00:00

Автор: Ли Хокинс (Lee Hawkins)
Оригинал статьи
Перевод: Ольга Алифанова

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

В этой статье я отвечу на вопрос "Легко ли тестировать?" (и связанный с ним вопрос "Почему тестировать так трудно?").

Существует мнение, что "тестировать может кто угодно", так как тестирование – это просто "игра с программой", и, следовательно, легкая работа. Напротив, программирование повсеместно расценивается как нечто сложная. Это заставляет людей верить, что тестирование – хороший способ начать карьеру в IT, чтобы затем продвинуться "выше" в благословенные ряды разработчиков.

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

Мнение, что тестировать легко, также поддерживается существованием и превосходством легко достижимой ISTQB Foundation-сертификации. Этот сертификат имеется у нескольких сотен тысяч людей по всему миру (на май 2020 ISTQB выпустила 721000+ сертификатов, большая часть которых – уровня Foundation) – очевидно, что получить его легко (даже не обучаясь), и в результате рынок наводнен "тестировщиками", у которых за душой нет ничего, кроме этого сертификата.

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

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

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

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

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

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

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

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

(Посмотрите Тест-рэп Майкла Болтона – я вдохновлялся им, и это забавный способ напомнить людям о замечательных вещах, которыми заняты тестировщики)

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

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

Это непросто – как и большая часть стоящих вещей в нашей жизни!

Обсудить в форуме