Восток Маркетинг


Статьи

Автоматизація тестування. З чого починати, можливі проблеми.

Disclaimer: Почалося все "з чого почати", потім перетворилося в скарбничку корисних посилань по автоматизації.

З чого почати?

  • Починайте з малого на самому початку проекту, регулярно запускайте тестову сюїту.
  • Заведіть собі backlog для задач автоматизації і їх пріоритетності. Це допоможе вам сфокусуватися на невідкладні завдання без втрати загального напрямку, вашої кінцевої мети.
  • Не бійтеся витратити 1-2 спринту на вивчення існуючих тестових фреймворків , Їх можливостей. Спробуйте написати реальні тести з їх допомогою, це допоможе вам вибрати фреймворк найбільш підходящий вашим вимогам. Бажано потім відповісти собі на ряд питань .
  • Намагайтеся зберігати незалежність тестів від даних. Це дасть вам можливість змінювати інструменти (фреймворки), коли в цьому виникне необхідність.
  • Створюйте самодостатні тести. Звертайте увагу на складність підтримки і час прогону тестів кожен раз, коли додаєте нові тести в автоматичну сюїту.
  • Ваші тести не повинні створювати помилкового відчуття безпеки (false positive). Це вбиває всю ідею автоматичних тестів.
  • Зробіть все можливе, щоб виправляти помилки виявлені тести максимально швидко.
  • Обов'язково включайте запуск автоматичних тестів в систему збирання (continuous integration)
  • У вас повинен бути інтуїтивно зрозумілий спосіб звітів, що дає можливість будь-якому в команді побачити результати тестів і історію їх попередніх запусків. Це дає можливість кожному бути включеним в моніторинг стану проекту і допомагає приймати правильні рішення.

Шпаргалка для визначення місць, які потрібно автоматизувати

А тут , Можна знайти алгоритм від Martin Fowler для визначення того, чи достатньо у вас тестів:

- ви рідко видаєте "баги" в реліз

- ви рідко побоюєтеся змінити код через побоювання того, що привнесло "баги"

До речі там же розвінчується міф про 100% test coverage. Рекомендую.

Які проблеми можуть виникнути і що потрібно враховувати?

Чим же допомагають автоматичні тести? В першу чергу, це механізм зворотного зв'язку. Рано чи пізно команда стикається з тим, що результат виконання тестів доводиться чекати все довше і довше. Починається оптимізація (запуск тестів паралельно, оновлення "заліза", переписування тестів). Все це збільшує витрати.

Цікава дискусія на тему автоматичних тестів розгорнулася в коментарях до статті Michael Feathers " Taking Automated Test Off the Pedestal ". Майкл піднімає питання збільшення кількості автоматичних тестів на проектах і як наслідок зростання вартості і тимчасових витрат. При цьому наголошується, що проблема політична: вартість підтримки та запуску автоматичних тестів може бути високою, але її необхідно порівнювати з вартістю їх відсутності. Вважаючи, що тести забезпечують зворотний зв'язок, ми повинні вирішити яку саме реакцію і коли ми очікуємо. Пропонується встановити тимчасові рамки, в межах яких ми розраховуємо отримати результат. Якщо наші тести дозволяють нам то зробити - добре. Якщо ні, то починаємо ділити сюїти, для того щоб запускати їх поперемінно. Для цього важливо визначити ті тести, які є найважливішими для вас.
Є ще цікава думка, від Lisa Crispen. Вона вважає, що найбільшою вигодою від автоматизації є комунікація і взаємодія між членами команди, яке просто необхідно для того, щоб цю автоматизацію власне реалізувати. Адже тільки спільними зусиллями можна досягти поліпшень.
У Сергія Висоцького можна, можливо почитати про різновиди автоматичних тестів з їхніми плюсами і мінусами, і його ж продовження теми.
Не зациклюйтеся на автоматизації "через GUI", як правило, це незручно і повільно.
В ідеалі (принаймні у вас в голові) повинна скластися така картинка (див. Новий варіант нижче)

На жаль, частіше можна спостерігати таке, тому роботи у нас ще море :) (пірамідки сперте звідси ):

Нова, класна картинка з пірамідою (трикутником?)

Ще одна гарна класифікація ( "будиночок")

Найцікавіша від Noah Sussman , У вигляді фільтра через які проходять фичи.
Найцікавіша   від Noah Sussman   , У вигляді фільтра через які проходять фичи

Ще одна фігурка для вправ :)


І ще. Не думайте, що автоматичні тести будуть вам шукати баги. Не будуть! (Хоча практика і досвід показує, що таки іноді знаходять, особливо коли це складні багатокомпонентні перевірки). Це не їх завдання. Автоматика всього лише доводить, що очікуваний функціонал працює в тих умовах і в тих рамках, які задані тестом. Це все. Чудес чекати не варто.

До речі, у мене з'явився пост про Fitnesse . Він може вам допомогти вам з автоматизацією. Сподіваюся вийде корисна серія. Update: Сергій Тепляков написав дуже гарну статтю-огляд про автоматизацію тестування. Вкрай рекомендую. Update 2: Ще рекомендую книжку " The A word "- цікавий погляд на цю тему. Update 7: Тести мало написати, їх треба регулярно запускати, причісувати, годувати і прополювати. Це нудна, але вкрай необхідна робота. тут подробиці

З чого почати?
Які проблеми можуть виникнути і що потрібно враховувати?
Чим же допомагають автоматичні тести?
Икутником?

Новости

также можем предложить:
печать бланков и прайс-листов | печать визитных карточек (визиток)
изготовление папок и меню | изготовление блокнотов
печать листовок

Связаться с менеджером для оформления заказа:
тел.: +38 (062) 349-56-15, 348-62-20
моб.: +38 (095) 811-22-62, +38 (093) 665-38-06,
+38 (067) 17 44 103
факс: +38 (062) 332-28-98
e-mail: [email protected]
г. Донецк, ул. Артема, 41

   2010 © Восток Маркетинг Яндекс.Метрика