Кожен Project Manager рано чи пізно стикається із запитанням від клієнта: «Скільки часу займе тестування проєкту?». Найпростіша відповідь: рівно стільки ж, скільки й розробка. Це пов’язано з тим, що дійсно ефективне тестування не може бути швидким.
Коли ви розробляєте програмний продукт або послугу, то створюєте конкретні речі: дизайни, прототипи, функції, модулі, компоненти, інтерфейси, служби. При цьому існує певний ризик виникнення проблем з будь-яким із цих параметрів під час їхньої спільної роботи. Щоб виявити подібні моменти та знизити ризики їхньої появи в майбутньому, й існує тестування продукту. Пропонуємо разом розібратися з цим процесом.
Види тестування програмного забезпечення
Види тестування QA включають безліч методів, які допомагають переконатися, що зміни в коді працюють належним чином або навпаки присутні якісь помилки. Сам процес може проводитися на будь-якому етапі розробки.
Основні види тестування ПЗ:
- Модульні — тести дуже низького рівня, які близькі до вихідного коду програми. Полягають у перевірці окремих методів і функцій, компонентів або модулів. Їх можна легко і дешево автоматизувати, при цьому можуть дуже швидко виконуватися за допомогою сервера безперервної інтеграції.
- Інтеграційні тести — перевіряють, як різні модулі спільно працюють. Наприклад, взаємодіють із базою даних.
- Функціональне тестування програмного забезпечення — фокусується на бізнес-вимогах додатків. Необхідно, щоб перевірити результат дії і не перевіряти проміжні стани системи під час її виконання.
- Наскрізне тестування — відтворює поведінку користувача з програмним забезпеченням. Перевіряє, наскільки різні користувацькі запити реалізуються правильно і просто.
- Приймальне тестування — формальна частина. Перевіряє, чи задовольняє система бізнес-вимоги. Для їх проведення потрібно, щоб ПЗ повністю працювало.
- Тестування продуктивності — проводиться для оцінки, як система працює за певного робочого навантаження. Дає змогу виміряти надійність, швидкість і можливості для масштабування застосунку.
Усі методи та етапи тестування потрібні для загальної працездатності застосунку, перевірки програми на можливу появу багів під час отримання невірних даних або проведення несподіваних дій. Вам потрібно розуміти, що станеться, якщо людина припуститься помилки або не заповнить до кінця форму.
Що таке естимація і навіщо вона потрібна?
Естимація в тестуванні — управлінське завдання, що включає в себе оцінку необхідного часу, ресурсів і витрат для виконання тестів у конкретному середовищі. Слугує прогнозом, який допомагає запобігти часовим обмеженням і перевищенню бюджетів.
За правильної естимації графік реалізації проєкту можна тримати під контролем. PM-и можуть створювати реалістичні терміни і розподіляти ресурси відповідно до потреб, якщо вони заздалегідь знають час, необхідний для тестування. Це дає змогу ефективно координувати розробку та інші процеси.
Маючи ці знання, ви зможете грамотно розподілити ресурси компанії та команди: кількість QA-фахівців, необхідні інструменти, середовища для тестування. Таким чином уникнете перевитрати або нестачі людей і технічних можливостей. Якщо боїтеся, що не зможете розібратися з цим самостійно, подивіться спеціалізований курс для проєктних менеджерів, що містить основні технічні терміни та лекції з тестування.
З чого складається тестування програмного продукту?
На відміну від типів або методологій, етапи тестування програмного забезпечення залишаються абсолютно однаковими для будь-якого проєкту і включають 7 пунктів. Кожен із них представлений певним набором дій.
Етап 1. План тестування
Тестування ПЗ завжди має починатися зі створення добре продуманого плану, щоб весь процес був максимально ефективним. Він має містити пункти щодо обсягу роботи, термінів, методів та інших формальностей, таких як непередбачені обставини або ризики.
У результаті у вас на руках має бути документ, що містить загальну стратегію перевірки продукту. Вкажіть у ньому склад команди, об’єкти, що тестуються, і наступні кроки.
Етап 2. Аналіз
Наступний крок — складання функціональної матриці перевірки. Внутрішня або стороння команда тестувальників аналізує вимоги та тестові приклади. Частина з них перевіряється автоматично, інші — вручну.
Наприкінці другого етапу PM має отримати: перелік вимог, які можна перевірити; необхідні типи та етапи тестування, необхідні для завершення проєкту.
Етап 3. Проектування
Якщо команда підійшла до цього пункту, ви все робите правильно — у плані немає плутанини, а у вас є чіткі та зрозумілі тестові приклади. У межах цього етапу фахівці з QA створюють відповідні сценарії для тестових прикладів і генерують перевірочні дані як для автоматичних, так і для ручних сценаріїв. Успішним результатом буде вважатися документ, що містить цю інформацію.
Етап 4. Розробка
Успішна реалізація передбачає створення списку вимог до програмного забезпечення. Тестувальники створюють модульні тести і складають плани продуктивності та стрес-тестування. Зазвичай це відбувається, коли процес перевірки починається одночасно зі стартом розробки продукту.
Етап 5. Реалізація
Коли скрипт повністю готовий, час приступати до його виконання. Спочатку команда проводить модульні тести, а потім перевіряє функціональність. Це необхідно, щоб виявити помилки на поверхневому рівні та повідомити про них розробників. Після цього QA-фахівці занурюються в процес більш детально.
Етап 6. Робота над помилками
Якщо в процесі перевірки продукту було виявлено помилки (це цілком нормально), дані про них надсилають команді розробників. Останні зосереджуються на пошуку можливостей для їх усунення, а потім тестування проводиться повторно — це дає змогу переконатися, що в процесі виправлення не з’явилися інші проблеми.
Етап 7. Завершення
Заключний крок, на якому виконуються всі тестові приклади і процедури. Програмне забезпечення відправляється кінцевому користувачеві, який перевіряє його ще раз і повідомляє про будь-які проблеми у вигляді зворотного зв’язку.
Хочете розібратися в тестуванні?
Тоді вам на курс Techmind. Це перший технічний курс для нетехнічних менеджерів, на якому розбираються всі аспекти розробки та тестування з боку менеджменту. Навчіться розуміти розробників, розберіться в SDLC, дізнайтеся, як влаштована розробка проєктів різного типу — від внутрішнього софту компанії до клієнтських web-проєктів. А головне, ви опануєте процеси тестування на такому рівні, щоб керувати проєктом, розраховувати терміни та бюджет. Подивіться програму курсу і залишайте заявку, щоб прокачати свої Tech Skills.
Скільки часу забирає тестування?
Тестування в розробці — не просто обов’язковий етап, а й стратегічно важливий компонент. Визначення оптимального часу — ключовий момент успішного завершення проєкту.
Неможливо одразу відповісти, наприклад, скільки часу займає функціональне тестування від загального часу перевірки на помилки будь-якого проєкту. Для цього необхідно враховувати низку факторів:
- Тип завдання. Чим унікальніший ваш проєкт, тим складніше його реалізувати. Це потрібно враховувати під час постановки дедлайнів, адже розробка програми для ведення обліку доходів і витрат точно потребує меншого функціоналу та захисту, ніж банківський застосунок.
- Необхідність перенесення великих обсягів даних з однієї системи в іншу. Іноді інформацію потрібно коригувати, щоб вона підійшла для нового рішення, а після переміщення необхідно провести тестування, щоб переконатися, що все працює коректно.
- Кількість функцій, складність функціоналу та реалізації. Як правило, досвідчені команди створюють простий продукт за 3-6 місяців, коли на проєкти середньої складності йде вже 6-9 місяців. Цей процес вимагає великих досліджень і аналізу.
- Послідовність вимог. Як проєктний менеджер ви маєте чітко розуміти ідею і призначення продукту замовника, щоб розрахувати терміни і бюджет.
Якщо брати загалом, тестування має проводитися протягом усього життєвого циклу розробки. Після того, як створено технічну частину, всі функції мають бути протестовані як єдине ціле. Типи тестів залежать від проєкту, а грамотний вибір — від знань PM-а. Для успішної роботи рекомендуємо пройти спеціалізований курс із технічних термінів, який включає блок із тестування ПЗ.