База знань
Ручне та автоматизоване тестування
При ручному тестуванні (manual testing) тестувальники вручну виконують тести, не використовуючи ніяких засобів автоматизації. Ручне тестування – самий низькорівневий та простий тип тестування, що не вимагає великої кількості додаткових знань.
Тим не менш, перед тим як автоматизувати тестування будь-якого додатку, необхідно спочатку виконати серію тестів вручну. Мануальне тестування вимагає більших зусиль, але без нього ми не зможемо переконатися в тому, чи можлива автоматизація взагалі. Один із фундаментальних принципів тестування свідчить: 100% автоматизація неможлива. Тому, ручне тестування – це необхідність.
Міфи про ручне тестування:
– Хто завгодно може провести ручне тестування.
Ні, виконання будь-якого виду тестування вимагає спеціальних знань та професійної підготовки.
– Автоматизоване тестування краще, ніж ручне.
Повна автоматизація неможлива. Необхідно використовувати також і ручне тестування.
– Ручне тестування – це просто.
Тестування може бути дуже непростим заняттям. Проведення тестування для перевірки максимально можливої кількості шляхів виконання програми із використанням мінімального числа тест-кейсів вимагає серйозних аналітичних навичок.
Автоматизоване тестування припускає використання спеціального програмного забезпечення (окрім того, що тестується) для контролю виконання тестів та порівняння очікуваного і фактичного результату роботи програми. Цей тип тестування допомагає автоматизувати дії, що часто повторюються, але які, в той же час, необхідні для максимального тестового покриття завдання.
Деякі завдання тестування, такі як – низькорівневе регресійне тестування, можуть бути трудоємкими та вимагати багато часу, якщо їх виконувати вручну. Окрім того, мануальне тестування може недостатньо ефективно знаходити деякі класи помилок. У таких випадках автоматизація може допомогти заощадити час і зусилля проектної команди.
Після створення автоматизованих тестів, їх можна в будь-який момент запустити знову, причому запускаються і виконуються вони швидко та точно. Таким чином, якщо є необхідність частого повторного прогону тестів, значення автоматизації для спрощення супроводу проекту і зниження його вартості важко переоцінити. Адже навіть мінімальні патчі та зміни коду можуть стати причиною появи нових багів.
Існує кілька основних видів автоматизованого тестування:
– Автоматизація тестування коду (Code-driven testing) – тестування на рівні програмних модулів, класів та бібліотек (фактично, автоматичні юніт-тести);
– Автоматизація тестування графічного інтерфейсу користувача (Graphical user interface testing) – спеціальна програма (фреймворк автоматизації тестування) дозволяє генерувати користувальницькі дії – натиснення кнопок, кліки мишкою, та відслідковувати реакцію програми на ці дії – чи відповідає вона специфікації.
– Автоматизація тестування API (Application Programming Interface) – програмного інтерфейсу програми. Тестуються інтерфейси, призначені для взаємодії, наприклад, з іншими програмами або з користувачем. Тут, знову ж таки, як правило, використовуються спеціальні фреймворки.
Для складання автоматизованих тестів, QA-фахівець повинен вміти програмувати. Автоматичні тести – це повноцінні програми, просто призначені для тестування.
Коли, що і як автоматизувати і чи автоматизувати взагалі – дуже важливі питання, відповіді на які повинна дати команда розробки. Вибір правильних елементів програми для автоматизації більшою мірою визначатиме успіх автоматизації тестування в принципі. Потрібно уникати автоматизації тестування ділянок коду, які можуть часто змінюватися.
Порівняння ручного та автоматизованого тестування
Як ручне, так і автоматизоване тестування можуть використовуватися на різних рівнях тестування, а також бути частиною інших типів і видів тестування.
Автоматизація зберігає час, сили та гроші. Одного разу автоматизований тест можна запускати знову і знову, докладаючи мінімум зусиль.
Вручну можна протестувати практично будь-який додаток, в той час як автоматизувати варто тільки стабільні системи. Автоматизоване тестування використовується головним чином для регресії. Крім того, деякі види тестування, наприклад, ad-hoc або дослідницьке тестування можуть бути виконані тільки вручну.
Мануальне тестування може бути повторюваним та нудним. У той же час, автоматизація може допомогти цього уникнути – за вас все зробить комп’ютер.
Таким чином, на реальних проектах найчастіше використовується комбінація ручного і автоматизованого тестування, причому рівень автоматизації буде залежати як від типу проекту, так і від особливостей постановки виробничих процесів в компанії.
Зв'язатися з нами
Адрес: г. Киев, 03058, а/я 24
E-mail: info@qalight.com.ua