1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

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

Тестування - процес дослідження та контроль якості, який складається з планування, проектування, власне перевірки та аналізу її результатів.

Існує три рівні тестування:

    Модульне (або компонентнe) тестування, коли перевіряється тільки якась частина ПО: окрема функція, клас, модуль програми. Стандартно воно проводиться через виклик коду. Найчастіше тестування на цьому рівні здійснюється самим розробником. Модульне тестування від компонентного відрізняється тим, що в компонентному використовують реальні об'єкти і драйвери, а в модульному - конкретні значення.
    Інтеграційне тестування - процес дослідження ПО, коли перевіряються інтерфейси між компонентами або підсистемами. До інтеграційного тестування можна віднести також перевірку взаємодії двох систем в заданих точках. Наприклад, передачу даних з однієї системи в іншу.
    Системне тестування - перевірка відповідності системи вимогам замовника. Досліджуються функціональні і нефункціональні вимоги до системи в цілому, виявляються дефекти і непередбачувані сценарії. Наприклад, що буде, якщо в поле, в яке вводиться два знака, спробувати ввести три, букву замість цифри і т.д.

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

Класифікація видів тестування
Перелічимо основні:

    Функціональне тестування - перевірка, що програмне забезпечення правильно вирішує призначені для користувача завдання.
    Тестування продуктивності дозволяє оцінити швидкодію ПО при заданому навантаженні. Тестування продуктивності проводиться до і після оптимізації. Його метою є перевірка і виявлення чинників, які впливають на продуктивність ПО.
    Тестування навантаження передбачає оцінку ПО при плановому, підвищеному і піковому навантаженні. Ресурси системи кінцеві і таке тестування дозволяє уникнути пов'язаних з навантаженням інцидентів після її впровадження.
    Стрес-тест - перевірка роботи ПО в критичних умовах: міграція даних з іншої системи в великих обсягах, завантаження великої кількості даних, брак пам'яті або дискового простору. Також перевіряється, як буде працювати ПО, коли їм одночасно почне користуватися велика кількість користувачів.
    Тестування стабільності - перевірка реакції ПО на злом, спроби розкрадання даних і т.д.
    Тестування сумісності - перевірка реакції ПО на оточення, задані умови використання іншими системами та ін.
    Тестування black box або тестування чорного ящика проводиться тільки через інтерфейси користувача.
    Тестування white box або тестування білого ящика - тестування з доступом до вихідного коду програми. Цей спосіб дозволяє оцінити реакції всередині ПО на ті чи інші події, більш тонко і точково виявити помилки або неоднозначні реалізації логічних ланцюжків.
    Альфа-тестування - імітація реальної роботи з ПО, щоб оцінити його в максимально наближених до реальних умовах.
    Бета-тестування проводиться групою за основними параметрами з метою перевірки наявності в ПО мінімальної кількості помилок.
    Регрес-тест - перевірка раніше знайдених помилок. Після розробки та доопрацювання перевіряється, що жодна з них не з'явилася знову.
    Димової тест - перевірка «А чи запускається ПО?». Smoke testing проводять, коли окремі компоненти потрібно зібрати в один продукт. Буває, що окремо кожна компонента працює стабільно і коректно, а разом - ні.
    Ручне тестування - тестування, при якому не використовуються додатків інструменти, для перевірки проводиться тільки імітація дій користувача.
    Автоматизоване тестування - тестування з використанням спеціальних програмних засобів. Автоматизоване тестування економить час і ресурси, а також збільшує надійність ПО.
    Динамічний аналіз коду - аналіз вихідного тексту програми в процесі її виконання. У цьому випадку проблеми в коді виявляються в міру їх появи.
    Статичний аналіз коду проводиться без реального виконання досліджуваних програм. Він дозволяє виявити дефекти ще до того, як код буде готовий до запуску. Статичний аналіз також називаю аудитом коду.


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

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

Обов'язки тестувальника
    контроль якості розроблюваних продуктів;
    виявлення та аналіз помилок, що виникають при роботі з ПЗ;
    розробка тестів, тест-кейсів;
    тестування;
    аналіз результатів тестування;
    класифікація помилок;
    супровід процесу ліквідації знайденої помилки;
    документування всього процесу.

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

Стек технологій тестувальника:
У кожного інженера по QA є свій унікальний досвід і власний стек технологій - набір інструментів, які він використовує в роботі, включаючи мови програмування, СУБД та інше.
Перелічимо найбільш поширені варіанти:
Мови розмітки і програмування:
    HTML / CSS
    Python
    SQL
    Java / JavaScript
фреймворки:
    Selenium
    Allure
Системи автоматизації:
    Jenkins
ПО для управління проектами:
    Jira
    Redmine
Бібліотеки модульного тестування:
    Nose
    SimpleTest
    Jest
    Jasmine
    Chai
    JUnit
    Nunit
    Boost Test
    Watir
Сервери, для запуску легких оболонок:
    Selenoid
    Docker
Це приблизний список: важливо розуміти, що в кожному проекті буде унікальна комбінація стека технологій, що відповідає індивідуальним вимогам. Який-небудь веб-проект може працювати, наприклад, з таким стеком: Java + Html elements + Selenoid + Allure + Jenkins + Readmine.

Додати коментар


Захисний код
Оновити

Якщо ви помітили помилку, то виділіть фрагмент тексту та натисніть Ctrl+Enter