База знань
Тестування веб-проєктів: основні етапи та поради
Тестування відіграє життєво важливу роль в процесі розробки і створення якісного програмного забезпечення. Необхідно серйозно ставитися до аналізу і проєктування структурованого процесу, який забезпечить своєчасний і успішний випуск проєкту.
Важливо пам’ятати, що довіру користувачів дуже просто втратити, а виправити допущені помилки може коштувати дорожче, ніж спочатку провести повну підготовку та тестування.
Етапи тестування веб-проєктів:
Підготовчий етап та вивчення документації.
В даний етап входить аналіз технічного завдання; вивчення кінцевих макетів; тест кейсів; матриці відповідності (для валідації покриття вимог щодо продукту тестами) і складання плану тестування.
Тестування верстки.
Візуальна частина:
Перевірити можна так: FirefoxMenu -> Інструменти -> Веб-розробник -> Адаптивний дизайн або Resolution Test Plugin у Chrome.
Доступність і відсутність JS помилок:
працездатність при вимкненому JS. Критичні функції повинні бути доступні без JS (в Web Developer -> Disable -> Disable JS -> All JS)
Коректна робота, надійна верстка:
перевірка роботи з даними (введення великої та малої кількості тексту у форму; блоки з контентом міняються місцями (Firebug (HTML -> Edit)));
перевірка роботи стилів (введення тексту з заголовками, з абзацом і без, з картинками).
404-і запити:
чи є 404-і помилки (Firefox -> Tools -> Validate links)
Функціональне тестування.
Вид тестування, у якому виявляється некоректна/неправильна робота функціоналу програми.
Необхідними перевірками є:
Ad-hock тестування – імпровізаційне тестування без підготовки.
Допомагає зрозуміти:
Негативне тестування, яке зазвичай називають тестуванням шляху помилок або тестуванням на збій, це процес застосування якомога більшої кількості креативних підходів та перевірки програми на предмет наявності невірних даних. Його призначення полягає в тому, щоб перевірити, чи показуються помилки користувачеві, де вони можуть бути, або більш витончено обробляти неправильні значення. Проводиться для забезпечення стабільності додатків.
Еквівалентні тести – це тести, які призводять до одного і того ж результату. Група тестів є класом еквівалентності, за умови дотримання наступних умов:
Еквівалентна область – частина області вхідних або вихідних даних, для яких поведінка компонентів або систем, ґрунтуючись на специфікації, вважаються однаковими.
Exploratory testing, також носить назву інтуїтивного тестування, має на увазі одночасне проєктування, виконання тестів і навчання продукту.
Usability тестування (User Experience).
Дозволяє перевірити комфортне використання сайту для користувача, наскільки легко знайти необхідну інформацію або виконати бажані дії.
Навігаційне тестування сайту. Чи всі сторінки, кнопки та поля на них, зрозумілі під час використання, доступ до головної сторінки та меню з усіх інших сторінок можливий, навігація проста та інтуїтивно зрозуміла.
Тестування контенту. Відсутність граматичних/орфографічних помилок, контент інформативний та структурований, зображення та заголовки мають відповідні розміри і розміщені вірно.
Зручність використання. Чи зрозуміла структура веб-додатку, яке враження справляє і чи наявні зайві компоненти на сторінках.
Тестування UI (User Interface). Відповідність стандартам графічних інтерфейсів й елементів дизайну, правильність локалізованих версій, тестування з різними дозволами, на смартфонах і планшетах.
Тестування сумісності (конфігураційне тестування).
Тип нефункціонального тестування програмного забезпечення, що дозволяє перевірити, чи може ПЗ працювати на іншому обладнанні, операційних системах, додатках, мережевих середовищах або мобільних пристроях.
Кросплатформенне (багатоплатформне) тестування сайту. Окремі функції можуть мати проблеми з певними операційними системами, тому необхідно перевіряти роботу програми у різних версіях Windows, Unix, Mac, Linux, Solaris і ін.
Кросбраузерні тестування сайту. Також коректна робота залежить від типу браузера. Верстка повинна бути кросбраузерною, щоб забезпечити однакову візуальну частину, доступність, функціональність і дизайн у всіх браузерах. Необхідно перевіряти масштабованість, розширюваність, рамки для елементів у фокусі, відсутність JS помилок (лівий нижній кут сторінки). Перевіряти роботу необхідно у таких браузерах, як: Internet Explorer, Firefox, Chrome, Safari, Opera, Edge різних версій.
Перегляд на мобільних пристроях. Незважаючи на перевірку роботи веб-додатків у різних роздільних здатностях на комп’ютері, найчастіше помилки на мобільних пристроях залишаються непоміченими. Отже, наполегливо рекомендується перевіряти коректне відображення та роботу вашого веб-додатку на мобільних пристроях різних операційних пристроях, а також на планшетах.
Тестування БД. Необхідно перевірити правильність встановлення зв’язку з сервером, перевірити сумісність сервера з ПО, апаратними засобами, базою даних і мережею. Також слід перевірити, що відбувається під час переривання будь-якої дії, під час наступного з’єднання з сервером під час виконання операцій.
Тестування продуктивності.
Методика нефункціонального тестування, для вимірювання таких параметрів системи як чутливість та стабільність, за різних навантажень. Дозволяє досліджувати швидкодію сайту та можливості масштабованості додатку, наприклад, під час додавання нових користувачів. Проводиться з метою з’ясувати, яке навантаження сайт здатний витримати. Тестування продуктивності вимірює атрибути якості системи, такі як масштабованість, надійність і використання ресурсів.
Навантажувальне тестування – це метод тестування продуктивності, у якому реакція системи вимірюється в різних умовах навантаження. Відповідає за реакцію веб-додатка у разі збільшення робочого навантаження. Навантажувальні випробування проводяться для нормальних і пікових навантажень (одночасна купівля товару або авторизація на сайті великої кількості користувачів).
Підхід навантажувального тестування:
Стрес-тестування (Stress Testing) перевіряє систему на її стійкість і обробку помилок в умовах надзвичайно високого навантаження (оцінює як система працює в екстремальних умовах, поза обмеженнями та лімітами). Стрес-тестування проводиться, щоб переконатися, що система не буде аварійно завершувати роботу у критичних ситуаціях.
Тестування стабільності/надійності (Stability/Reliability Testing) – тип тестування програмного забезпечення, який перевіряє, чи може програмне забезпечення працювати безвідмовно протягом певного періоду часу у вказаному середовищі.
Об’ємне тестування (Volume Testing) – тип тестування програмного забезпечення, яке проводиться для аналізу продуктивності системи за рахунок збільшення обсягу даних у базі даних.
Тестування паралелізму (Parallel Testing) – тип тестування програмного забезпечення, який перевіряє кілька додатків або підкомпонентів однієї програми одночасно, щоб скоротити час тестування. Під час паралельного тестування тестувальник запускає дві різні версії програмного забезпечення одночасно з одним і тим самим вводом. Мета полягає в тому, щоб з’ясувати, чи ведуть себе колишня система і нова система однаково або по-різному.
Тестування безпеки.
Спрямоване на оптимізацію безпеки системи під час проєктування, розробки, використання та обслуговування програмних систем і їх інтеграції з критично важливими для безпеки апаратними системами у виробничому середовищі.
Аспекти безпеки програмного забезпечення:
Функціональне програмне забезпечення не повинно створювати небезпек (наприклад: управління сучасним літаком НЕ повинне спрямовувати його в океан).
Системи моніторингу повинні працювати без збоїв (наприклад: резервний комп’ютер повинен запускатися автоматично у разі збою на основному).
Цілі в тестуванні безпеки:
Додаткову інформацію з безпеки програм можна дізнатися тут: CHECK, ISACA, NIST Guideline, OSSTMM, OWASP Guide.
Принципи безпеки:
Конфіденційність (обмеження або надання доступу до інформації).
Цілісність (можливість відновити дані в повному обсязі у разі їх пошкодження; доступ до зміни інформації тільки певної категорії користувачів).
Доступність (ієрархія рівнів доступу та їх чітке дотримання).
Обробка помилок та регресійне тестування.
Після завершення розробки веб-додатку слід провести оцінку й аналіз виявлених помилок для подальшого запобігання їх повтору. А також виконати регресійне тестування.
Регресійне тестування
Використовує техніку тестування чорного ящика (повторне виконання тестів), на які впливають зміни коду. Ці тести повинні виконуватися якомога частіше протягом всього ЖЦПЗ у разі змін коду для виправлення дефектів або для покращення роботи веб-додатків.
Практичні поради для Вас:
Хочемо нагадати, що робочий процес – це не рутина, а творчий процес, який визначає широту польоту вашої думки. Ставтеся до вашої роботи як до нового челенджу, і ви напевне почнете отримувати не тільки задоволення, але й матимете натхнення та бажання розвиватися. Завдання тестувальника дуже багатогранні: йому необхідно зрозуміти завдання веб-додатку, зрозуміти як він повинен працювати, які завдання вирішувати, яку користь приносити користувачам, а потім перевірити ще раз всі ПЗ кілька разів, щоб випустити проєкт в світ. Їм потрібно бути зібраними та сміливими, щоб випускати проєкти, якими зможе пишатися вся команда =)
Зв'язатися з нами
Адрес: г. Киев, 03058, а/я 24
E-mail: info@qalight.com.ua