
- •Місце тестування у життєвому циклі програмних продуктів
- •Жц розробки пз із завданнями і діями для процесу тестування
- •Визначте процеси досягнення надійності на жц
- •Задачі процесу тестування
- •Моделі якості пз
- •Визначте характеристики якості пс і їхнє призначення
- •Основні цілі й завдання системи керування якістю.
- •Які методи визначають показники якості?
- •Визначте метрики програмного продукту і їхні складові.
- •Методи контролю якості
- •Методи забезпечення якості
- •Поняття тестування
- •Основні задачі процесу тестування
- •Рівні тестування
- •Види тестування
- •Поняття тестів та тестового покриття
- •Перевірка на моделях
- •Помилки в програмах
- •Завдання і цілі процесу верифікації
- •Забезпечення якості
- •Метрики по забезпеченню якості
- •Метрики якості
- •Метрики програмного продукту
- •Метрики використання
- •Поняття якості пз
- •Рівні подання моделі якості пз
- •Що таке сертифікація програмного продукту
- •Процес верифікації
- •Процес валідації
- •Підхід до валідації сценарію вимог
- •Верифікація об’єктних моделей
- •Процес тестування за життєвим циклом
- •Поняття тесту
- •Тестові артефакти
- •Тест план
- •Тестовий випадок (Test Case)
- •Тест дизайн
- •Важливість і пріоритет дефекту
- •Градація серйозності дефектів
- •Вимоги до кількості відкритих багів
- •Помилки при написанні баг репортів
- •Техніка, що базується на інтуїції і досвіді інженера (Based on the software engineer’s intuition and experience)
- •Техніка, що базується на специфікації (Specification-based techniques)
- •Техніка, орієнтована на код (Code-based techniques)
- •Тестування, орієнтоване на дефекти (Fault-based techniques)
- •Техніки, що базуються на умовах використання
- •Техніки, що базуються на природі додатку
- •Функціональні види тестування
- •Нефункціональні види тестування
Поняття тестування
Тестування — це одна з технік контролю якості, що включає в себе
Планування робіт (Test Management)
Проектування тестів (Test Design)
Виконання тестування (Test Execution)
Аналіз отриманих результатів (Test Analysis).
Верифікація (Verification) — це процес оцінки системи або її компонентів з метою визначити чи задовольняють результати поточного етапу розробки умовам, сформованим на початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки проекту, визначені на початку поточної фази. Валідація (Validation) — це визначення відповідності розроблюваного програмного забезпечення між очікуваннями і потребами користувача, вимогам до системи.
План Тестування (Test Plan) — це документ, що описує весь обсяг робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн (Test Design) — це етап процесу тестування програмного забезпечення, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріями якості та цілями тестування.
Тестовий випадок (Test Case) — це документ, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації тестованої функції або її частини.
Баг/Дефект Репорт (Bug Report) — це документ, що описує ситуацію або послідовність дій (Steps), що призвела до некоректної роботи об'єкта тестування (Misbehavior), із зазначенням причин та очікуваного результату (Expected Result).
Тестове Покриття (Test Coverage) — це одна з метрик оцінки якості тестування, що представляє із себе щільність покриття тестами вимог або коду, що виконується.
Деталізація Тест Кейсів (Test Case Specification) — це рівень деталізації опису тестових кроків і необхідного результату, при якому забезпечується розумне співвідношення часу проходження до тестового покриття.
Час Проходження Тест Кейса (Test Case Pass Time) — це час від початку проходження кроків тест кейса до отримання результату тесту.
Основні задачі процесу тестування
Не согласен с приоритетами в целом, но соглашусь с некоторыми выводами в разрезе задач автоматизации тестирования ПО. Постараюсь кратко, но не обещаю: 1. Выявление ошибок не есть цель тестирования ПО. 2. Основной задачей тестирования ПО является получение информации о статусе готовности заявленной функциональности системы или приложения. 3. Задача получения статуса готовности обычно реализуется как проверка сценариев использования системы в валидных и невалидных условиях использования, которые формируются наборами входных данных и состояний, операций или пеолучаемых тестируемым функционалом данных и набором выходных данных и состояний системы. 4. Выявленные ошибки это побочный результат отработки задачи тестирования ПО, так как напрямую не являются нужной и полезной Заказчику тестирования информацией. 5. Количество найденных в процессе тестирования ошибок никак не характеризует уровень качества конечного продукта, а может выступать метрикой качества или зрелости самого процесса разработки ПО. 6. Количество найденных в процессе тестирования ошибок никак не характеризует целесообразность затрат ресурсов на проведение тестирования, так как напрямую зависит в основном от состояния продукта на момент начала тестирования и в меньшей степени от степени подготовленности/спланированности тестирования.
тестировщик ищет баги в программе для достижения некоторых целей. Вот список главных целей тестирования (на мой взгляд): 1. получить адекватную и актуальную информацию о состоянии проекта (что и в каком объеме реализовано) 2. определить степень готовности продукта к выпуску 3. снизить риски финансовых и не финансовых потерь (как заказчика, так и исполнителя) Этих целей невозможно достичь без тестирования программы! Главная задача тестировщика - найти баг! Для этого он анализирует документацию, изучает программу, применяет множество персональных навыков и различных методологий. В результате этого рождается" тест. Прогон теста может закончиться обнаружением дефекта или нет. Но главная задача теста - выявить возможный дефект. Однако, даже если тесты определят отсутствие дефектов, это не означает, что они бесполезны или что тестировщик зря потратил время. Нет! Тестирование - это моделирование. Тестировщик предполагает наличие дефекта, моделирует ситуацию в которой этот дефект может быть выявлен, проводит тест в соответствии с моделью, выявляет дефект (подтверждает свое предположение) или функциональность срабатывает правильно (предположение о наличие дефекта оказывается ложным). Результаты работы тестировщика являются исходными данными для определения степени достижения целей: 1. получить адекватную и актуальную информацию о состоянии проекта (что и в каком объеме реализовано) - сопоставляем данные traceability matrix: требование - тест кейс - результат теста - баг 2. определить степень готовности продукта к выпуску - показатели defect tracking system характеризуют степень готовности 3. снизить риски финансовых и не финансовых потерь (как заказчика, так и исполнителя) - гипотетическая цель, достигается через нахождения максимально возможного количества дефектов и не соответствий программы