База знань

Ручне та автоматизоване тестування

manualvsautomated

При ручному тестуванні (manual testing) тестувальники вручну виконують тести, не використовуючи ніяких засобів автоматизації. Ручне тестування – самий низькорівневий та простий тип тестування, що не вимагає великої кількості додаткових знань.

Тим не менш, перед тим як автоматизувати тестування будь-якого додатку, необхідно спочатку виконати серію тестів вручну. Мануальне тестування вимагає більших зусиль, але без нього ми не зможемо переконатися в тому, чи можлива автоматизація взагалі. Один із фундаментальних принципів тестування свідчить: 100% автоматизація неможлива. Тому, ручне тестування – це необхідність.

Міфи про ручне тестування:

– Хто завгодно може провести ручне тестування.

Ні, виконання будь-якого виду тестування вимагає спеціальних знань та професійної підготовки.

– Автоматизоване тестування краще, ніж ручне.

Повна автоматизація неможлива. Необхідно використовувати також і ручне тестування.

– Ручне тестування – це просто.

Тестування може бути дуже непростим заняттям. Проведення тестування для перевірки максимально можливої ​​кількості шляхів виконання програми із використанням мінімального числа тест-кейсів вимагає серйозних аналітичних навичок.

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

Деякі завдання тестування, такі як – низькорівневе регресійне тестування, можуть бути трудоємкими та вимагати багато часу, якщо їх виконувати вручну. Окрім того, мануальне тестування може недостатньо ефективно знаходити деякі класи помилок. У таких випадках автоматизація може допомогти заощадити час і зусилля проектної команди.

Після створення автоматизованих тестів, їх можна в будь-який момент запустити знову, причому запускаються і виконуються вони швидко та точно. Таким чином, якщо є необхідність частого повторного прогону тестів, значення автоматизації для спрощення супроводу проекту і зниження його вартості важко переоцінити. Адже навіть мінімальні патчі та зміни коду можуть стати причиною появи нових багів.

Існує кілька основних видів автоматизованого тестування:

– Автоматизація тестування коду (Code-driven testing) – тестування на рівні програмних модулів, класів та бібліотек (фактично, автоматичні юніт-тести);

– Автоматизація тестування графічного інтерфейсу користувача (Graphical user interface testing) – спеціальна програма (фреймворк автоматизації тестування) дозволяє генерувати користувальницькі дії – натиснення кнопок, кліки мишкою, та відслідковувати реакцію програми на ці дії – чи відповідає вона специфікації.

– Автоматизація тестування API (Application Programming Interface) – програмного інтерфейсу програми. Тестуються інтерфейси, призначені для взаємодії, наприклад, з іншими програмами або з користувачем. Тут, знову ж таки, як правило, використовуються спеціальні фреймворки.

Для складання автоматизованих тестів, QA-фахівець повинен вміти програмувати. Автоматичні тести – це повноцінні програми, просто призначені для тестування.

Коли, що і як автоматизувати і чи автоматизувати взагалі – дуже важливі питання, відповіді на які повинна дати команда розробки. Вибір правильних елементів програми для автоматизації більшою мірою визначатиме успіх автоматизації тестування в принципі. Потрібно уникати автоматизації тестування ділянок коду, які можуть часто змінюватися.

Порівняння ручного та автоматизованого тестування

130809_marketin_testing

Як ручне, так і автоматизоване тестування можуть використовуватися на різних рівнях тестування, а також бути частиною інших типів і видів тестування.

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

Вручну можна протестувати практично будь-який додаток, в той час як автоматизувати варто тільки стабільні системи. Автоматизоване тестування використовується головним чином для регресії. Крім того, деякі види тестування, наприклад, ad-hoc або дослідницьке тестування можуть бути виконані тільки вручну.

Мануальне тестування може бути повторюваним та нудним. У той же час, автоматизація може допомогти цього уникнути – за вас все зробить комп’ютер.

Таким чином, на реальних проектах найчастіше використовується комбінація ручного і автоматизованого тестування, причому рівень автоматизації буде залежати як від типу проекту, так і від особливостей постановки виробничих процесів в компанії.