Что пишут в блогах

Подписаться

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

Конференции

Что пишут в блогах (EN)

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

Про инструменты

Лучшие вакансии

.
Недостающее звено между тестированием и автоматизацией
04.06.2018 14:44

Автор: Виктор Славчев (Viktor Slavchev)

Оригинал статьи: http://mrslavchev.com/2017/11/23/the-missing-link-between-testing-and-automation/

Перевод: Ольга Алифанова

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

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

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

Два разных склада ума

Я взял это под наблюдение примерно тогда, когда готовился к TestBash в Мюнхене, и эта мысль начала расти и развиваться – мне требовалось время, чтобы окончательно ее оформить.

Когда вы, как тестировщик, присутствуете на конференции по «тест-автоматизации», или вы эксперт по автоматизации, и попали на конференцию по тестированию – не кажется ли вам, что люди говорят на чужом языке?

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

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

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

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

Склад ума тестировщика

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

Проблемы, которые пытаются решить тестировщики:

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

Почему складу ума тестировщика не удается помочь автоматизации?

Как правило, склад ума тестировщика не справляется с помощью автоматизации по нескольким причинам:

«Сопротивление тестирования»

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

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

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

Неспособность извлечь пользу из автоматизации

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

Мы норовим поставить перед автоматизаторами практически нереальные задачи – или из-за предубежденности «ручных идиотов заменят скриптами», или потому, что мы знаем реальную ценность и сложность тестирования, и стремимся ее продемонстрировать.

Чтобы стать лучше, нам нужно осознать