Какие тест-кейсы стоит автоматизировать? |
04.12.2018 11:22 |
Автор: Майкл Болтон (Michael Bolton). Перевод: Ольга Алифанова Когда я слышу вопрос "У меня большой набор ручных тестов, какие из них (или, что еще хуже, "какие тест-кейсы") мне стоит автоматизировать", я беспокоюсь сразу о нескольких вещах. Во-первых, концентрация на тест-кейсах сигнализирует о довольно убогом образе мыслей в отношении тестирования. Это связано с тем, что тест-кейсы зачастую формулируются как четкое следование явной процедуре с целью получения специфического результата. В лучшем случае следование процедуре подтвердит, что продукт может работать, а также предполагает, что любой не наблюдаемый в ходе процедуры и после нее результат не так уж важен. Проблема тут в том, что процедуру можно варьировать потенциально бесконечным множеством способов, и множество факторов могут повлиять на сам тест или его результат. Будут ли люди пользоваться продуктом одним и только одним способом? Выявят ли эти специфические данные проблему? Могут ли другие данные выявить проблему, которую не найдешь при помощи имеющихся? Будет ли баг возникать каждый раз при следовании этому сценарию? Тест-кейсы зачастую активно подавляют исследовательскую жилку. Тест-кейсы – это не тестирование, а баги не следуют за тест-кейсами.
Во-вторых, тестирование не делится на ручное и автоматизированное. Тест невозможно автоматизировать. Автоматизации поддаются элементы процедуры теста (в частности, проверки отдельных фактов). Но ваш тест не состоит из нажатий виртуальных клавиш, выполненных машиной, или сравнения результата с какой-либо документацией. Ваш тест – это процесс, связанный с деятельностью и размышлениями: анализом риска, дизайном эксперимента, выполнением эксперимента, наблюдениями за тем, что происходит до, во время, и после эксперимента; интерпретацией результатов и подготовкой релевантного отчета. Все это зависит от ваших намерений, образа мыслей и набора навыков. Инструменты могут помочь на этом пути, но тест – это то, что делаете вы, лично вы, а не машина. В-третьих, множество существующих кейсов поверхностны, бессмысленны, устарели, громоздки, неэффективны, загадочны или не основаны на анализе рисков. Зачастую они сконцентрированы на пользовательском интерфейсе, а этот уровень продукта обычно не дружит с инструментами. Так как кейсы существуют, они зачастую бессмысленно перепрогоняются задолго после того, как они утратили способность искать баги. Зачем же прогонять бессмысленные тесты быстрее? Куда лучшей идеей будет создание новых автоматизированных проверок, концентрирующихся на специфических продуктовых факторах, особенно на низких уровнях, с целью получения быстрой обратной связи. Их хорошо бы создавать в паре разработчик-тестировщик (или путем совместной работы двух разработчиков, один из которых играет роль создателя, а другой – тестировщика). Неплохая идея – разрабатывать эти проверки в ходе процесса создания какого-либо кода. Отличная идея – думать об инструментах шире, не фокусируясь только на быстром выполнении тест-сценариев. Итак, я подталкиваю людей к смене формулировки вопроса. Вместо того, чтобы размышлять, какие (существующие) тест-кейсы стоит автоматизировать, попробуйте подумать вот о чем:
Помните: если вы относитесь к тестированию ответственно, с умом, эффективно, и концентрируетесь на поиске значимых проблем, то инструменты помогут вам найти проблемы, которые имеют значение, эффективно, с умом и ответственностью. Если вы пытаетесь "автоматизировать" плохое тестирование, вы обнаружите, что теперь вы занимаетесь плохим тестированием быстрее и хуже, чем когда бы то ни было. |