Як тестувати те, що бачиш перший раз у житті. П’ять підходів

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Всім привіт, мене звуть Михайло, я працюю у продуктовій компанії RocketHash тестувальником. Хочу поділитися п’ятьма підходами до тестування того, що бачиш вперше у житті. Ці підходи допоможуть тестувальникам-початківцям уникнути страху перед незрозумілим і новим функціоналом, а також стануть у пригоді для підготовки до співбесід.

Моя трудова кар’єра склалася так, що більшу частину часу я працював в аутсорсингових компаніях. Специфіка роботи полягала в тому, що проєкти, які потрібно було тестувати, постійно змінювалися.

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

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

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

Для статті я зібрав п’ять підходів, які будуть йти послідовно: від найпростіших до складніших. Список не вичерпний та не заперечує й інші підходи до тестування.

1. Тисни на всі кнопки

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

Це тестування, до якого заздалегідь не готувалися, не збирали вимоги, не писали жодних планів. Насправді воно полягає в тому, щоб натиснути на все, що можна натиснути, перевірити переходи, екрани, форми. Загалом повзаємодіяти з усіма частинами проєкту, до яких зможете дотягнутися і подивитися, що станеться.

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

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

2. Йдемо у розвідку

Наступним за рівнем складності йде «дослідницьке тестування», його іноді також називають «розвідувальним» тестуванням (звучить кумедно). Воно схоже на Ad-Hoc, але має важливу відмінність.

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

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

3. Діємо за сценарієм

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

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

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

4. Орієнтуємось на вектори

Трохи складнішим підходом буде «векторне тестування». Суть його полягає у встановленні напряму тестування. Якщо проєкт цілком новий вам, його, як в інтеграційному тестуванні, можна розпочати тестувати «згори-вниз»: від загального тестування працездатності проєкту в цілому до частковостей у вигляді окремих функціональностей або модулів.

Якщо вже відомо, з яких модулів та частин складається проєкт, то можна піти у зворотному напрямку «знизу-вгору»: взяти окрему функціональність, модуль, екран і протестувати спочатку ізольовано від усієї системи. Розібравшись з конкретним модулем, піднятися на рівень вище та перевірити взаємодію з іншими модулями та системою загалом.

Якщо функціональність нова і раніше була присутня на проєкті — це буде тестування «вперед». Під час його проведення ми розглядаємо нову функціональність спочатку як ізольовану, а після перевірки та вивчення переходимо до наступного рівня та перевіряємо, як вона взаємодіє з рештою системи.

Переконавшись, що нова функціональність працює, ми проводимо тестування «назад» — проводимо регресію для підтвердження працездатності старого функціоналу.

Такий самий підхід можна застосувати і в менш абстрактних прикладах. Як-от: на вебсторінці завжди міститься обмежена кількість елементів. При векторному підході можна пройти сторінку «зверху-вниз», тестуючи кожен елемент.

Пройшовши таким чином сторінку, вектор тестування подумки можна розгорнути вглиб: перевірити зовнішній вигляд і маркап сайту, перейти до функціонала фронтенду, за ним подивитися взаємодію фронту та бека через API, і так, шар за шаром, пройти сайтом або іншим проєктом до бека та бази даних.

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

5. Вимоги — понад усе

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

Звідки можна отримати інформацію про вимоги? Зі спеку, з макета, зі стандартів, з попередніх реалізацій подібного функціоналу, кращих практик, та й зі здорового глузду, так)

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

Також одна велика вимога: «щоб функціональність працювала», можна розбити на кілька менших. Наприклад: є доступ до функціональності, що система не змінює свого стану до підтвердження дії, що функціональність не ламає і не перешкоджає іншим функціональностям, що дія є оборотною або навпаки.

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

Така система тест-кейсів дозволяє з вакууму невизначеності вибудувати зрозумілий і відчутний план тестування.

***

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

Якщо вам всі ці підходи були і так відомі, то ви, по-перше, молодець, а по-друге, не валите сильно на співбесіді)

Можливо, у вас є підходи до тестування чогось невідомого? Напишіть у коментарях, гадаю, що всім буде корисно дізнатися.

👍ПодобаєтьсяСподобалось21
До обраногоВ обраному10
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Немного странная статья. Если тестировщик не знает с чего начать тестирование функционала, который видит в 1й раз в жизни, значит ему надо уделить внимание основам тестирования.

1. Тестирование чего-угодно (приложения, карандаша, стула, двери, автомобиля...) начинается с требований. Они идут не 5 пунктом, а 1м. Всегда 1м.

2. Если требований нет, тогда тестировщик начинает придумывать эти требования, руководствуясь здравым смыслом, опытом, изучением приложения...

3. После создания требований их надо утвердить с руководством / заказчиком, чтобы потом не получилось, что потратил неделю зря. А после утверждения начинается тестирование.

4. Любая вещь тестируется в 1ю очередь на предмет выполнения своей основной функции, того, для чего она создавалась. Если эта функция не выполняется, то какая разница, интерфейс чуть более удобный или чуть менее удобный, загружается быстро или медленно и т. д.?

Как-то так.

Коментар порушує правила спільноти і видалений модераторами.

Як тестувати те, що бачиш перший раз у житті.

Обняти коліна, задуматися як ти потрапив в таку ситуацію.
Заплакати.
Піти шукати документацію.
Її нема
Заплакати.
Піти шукати інших тестувальників, що таке бачили.
Вони зневоднені, бо багато плакали, і не можуть відповісти.
Самому заплакати.
Побідкатись ейчару.
Пошукати ПО чи БА чи ще когось хто знає реквайрменти.
Вони вже на іншому проекті, на цей залишилось 3% капасіті, є вікно в грудні.
На першу зарплату купити антидепресанти.
Намазати клавіатуру кошачою м’ятою і випустити кота.

Щодо підходу:

1. Тисни на всі кнопки

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

Це як у анекдоті,

У літаку летить компанія: заєць, ворона, лисиця, ведмідь, слон. Нудьги.
Заєць дивиться на ворону, а вона розколупує дзьобом фюзеляж.
— Вороно, що ти робиш?
— Ви***ь!
— А можна і я по***ь, а то нудно.
— Так, давай, ось бери, відкручуйте ці гайки. Лисиця примітила, що народ чимось
зайнятий.
— Хлопці, що ви робите?
— Ви***я!
— А можна я теж?
— Давай! Бери, ці штуковини виламуй. Ведмедик підійшов.
— Народ ви чим так захоплено зайняті?
— Ви***я!
— І я хочу, зовсім уже від нудьги втомився.
— Будь ласка, бери, гни переборки. Зовсім народ повеселішав. Тут і слоник
підійшов, приваблений шумом. І йому справу знайшли — підстрибуй, кажуть. Всім
весело! Зрештою від таких веселощів літак розвалюється на шматки, все
вивалюються, падають і кричать вороні.
— Що ж ти дурниця наробила? А ворона крила розправила і, що пролітає повз
відповідає.
— А ЧЕ Ж ВИ ВИ***Я, РАЗ ЛІТАТИ НЕ ВМІЄТЕ?!?

Дякую за поради. Цікаво було почитати. Ще б хотів додати 1 важливий омомент: треба зрозуміти навіщо/що робить застосунок почати з основних сценаріїв його роботи

Підписатись на коментарі