autotesting

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

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

Маленький перспективный проект постепенно превратился в большое и серьёзное приложение, количество ручных тестовых сценариев и специалистов по тестированию становится всё больше и больше, время на тестирование растёт и растёт, и руководство принимает решение, что пора бы озадачиться автоматизацией. Они открывают позицию automation QA, проводят собеседование с кучей соискателей и, наконец-то, находят отличного специалиста. Новый специалист команды тестирования берётся за свой фреймворк. Дело пошло! Количество  автотестов растёт, но тесты надо поддерживать и перепроверять, да и работают они как-то не стабильно. В итоге проект уже имеет целый отдел автоматизации, и куча времени и ресурсов  уходит на поддержание этого всего.  Автоматизация не  оправдала ожидания!

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

Автоматизация – это инструмент, и как любой инструмент, его производительность зависит от того, как им пользуются и в чьих он руках. Так как пользоваться автоматизацией?  Есть простые правила, о которых, очень часто говорят умные люди на конференциях:

  1. Цель автоматизации не уменьшить количество уже написанных ручных тесткейсов, а обеспечить качество продукта за минимальный срок.
  2. Не автоматизируйте всё подряд на UI, такие тесты хрупкие, медленные и неэффективные (вспоминаем про пирамиду автоматизации).
  3. Пишите API и другие низкоуровневые тесты.
  4. Разделяй и властвуй! Используйте моки и заглушки, отрезайте внешние сервисы.
  5. Концентрируйтесь на сути! Чётко формулируйте ожидаемый результат.
  6. Дайте автоматизаторам участвовать в написании тестовых сценариев, обсуждайте с ними, что будет при тестировании фичи покрыто автотестами, а что будет тестироваться вручную.
  7. Пустите автоматизаторов в код приложения, дайте им разобраться в принципах работы. И они покроют тестами то, о чём вы даже не догадывались, а девелоперы не говорили.
  8. Не пишите автотесты в стол. Они должны быть запущены при любом удобном случае.
  9. Не проводите автоматизированное и ручное тестирование на одном и том же окружении.
  10. Автоматизированные тесты должны быть быстрыми, если они не быстрые, то что-то не так.
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс