Введення в тестування програмного забезпечення

Життєвий цикл програмного забезпечення (SDLC – Software Development Life Cycle) – період часу, який починається з моменту прийняття рішення про необхідність створення програмного продукту і закінчується в момент його повного вилучення з експлуатації. Цей цикл – процес побудови і розвитку програмного забезпечення.

Цикл

Етап 1 – Планування (Planning). На цій фазі клієнт пояснює основні деталі і концепції проекту, оговорюється необхідний ресурс, час і бюджет, що необхідний для розробки.
Етап 2 – Аналіз вимог (Requirements analysis). Ця фаза розрахована для підготовки набору вимог. Потім йде етап узгодження вимог. Як результат ми маємо отримати узгоджений документ з вимогами.
Етап 3 – Дизайн і розробка (Design & Development). На цій фазі визначаються основні концепції дизайну програмного забезпечення. Після узгодження дизайну починається безпосередньо розроблення продукту.
Етап 4 – Впровадження (Implementation). Включає в себе програмування і отримання кінцевого продукту (бібліотеки, білди, документація).
Етап 5 – Тестування (Testing). На цій фазі проводиться перевірка на відповідність вимогам і підтвердження того, що продукт розроблений згідно з ними.
Етап 6 – Оцінка (Evaluation). На фазі оцінки (або пререлізу) продукт оцінюється замовником і вносяться останні уточнення.
Етап 7 – Реліз (Release). Заключна фаза розробки, враховуються уточнення, що зроблені замовником на фазі оцінки. Підготовка продукту в «коробці».
Етап 8 – Підтримка (Support). Фаза технічної підтримки продукту.

Тестування ПЗ (Software testing) – перевірка відповідності між реальною і очікуваною поведінкою програми.
Тестування – це процес дослідження ПЗ з метою виявлення помилок і перевірки якості.
У більш широкому сенсі: Тестування – це одна з технік контролю якості, що включає в себе активності з планування робіт (Test Management), проектування тестів (Test Design), виконання тестування (Test Execution) та аналізу отриманих результатів (Test Analysis).

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

Верифікація (Verification – узгодження) – це процес оцінки системи або її компонентів з метою визначення чи задовольняють результати поточного етапу розробки умовам, сформованим на початку цього етапу (чи виконуються наші цілі, терміни, завдання, по розробці проекту, визначені на початку поточної фази.)
Валідація (Validation – затвердження) – це визначення відповідності ПЗ очікуванням і потребам користувача, вимогам до системи.

Приклад:
Замовник хоче щось. Узгоджується ТЗ, з якого ви розумієте що повинні зробити “синій автомобіль”. Ви починаєте процес виробництва, і в процесі перевіряєте те, що виходить: Чи автомобіль це? Чи він синій? Це – верифікація.
А потім ви приходите до замовника і говорите – ось дивіться, вийшов синій автомобіль, приймаєте роботу? А він каже: «хлопці, ви не так зрозуміли, я хотів рожевий трактор, переробити швидко». Або навпаки каже: «так, це саме те що я хотів, швидше підписуйте акт здачі-приймання». Це – валідація.

Цілі і завдання процесу тестування
Основною метою процесу тестування – є доказ того, що результат розробки відповідає пред’явленим до нього вимогам.
Основна завданням тестування ПЗ: отримання інформації про статус готовності заявленої функціональності системи або програми.

Необхідні і достатні умови для проведення тестування
Необхідними умовами істинності твердження А називаються умови, без дотримання яких А не може бути істинним.
Достатніми називаються такі умови, за наявності (виконанні, дотриманні) яких твердження А є істинним.

Необхідні умови:
• Наявність об’єкта тестування, доступного для проведення випробувань.
• Наявність виконавця (ів) (людина або машина, або комбінація людина + машина)

Достатні умови:
• Наявність об’єкта тестування, доступного для проведення випробувань
• Наявність виконавця (ів) (людина або машина, або комбінація людина + машина)
• Наявність плану тестування
• Наявність тест кейсів / тестів
• Наявність звіту, що підтверджує виконання завдань і досягнення цілей, з тестування об’єкта

План Тестування (Test Plan) – це документ, що описує весь обсяг робіт з тестування, починаючи з опису об’єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх дозволу .

Тестовий випадок (Test Case) – це артефакт, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації функції, що тестується або її частини.
Основні атрибути Test Case:
1) ID (номер),
2) Name (ім’я),
3) Preconditions (умови і параметри),
4) Steps (кроки до відтворення),
5) Expected result (очікуваний результат),
6) Actual result (фактичний результат),
7) Postconditions (постумови)

Тест дизайн (Test Design) – це етап процесу тестування ПЗ, на якому проектуються і створюються тестові випадки (тест кейси), відповідно з визначеними раніше критеріями якості і цілями тестування.

Баг / Дефект Репорт (Bug Report) – це документ, що описує ситуацію або послідовність дій, що призвела до некоректної роботи об’єкта тестування, із зазначенням причин і очікуваного результату.

Тестове Покриття (Test Coverage) – це одна з метрик оцінки якості тестування, що представляє із себе щільність покриття тестами.

Специфікація Тест Кейсів (Test Case Specification) – це рівень деталізації опису тестових кроків і необхідного результату, при якому забезпечується розумне співвідношення часу проходження до тестового покриття

Час Проходження Тест Кейса (Test Case Pass Time) – це час від початку проходження кроків тест кейса до отримання результату тесту.

Наступна лекція

  1 коментар до “Введення в тестування програмного забезпечення

  1. qalearning
    9 Червня, 2015 at 11:04

    Зміст:

    1. Введення в тестування програмного забезпечення
    2. Особливості вимог програмного забезпечення. Методи тестування. Фази тестування. Класи еквівалентності.
    3. Види Тест Кейсiв. Стани Тест Кейсiв. Багтрекінгові системи. Серйозність і пріоритет дефекту. Життєвий цикл дефекту.
    4. Рівні тестування
    5. Види тестування ПО. Функціональне тестування (Functional Testing). Тестування безпеки (Security and Access Control Testing). Тестування взаємодії (Interoperability Testing)
    6. Нефункціональне тестування ПЗ
    7. Види тестування, пов’язані зі змінами. Кросбраузерність.
    8. Agile (Гнучка модель). Scrum. Selenium

We #StandWithUkraine.
Learn how you can help too!

#Stand­With­Ukraine

We don't know how long the war will last. But what we do know is that we can't stand aside and watch.

The fastest way you can help too is to support Ukraine financially. The National Bank of Ukraine (NBU) has opened a multi-currency account for that purpose. Learn more

This account accepts donations in US, Canadian and Australian dollars, euros, British pounds, Swiss francs, yuan and yen.

UA823000010000032302338301027

Also accepting cryptocurrency donations – the fastest way to help. Learn more

BTC – 357a3So9CbsNfBBgFYACGvxxS6tMaDoa1P

ETH, USDT (ERC-20) – 0x165CD37b4C644C2921454429E7F9358d18A45e14

Spread the word!