
Сьогодні програмне забезпечення вже є невід'ємною частиною нашого життя. Існує безліч споживчих продуктів, а також бізнес-рішень. Насправді, все наше життя обертається навколо програмних продуктів різного роду, і коли рішення працює неправильно, може виникнути безліч проблем. Втрати коштів або ділової репутації — це насправді найменші неприємності, з якими можна зіткнутися в порівнянні з травмами людей або навіть смертями. Саме тому тестування програмного забезпечення повинно бути обов'язковим для кожного продукту на кожному етапі розробки та для кожного можливого пристрою.
Загалом, тестування програмного забезпечення складається з численних активностей, об'єднаних однією метою — перевірити та оцінити якість продукту і мінімізувати ризик його невдачі.
Процес тестування передбачає:
- Аналіз (уточнення вимог щодо функціональності, підтримуваних операційних систем і пристроїв тощо)
Це насправді початковий етап розробки, на якому мають бути встановлені всі критерії. Спеціалісти з контролю якості залучаються для виявлення можливих підводних каменів та валідації вимог перед початком розробки. Це призводить до створення детальної специфікації та вайрфреймів.
- Планування
Планування всіх заходів з забезпечення якості програмного забезпечення та тестування відбувається на цьому етапі, коли розпочинається проект. Визначаються тестові середовища (тестові пристрої, версії операційних систем тощо), типи та критерії початку та закінчення.
- Налаштування середовища
На цьому етапі інженер з контролю якості готує середовище для тестування продукту та впевнюється, що продукт працює на відповідних тестових пристроях, операційних системах і їх версіях, а також що всі необхідні інструменти та програми встановлені і готові до виконання тестів.
Ми тестуємо продукт, створений на реальних пристроях, найбільш популярних на цільовому ринку клієнта, і вибраних на основі виробника, типу та операційної системи.
- Проектування та впровадження тестів
Створюється контрольний список, щоб впевнитись, що продукт працює так, як і передбачено, в основних користувацьких сценаріях, а також розробляються тестові випадки, якщо це необхідно для більш складних операцій.
Нарешті, проводиться ручне тестування для перевірки правильності роботи функцій.
- Звіт про прогрес тестування
Як тільки виявляється будь-яка помилка, вона реєструється в системі, щоб розробники були в курсі.
- Аналіз результатів та пропозиції щодо покращень
Як тільки результати отримані, вони аналізуються для пошуку найкращих шляхів покращення продукту та виправлення помилок.
Загалом, під час процесу тестування в Stfalcon враховуються наступні аспекти:
- Основні налаштування продукту.
- Визначення критеріїв прийняття продукту.
- Визначення системних вимог.
- Визначення компонентів або функціональних областей.
- Планування тестових активностей.
Забезпечення якості на рівні прийняття користувачем включає такі активності:
- Тестування вимог.
- Функціональне тестування.
- Нефункціональні тести, такі як крос-браузерне тестування (для веб-продуктів) або тестування надійності.
- Тестування прийняття API. Створення скрипта для кожної точки доступу для перевірки, що точка доступу виконує необхідну базову операцію.
- Дослідницьке тестування.
- Ad-hoc тестування.
- Тестування підтвердження.
- Тестування диму та тестування адекватності;
- Регресійні тести.
Важливо пам'ятати, що тестування також включає валідацію того, що продукт відповідає потребам і очікуванням клієнтів та користувачів.
Кожен етап тестування має свої складові діяльності, що складаються з численних завдань і деталей, вони часто є наслідковими та реалізуються ітеративно.
Оскільки підхід Stfalcon переважно Agile, розробка відбувається в малих ітераціях, а тести виконуються на аналогічній ітеративній, безперервній основі.
Враховуючи це, проект має бути спланований з приблизно 30% часу, присвяченого тестуванню, щоб забезпечити отримання програмного рішення високої якості та ефективності.
У Stfalcon тестування є ручним, і ми застосовуємо його для всіх видів розроблених продуктів, ми виконуємо такі типи тестування програмного забезпечення:
- Тестування веб-сервісів;
- Тестування мобільних застосунків;
- Тестування бекенду.
7 найважливіших критеріїв, за якими ми перевіряємо наше програмне забезпечення:
Функціональне тестування виконується для перевірки, що кожна функція програмного забезпечення працює відповідно до функціональних вимог продукту.
Тестування надійності — це тип тестування, що перевіряє, чи є програмне забезпечення бездефектним і може працювати без збоїв протягом визначеного періоду часу в певному середовищі.
Тестування стабільності спрямоване на перевірку, що розроблене рішення може безперервно працювати добре протягом або понад визначений період.
Тестування ефективності перевіряє кількість ресурсів, необхідних продукту для виконання певної функції.
Тестування зручності використання зосереджене на легкості використання застосунку користувачем, його гнучкості в експлуатації та здатності системи відповідати поставленим цілям для продукту.
Тестування сумісності — це нефункціональне тестування, яке виконується для забезпечення того, що рішення є достатньо компетентним для роботи в різних середовищах: апаратному забезпеченні, браузерах, базах даних, операційних системах, пристроях і мережах.
Тестування підтримуваності проводиться для перевірки здатності системи оновлювати та модифікувати продукт за необхідності.
Висновок
У процесі розробки програмного забезпечення тестування повинно бути невід'ємною частиною, оскільки якість продукту прямо корелює з його зручністю використання, популярністю та корпоративними доходами, якщо це програмне забезпечення розроблено для бізнес-потреб.
У нашій компанії ми наполягаємо на тому, що не менше 30% часу проекту має бути присвячено процесу тестування, це дозволить нам гарантувати належну якість продукту нашим клієнтам.