Навіщо та чому потрібна тестова документація Лабораторія Якості

Давним давно…

потрібна
Колись у юності я почала працювати співробітницею відділу тестування в одній компанії. Тестова документація там існувала у вигляді чек-листів в Excel і якихось вимог на 1-2 сторінки для розробників, куди іноді могли заглянути і тестувальники. Згодом компанія перестала виділяти час на написання СПД, але документація для розробників все ще залишалася в більш менш гідному вигляді. Так як компанія займалася звичайною розробкою програмного забезпечення для мобільних пристроїв, підтримувати актуальною тестову документацію і взагалі її створювати для тестувальників виявилося накладно. Специфікація стала рідкістю.

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

— Ми перестали робити in-app покупку тем! - Ad-hoc збірка вже зібралася! За годину треба викласти! - Ще ми критичні баги виправили і ось цю "штуковину" засунули в код. — Проженіть якийсь смок, раптом щось зламалося! - і т. д.

У результаті доводилося без документації думати про те, що саме і які частини могло вплинути. У терміновому порядку потрібно було проводити повноцінне дослідницьке тестування за півгодини! При цьому потрібно було знайти критичні для користувачів баги. Півгодини — це максимум часу, тому що виявлені проблеми ще потрібно виправляти і перевіряти ще раз. Згодом за такої організації роботи починали виникати проблеми:

—Слухайте, а хтось пам'ятає, що тут було? Хтось знає, як воно має працювати? — Не пам'ятаю вже. Потрібно запитати у розробників… — Хм… Гадаєш, я пам'ятаю, що я робив три місяці тому? У мене 5 додатків! Я вже не пам'ятаю, де і що я колись писав… (7 час…) — Та не знаю. Ну хай так буде. — У мене твій баг не повторюється. А-а-а… ти е-ету кнопку натискаєш при виході. А я завжди ту натискаю... — Слухай, а ти не пам'ятаєш, як ми перевіряли такі передплати? І ось це яким має бути? Здається, воно не повинно бути таким… Не пам'ятаю.

І запитати нема в кого. Фахівців, які займалися б документацією, немає. Тестувальниками часто проводилося повне тестування програми, що забирало багато часу - цілі тижні, а іноді й місяці. І на запитання: “Коли ви закінчите перевіряти?”, була відповідь: “Критичні баги лезуууут!” Не було чіткого розуміння, скільки часу потрібно для тестування програми. А час, як відомо, – гроші. У результаті виходило щось, що починало жити своїм життям.

чому

Як, що й за якими законами там відбувалося, не було зрозуміло нікому. Особливо новим розробникам, яким передавали подальшу розробку:

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

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

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

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

У якому вигляді і навіщо потрібна тестова документація?

навіщо

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

Робоча проектна документація, що використовується тестувальниками

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

Чому потрібно?

Якщо ТЗ буде у загальному доступі, то співробітники, які погано перетинаються з командою розробки, зможуть його подивитися. Можливо, що при тестуванні буде виявлено якусь проблему, про яку повідомить тестувальник (наприклад, програма не виконує те, для чого була створена).

Новим співробітникам не потрібно буде розповідати про зміст програми та методи її реалізації. Можна буде швидко ввести в курс справи будь-якої людини.

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

При тестуванні не виникатиме спробперевіряти зайве. У першу чергу, перевірку буде піддано те, що обов'язково має працювати по ТЗ.

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

ЧТЗ (приватне технічне завдання) - створюється на основі ТЗ. Зазвичай містить повний опис конкретної частини продукту, що розробляється і ВІ (варіанти використання, сценарії використання предмета розробки користувачами, макети частини предмета розробки, що розробляється, його логіку і суть).

Чому потрібно?

Допомагає розробникам реалізувати продукт, що розробляється точно так, як замислювалося. Допомагає зрозуміти логіку та правила оформлення.

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

Дає можливість приблизно оцінити трудовитрати на розробку та тестування ще до початку робіт.

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

ЧТЗ та ТЗ можна відобразити:

у текстовому вигляді з картинками

потрібна

у вигляді графічного шаблону-таблиці

чому

у вигляді інтелект-карт, UML або подібного алгоритму

тестова

Проектна документація, що готується тестувальниками

ЧЛ (чек-лист) - список того, що потрібно перевірити.

Чому потрібно?

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

Зберігає історію пройдених тестів. Можна буде легко згадати, які саме тести проходили з помилками, і перевіряти ще раз саме їх.

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

Допомагає пам'ятати, що вже було перевірено, а що ні.

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

Чек-листи можна записати:

у вигляді таблиць (зручно в Google Sheets)

потрібна

у вигляді інтелект-карт (зручно у XMind)

чому

у вигляді списку перевірок у спеціально призначеній системі (зручно у Sitechco)

потрібна

у вигляді списку у текстовому документі, який звичний.

ТК (тест-кейс) - створюється на основі ЧТЗ (якщо воно є) тест-аналітиками та тестувальниками.

Чому потрібно?

Спільно з ПЛ може зберігати історію тестування та відображати, що саме та як тестувалося. Можна переконатися, що та чи інша функціональність обов'язково була або буде перевірена та торкнутася при тестуванні.

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

Допомагає побачити як предмет розробки (програма, сайт тощо) має виглядати. З наявними скріншотами екранів, якщо вони є, можна буде не забути про те,що “вона та” кнопка має бути сірою, а не червоною.

Тест-кейси можна відобразити:

у вигляді таблиці з текстовими даними

чому

у спеціальному сервісі для ведення тест-кейсів (наприклад, TestLink).

Звіт про тестування – письмовий або медійний звіт про виконану роботу та її результат.

Чому потрібно?

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

Історично фіксує інформацію. До неї завжди можна буде повернутися та побачити, що саме було виконано і що саме отримали у результаті.

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

Допомагає приймати рішення щодо подальших дій (наприклад, чи варто випускати версію програми у поточному стані).

Приклад звіту письмово:

потрібна

Як визначити, яку саме документацію необхідно впровадити у проект?

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

На проекті до 15 осіб (проекти низької складності):

технічне завдання (запобігає неправильному розумінню завдання розробниками, тому що документації немає);

чек-листи (легко підтримувати, не забирають багато часу);

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

На проекті від 15 до 50 осіб (проекти середньої складності):

база знань (наприклад, у Wiki);

звіти у вигляді листа з доданим пройденим СПДвказівкою критичних багів.

Великий проект - від 50 чоловік і більше (проекти високої складності):

приватне технічне завдання;

база знань (наприклад, у Wiki);

звіти у прийнятому у компанії вигляді (зазвичай, у вигляді листа з докладними графіками та доданими файлами);

інше (залежить від типу, цілей та потреб компанії).

Що з цього вибрати - вирішувати самим співробітникам, тому що саме вони займатимуться розробкою та зможуть зрозуміти, що їм потрібніше. Все вищезгадане — лише зразкове уявлення та рекомендації.

Що робити, якщо написання документації займає багато часу?

чому
Досвід показує, що під час роботи над невеликим проектом потрібно вміти пристосовуватися. Можна змінити документацію так, щоб її ведення було зручним і не займало багато часу. Наприклад, ТЗ можна зробити у вигляді презентації чи вебінару та отримати від розробників уточнюючі питання. Кожен із видів документації має свої плюси та мінуси, тому потрібно експериментувати і не боятися створювати щось нове. Всі наукові відкриття здійснюються методом спроб і помилок, при цьому трапляються невдачі! Але негативний результат – це також результат! Потрібно вміти ним скористатися і врахувати його у своїх подальших експериментах, доки не буде досягнуто прийнятного результату. Чудових вам рішень та успіхів у написанні документацій!