Згідно зі статистикою GitHub, 68% респондентів вважають, що близько половини розробників не можуть знайти вразливі ділянки коду самостійно, зазвичай покладаючись на тестувальників. Основна мета оптимізації тестів - спростити процес тестування з точки зору як вартості, так і ефективності використання часу, не жертвуючи при цьому якістю результатів.
Оптимізація тестів дозволяє QA-працівникам максимізувати віддачу від їхніх зусиль з тестування, забезпечуючи при цьому максимально простий і надійний процес тестування, який дасть точні довгострокові результати. Якщо ви шукаєте методи оптимізації тестів, які допоможуть вам у ваших власних проектах з тестування, наведені нижче поради, безумовно, варті вашої уваги.
Почніть тестування на ранній стадії розробки

Етапи оптимізації тесту
Типова процедура оптимізації тесту може складатися з наступних етапів:
- Мінімізація розміру використовуваних тестових наборів
- Створення найменшої можливої підмножини тестових наборів, здатних досягти необхідних цілей
- Позбавлення від надмірної кількості тестових кейсів
- Аналіз оптимальних критеріїв тестового покриття
- Покращення супроводу тестових кейсів
Ще одна річ, яку слід врахувати, - це те, що процес тестування повинен бути запущений на перших етапах розробки. Так вам буде легше виявляти попередження та потенційні проблеми, які в іншому випадку можуть перерости у величезні проблеми. Якщо вам потрібно покращити якість зображень або підготувати професійні фото продуктів, ви можете скористатися послугами ретушування від FixThePhoto.
Оскільки на перших етапах код значно менший, знайти та вирішити критичні помилки набагато простіше, ніж мати справу з ними пізніше. Як наслідок, така методика є надзвичайно економічно ефективною і дозволяє розробникам створювати якісніший продукт за менший час.
Порада: По чніть шукати помилки вже на етапі збору вимог і продовжуйте це робити на етапі аналізу та проектування.
Виберіть тип тестування
Ви можете вибрати один з двох варіантів, описаних нижче:
A/B-тестування, або спліт-тестування, відбувається, коли тестувальник розділяє трафік на рівні частини і надає різний контент для кожної частини. Це найпростіший спосіб оптимізаційного тестування, оскільки все, що вам потрібно для цього типу, - це варіант за замовчуванням (поточний контент) і альтернативний варіант.
MVT-тестування (багатовимірне) ґрунтується на різних комбінаціях тестованих елементів, щоб визначити оптимальний досвід. Цей тип більш вимогливий до підготовки, ніж попередній, оскільки вимагає зміни щонайменше 2 окремих елементів сторінки. Перевага цього підходу полягає в тому, що він дає більш точні результати.
Обидва підходи дуже різні, але важливо пам’ятати, що вони не обов’язково суперечать один одному, оскільки один може бути використаний для доповнення іншого.
За словами Тона Весселінга, ви завжди повинні проводити якомога більше тестувань, принаймні протягом одного циклу купівлі, оскільки чим більший обсяг даних ви збираєте, тим надійнішу статистику ви можете використовувати для тесту.
Надайте інструменти для автоматизованого тестування
Ще один спосіб оптимізувати тестування - використовувати автоматизоване тестування.
Ось деякі з ситуацій, коли автоматизоване тестування може принести значну користь:
- крос-пристрійне та крос-браузерне тестування
- регресійне та димове тестування
- навантажувальне тестування
- тестування продуктивності
На ринку повно високоякісних продуктів для автоматизованого тестування, як безкоштовних, так і комерційних. Якщо ви зацікавлені у виборі одного з них, зверніть увагу на Selenium, Katalon Studio, Unified Functional Testing, Test Complete або Watir.
Порада: Перш ніж прийняти рішення, спочатку визначте тип тестів, які потребують автоматизації, і переконайтеся, що інструмент, який вас цікавить, відповідає вашим потребам і бюджету.
Впровадити дослідницьке та спеціальне тестування

Розвідувальне та спеціальне тестування
Дослідницьке тестування передбачає дослідження продукту з нульовим числом заздалегідь визначених тестових кейсів, які проводяться для аналізу того, як продукт поводиться під час використання. Щоб бути ефективним, такий підхід вимагає досвідченого, інтуїтивного та креативного тестувальника. Цей тип тестування виконується на ходу, зазвичай планується і виконується в найкоротші терміни, після чого результати аналізуються і використовуються для усунення всіх знайдених помилок і проблем.
Це один з найкращих методів оптимізації для перевірки юзабіліті, оскільки він має справу з різними реальними сценаріями та поведінкою споживачів. Такий підхід забезпечує швидку оцінку системи, майже миттєвий зворотній зв’язок і корисну інформацію про те, які області потребують додаткового тестування.
Найбільша перешкода, з якою ви зіткнетеся під час дослідницького тестування, - це документування його проведення, реплікація знайдених помилок і складання ретельних звітів, оскільки ви не можете покладатися на будь-які заплановані сценарії або жорстку структуру.
Спеціальне тестування - це найбільш імпровізаційний і неформальний метод тестування, оскільки він базується на вгадуванні помилок. Зазвичай воно виконується після всіх інших тестів, і його найбільшою перевагою є швидке виконання, оскільки воно не потребує підготовки або структурованого плану.
Цей хаотичний метод дозволяє виявити помилки, які часто можуть бути пропущені формальними тестами і які важко відтворити. Проте, результати такого тестування часто непередбачувані, тому пробіг, який ви отримуєте від нього, може сильно відрізнятися.
Порада: Оптимальною стратегією зазвичай є доповнення автоматизованих тестів дослідницькими та спеціальними тестами. В результаті ви отримаєте більше тестового покриття, покращите користувацький досвід і зможете розробити додаткові ідеї для тестів.
Залучайте користувачів до тестування
Тести для кінцевих користувачів зазвичай проводяться на останніх етапах розробки. Запрошення вашої цільової аудиторії випробувати додаток може бути дуже важливим для виявлення помилок, які інакше залишилися б непоміченими.
Якщо ви хочете провести таке тестування, вам потрібно знайти охочих користувачів, бажано тих, хто добре розбирається у вашій тематиці. Вони можуть надати вашій команді QA унікальну інформацію про дизайн і функціональність вашого продукту. Перед початком тестування навчіть користувачів, як працювати з вашим конкретним тестовим середовищем або інструментами, які ви надаєте.
Порада: Рекомендується використовувати для такого тестування простіший інструмент, бажано веб-систему, таку як Plutora або Usersnap. Чим простіші умови тестування для користувачів, тим краще.
Користувацьке тестування (UAT) можна проводити різними способами, серед яких є найпопулярніші:
- Альфа- та бета-тестування проводяться на етапі підготовки до релізу. Альфа-тести проводяться внутрішніми співробітниками на ранніх стадіях розробки, в той час як бета-тести проводяться в середовищі кінцевих користувачів, щоб перевірити, чи готове програмне забезпечення до випуску.
- Контрактне приймальне тестування - це метод UAT, який дозволяє перевірити, чи задовольняє розроблений додаток усім вимогам контракту.
- Тестування на відповідність норматив ним вимогам використовується для того, щоб гарантувати, що додаток відповідає всім необхідним законодавчим нормам.
- Операційне приймання або тестування виробничої готовності проводиться для того, щоб визначити, чи є програмне забезпечення достатньо якісним для виробництва та використання. Воно також аналізує існуючий стан робочого процесу (навчання користувачів, плани резервного копіювання, перевірки безпеки тощо).
- Тестування “чорного ящика ” аналізує функції програми без урахування внутрішнього коду, тобто тестувальники знають лише те, що має робити програма, але не знають як. Цей тип UAT дозволяє тестувальникам отримувати результати, подібні до тих, що надаються тестами кінцевого користувача.
Виберіть правильні інструменти або фреймворки
Командам тестувальників дуже важливо повністю розуміти свої цілі та обирати відповідні інструменти для конкретних фреймворків тестування. Якщо ви плануєте проводити кросбраузерне тестування, рекомендується використовувати утиліту з відкритим вихідним кодом, таку як Selenium. А для автоматизованого тестування на мобільних пристроях чудово підійдуть рішення на кшталт Appium.
Ви також повинні використовувати інструменти управління тестуванням, які можна інтегрувати з вашими фреймворками автоматизації тестування, утилітами CI/CD, рішеннями для відстеження помилок та іншими інструментами.
Кілька найкращих платформ для розгляду:
- Zephyr - це першокласний інструмент управління тестуванням, сумісний з фреймворками Agile та DevOps. Він доступний у декількох версіях: Zephyr для Jira - універсальна утиліта для одного проекту, яка працює в середовищі Atlassian Jira; Zephyr Scale - масштабована крос-проектна система, також інтегрована в Jira; і Zephyr Enterprise - просунутий автономний інструмент для синхронізації декількох команд.
- SpiraTest - це найсучасніший пакет для контролю якості, призначений для впорядкування та управління помилками і вимогами. Він забезпечує повне відстеження, підтримку різних типів тестів і всі види звітів.
- TestRail - це багатофункціональний інструмент, який пропонує кілька потенційних інтеграцій, а також баг-трекери та утиліти для автоматизованого тестування. Він також оснащений розширеними функціями звітності, які надають настроювані інформаційні панелі, що дозволяють відстежувати всі результати та основні показники, щоб отримати потенційно важливі відомості.
Порада: Перш ніж почати, ви повинні визначити, чи є програма мобільною або веб-орієнтованою, а також на яких платформах і браузерах її слід тестувати. Іншим фактором, який слід врахувати, є програмування команди QA, оскільки вам потрібно вибрати інструменти, сумісні з мовами програмування, з якими звикли працювати тестувальники, а також задовольняють усім вимогам програмного забезпечення, що тестується.
Документуйте процес тестування

Документуйте процес тестування
Якщо ви підтримуєте формальний процес тестування і належним чином документуєте його з самого початку, ви завжди матимете чітке уявлення про поточний стан розробки програми. Крім того, такий підхід полегшує співпрацю різних команд під час роботи над програмним забезпеченням.
Якщо ви хочете забезпечити належне документування всіх ваших процедур тестування, вам необхідно створити і оновлювати наступні документи:
Тестова політика. У ньому викладено принципи, якими користуються розробники, і ваші основні цілі тестування. Тут також описується значення тестування для розробників, ваші загальні цілі тестування, стандарти і критерії, що використовуються для тестів, визначення відповідних термінів, які пояснюють їх включення в усі подальші документи, короткий опис рішень, що використовуються для тестування, методи і статистичні дані, що використовуються для оцінки ефективності тесту, а також можливі методи покращення процесу тестування.
План управління якістю. Належний план управління використовується для опису прийнятного рівня якості продукту і того, як різні команди планують його досягти. Основна мета такого плану - допомогти менеджерам проекту організувати процес, визначивши ролі, обов’язки та очікування щодо якості, яких необхідно досягти. Зазвичай, такий план повинен включати
- Цілі якості
- Основні результати проекту та процеси, які повинні досягти прийнятного рівня якості
- Стандарти якості
- Заходи з контролю та забезпечення якості
- Ролі та обов’язки у сфері якості
- Якісні інструменти
- План звітування про проблеми з контролем та забезпеченням якості
Випробувати стратегію. Цей документ необхідний для визначення методів тестування додатків, які будуть використовуватися для досягнення ваших цілей тестування.
Стратегія тестування зазвичай складається з:
- Обсяг тестування
- Цілі тестування
- Бюджетні обмеження
- Комунікація та звітування про стан справ
- Галузеві стандарти
- Тестування вимірювань і метрик
- Повідомлення про помилки та їх відстеження
- Керування конфігурацією
- Дедлайни
- Графік виконання тесту
- Ідентифікація ризиків
План випробувань. У цьому документі описано, що саме має бути протестовано, як це має бути зроблено і хто буде виконувати тестування. Щоб відповідати стандарту IEEE 829, він повинен містити наступну інформацію:
- Ідентифікатор плану тестування
- Вступ
- Посилання (список пов’язаних документів)
- Предмети тестування (продукт та його версії)
- Фактори ризику програмного забезпечення
- Функції для тестування
- Функції, які не тестуються
- Підхід (стратегія)
- Критерії успіху або невдачі продукту
- Критерії призупинення
- Результати (документ з планом тестування, тестові кейси, інструменти, журнали помилок, звіти про проблеми тощо)
- Тестове середовище (обладнання, програмне забезпечення, інструменти)
- Розклад
- Кадрові та навчальні потреби
- Обов’язки
- Ризики
- Схвалення
Тестові кейси. Підготовка ефективних тестових кейсів - важливий етап оптимізації тестів.

Документуйте тестові кейси процесу тестування
Звичайний тестовий приклад складається з наступних дій:
- Ідентифікатор тестового кейсу
- Опис
- Передумови
- Етапи тестування
- Дані тестування
- Очікуваний результат
- Фактичний результат
- Статус
- Створено
- Дата створення
- Виконавці
- Дата виконання
Всі вищезгадані документи повинні оновлюватися щоразу, коли ви вносите будь-які зміни, і ви завжди повинні зберігати різні версії цих документів. Тим не менш, рекомендується тримати документацію по тестуванню якомога коротшою і точною. Також розумно поділитися планом тестування з клієнтом, щоб переконатися, що і він, і розробники знаходяться на одній сторінці.
Регулярно проводьте огляди
Регулярні огляди чудово допомагають відстежувати прогрес і стан вашого проекту. Вони також допомагають розробникам визначити, чи відповідає продукт встановленим вимогам і чи дотримані всі стандарти кодування.
Ви можете проводити як формальний, так і неформальний перегляд, співпрацюючи як з розробниками, так і з QA-тестерами. Наприклад, формальний перегляд може бути проведений у вигляді зустрічі, обходу або інспекції.
Результати ваших оглядів повинні дозволити вам визначити, чи відповідає програмне забезпечення представленим вимогам. Ви також можете перевірити інші фактори оптимізації тестування, такі як стандарти якості коду, знання предметної області та компетентні ресурси. Додаткові цінні вимірювання включають надійність системи, продуктивність, обслуговування та безпеку.
Порада: Оптимальний час для проведення формального технічного огляду (FTR) - це коли ваш проект досягнув завершальної стадії. Стандартний ФТР передбачає, що у вас є група інженерів, яким призначені ролі доповідачів, рецензентів і продюсерів. Після завершення такої зустрічі ви повинні скласти звіт, який містить відповіді на ці питання:
Що було переглянуто?
Хто його рецензував?
Які висновки та рішення були зроблені?
Делегуйте тестування програмного забезпечення стороннім компаніям
Якщо в команді немає спеціальної команди тестувальників, яка зосереджена виключно на пошуку всіх можливих проблем, вам, ймовірно, варто розглянути можливість передачі тестування на аутсорсинг, оскільки досвід показує, що такий підхід може допомогти вам скоротити приблизно на 25% процедури тестування.
Ось деякі з найкращих компаній, що займаються тестуванням програмного забезпечення:
- QualityLogic. Виконавши понад 5000 проектів за 35 років, ця компанія знає, що для створення високоякісного продукту команда розробників і AQ-тестери повинні тісно співпрацювати з самого початку і до фінального релізу.
- Belitsoft. Ця компанія має понад 17 років досвіду в розробці та тестуванні програмного забезпечення і дозволяє обирати між двома основними підходами: ручним (з використанням або без використання спеціальних програм) та повністю автоматизованим.
- TestCrew. Вони надають послуги тестування найвищого рівня для всіх галузей і розмірів бізнесу, наймаючи досвідчених ISTQB-сертифікованих тестувальників, які спеціалізуються на консультаційних послугах з тестування, функціональному тестуванні, нефункціональному тестуванні, тестуванні прийнятності для користувача (UAT), інтеграційному тестуванні, автоматизованому тестуванні тощо.
Ефективно повідомляти про помилки

Ефективно повідомляйте про помилки
Створення ретельного звіту про помилки - один з найважливіших кроків з оптимізації тесту, який ви можете зробити, оскільки він дозволить розробникам знайти чіткий шлях для вирішення будь-яких існуючих проблем.
Ось кілька порад про те, як створити звіт про помилку:
- Звіт повинен містити не лише сценарій помилки, але й можливі рішення для неї, тобто пояснення бажаної поведінки відповідної функції.
- Надайте послідовний покроковий опис того, як відтворити зазначену помилку.
- Звіт повинен бути достатньо простим, щоб розробники могли зрозуміти помилку, і водночас надавати інформацію про те, що відчули тестувальники і що вони повинні були відчути.
- Надайте скріншот помилки в дії, щоб продемонструвати, як вона виглядає.
- Подумайте про те, щоб додати короткий опис помилки, оскільки це може прискорити процес встановлення характеру помилки і мінімізувати час, необхідний для її виправлення.
Найновіші рішення для автоматизованого тестування постачаються з інтегрованими баг-трекерами, які слугують для автоматичного звітування про всі знайдені помилки, постійно оновлюючи їхній статус. Крім того, ви можете скористатися спеціальними утилітами для повідомлення про помилки, такими як JIRA та Mantis.










0 коментарів