Люди звикли протипоставляти ручне тестування автоматизованому. Обидва засоби перевірки програмного забезпечення мають переваги та недоліки.
Основні переваги автоматизації тестування - швидкість та відсутність людського фактору - зробили широким його використання. Здається, що автоматизація застосовується для виконання все більшої кількості задач. Може здаватися, що вона може повністю витіснити роботу мануальних тестувальників у найближчому майбутньому.
Але спеціалісти, які здійснюють тестування веб-сайтів, десктопне та мобільне тестування, стверджують, що цього ніколи не станеться, тому що в деяких аспектах жоден інструмент не може зрівнятися з інженером з тестування.
Основні переваги автоматизації тестування - швидкість та відсутність людського фактору - зробили широким його використання. Здається, що автоматизація застосовується для виконання все більшої кількості задач. Може здаватися, що вона може повністю витіснити роботу мануальних тестувальників у найближчому майбутньому.
Але спеціалісти, які здійснюють тестування веб-сайтів, десктопне та мобільне тестування, стверджують, що цього ніколи не станеться, тому що в деяких аспектах жоден інструмент не може зрівнятися з інженером з тестування.
Аспекти, в яких ручне тестування ПЗ краще автоматизованого:
тестувальники можуть вирішити перевірити області або виконати тести, які не врахованіі в автоматизовані, і таким чином збільшити тестове покриття та знайти помилки, які б не знайшов інструмент;
- тестувальники бачать дефекти, які не були передбачені в автоматизованих тестах. Все передбачити неможливо - інженери з тестування можуть імпровізувати, а інструменти такого не роблять;
- інструменти не мають почуттів, які мають кінцеві користувачі, тому вони не можуть розраховувати на попередній досвід та інтуїцію. Тільки люди можуть повністю оцінити програму, а інструмент лише визначає, чи проходить програма тести.
Автоматизоване тестування передбачає таку взаємодію між програмним продуктом та інструментами тестування, за якої втручання людини зводиться до мінімуму.
Інструменти автоматизації корисні для багатьох видів діяльності. Вони дозволяють заощадити масу часу, виконуючи регресійне, модульне, навантажувальне та деякі інші види тестування.
Процеси, які можуть бути автоматизованими:
- регресійне тестування;
- димове тестування;
- тестування продуктивності;
- тестування навантаження;
- тестування методом білого ящика (за допомогою інструментів модульного тестування);
- аналіз покриття коду.
Але найбільшою помилкою розробників є автоматизація не тих процесів під час розробки програмного забезпечення. Не все можна запрограмувати та виконати автоматично.
Що ніколи не слід автоматизовувати:
- нестабільне програмне забезпечення. Якщо програмний продукт знаходиться на стадії розробки та піддається змінам, автоматизоване тестування не буде доречним;
- сценарії тестування, які рідко використовуються. Не слід автоматизовувати ті сценарії, що будуть виконуватися рідко;
- аналіз програмного кода і документації. Автоматизація цих процесів може в подальшому тільки додати клопоту.
Зазвичай для автоматизації найбільше підходять задачі, що повторюються. Саме тому деякі компанії вважають за краще спочатку провести ручне тестування, щоб визначити ті процеси, які виконуватимуться неодноразово, для їх подальшої автоматизації.
Аспекти, в яких автоматизоване тестування ПЗ краще за ручне:
- написаний скрипт можна виконувати скільки завгодно разів;
- автотести виконуються з більшою точністю, так як людський фактор виключений;
- час виконання автотестів набагато менший, ніж виконання тих самих перевірок вручну;
- тестовий прогін можна запланувати на будь-який час, запустити за розкладом, щоб він виконувався без участі людини.
Найбільш підходящі сценарії, до яких можна застосувати автоматизацію:
- важкодоступні місця в системі;
- функціональність, яка часто використовується, в якої ризики від помилок достатньо високі;
- рутинні операції, такі як перебори даних;
- перевірка валідаційних повідомлень;
- довгі end-to-end сценарії;
- перевірка даних, що потребують точних математичних розрахунків.
Обидва види тестування мають як переваги, так і недоліки. На реальних проєктах часто використовується комбінація ручного та автоматизованого тестування, до того ж рівень автоматизації залежить як від типу проєкта, так і від особливостей виробничих процесів в компанії. Комбінація обох видів - ідеальний спосіб отримати від тестування максимальний результат.