
- •Що таке тестування?
- •Техніки, що базуються на специфікаціях.
- •Альфа та бета тестуваня.
- •Техніки на основі скінченного автомату.
- •Стратегія тестування.
- •Дефекти, типи дефектів.
- •Тестування на основі формальних специфікацій.
- •Випадкове тестування.
- •Тестування, орієнтоване на дефекти.
- •Тестування мутацій.
- •Оракул. Проблема оракула.
- •Збої та відмови.
- •Тестування продуктивності.
- •Стрес-тести
- •Системне тестування.
- •Методології покращення якості.
- •Вимірювання, пов’язані з тестуванням.
- •Випадкове тестування.
- •Техніки, орієнтовані на код.
- •Відстеження та видалення дефектів.
- •Типи дефектів та їх класифікація.
- •Дослідне тестування.
- •Тестування конфігурації.
- •Модульне тестування.
- •Тестування зручності використання (usability).
- •Звіти по помилках.
- •Метрики дефектів.
- •Тестування графічного інтерфейсу користувача.
- •Метрики динаміки знаходження дефектів.
- •Розробка, керована тестуванням (Test-driven development).
- •Виконання тестів.
- •Модель процесу тестування.
- •Управління тестуванням.
- •Інструменти тестування.
- •Метрики покриття.
- •Статистичне тестування.
- •Класифікація інструментів тестування.
- •Спеціалізоване тестування.
- •Критерії завершення тестування.
- •Планування тестування.
- •Кто будет тестировать?
- •Какие компоненты надо тестировать?
- •Створення тестів (test-cаse).
- •Засоби (середовища) тестування.
- •Критерії вибору тестів.
- •Проведення тестування.
- •Порівняльне тестування.
- •Ефективність проведення тестування.
- •Функціональне тестування.
- •Тестування Web-застосувань.
- •Тестування та визначення дефектів.
- •Метрики підрахунку дефектів.
- •Проблеми оракула.
- •Обмеження при проведенні тестування.
- •Тести, що базуються на блок-схемі.
- •Тестування інсталяцій.
- •Зв’язок тестування з іншими видами діяльності по розробці.
- •Метод білої скриньки.
- •Рівні тестування (послідовність).
- •2. Уровни тестирования (Test Levels)
- •2.1.1 Модульное тестирование (Unit testing)
- •2.1.2 Интеграционное тестирование (Integration testing)
- •2.1.3 Системное тестирование (System testing)
- •Вимірювання, що базуються на концепції функціонального розміру.
- •Метод чорної скриньки.
- •Цілі тестування.
- •Метод сірої скриньки.
- •Регресійне тестування.
- •Інтеграційне тестування.
- •Тестування, що базується на досвіді та інтуїції.
- •Порівняння методів чорної та білої скриньки.
- •Аналіз граничних значень.
- •Основи тестування.
- •Техніки, що базуються на аналізі коду.
- •Порівняння збоїв та відмов.
Основи тестування.
• Тестування - діяльність, що здійснюється для оцінки якості продукції, так і для його покращення, шляхом виявлення дефектів і проблем.
• Тестування складається з динамічної верифікації поведінки програм за обмеженим набором тест-кейсів, відповідним чином вибраних із нескінченної предметної області (галузі) для очікуваної поведінки.
• Динамічний: Цей термін означає, що тестування завжди передбачає виконання програми на вході. Термін "вхідні дані" буде підтримуватися за звичаями, мається на увазі що його значення також включає в себе певний стан входу, в тих випадках, коли це необхідно.
• Кінцевий: Навіть в простих програм, так багато тест-кейсів теоретично можливих, що виснажливе тестування може займати декілька місяців або років для виконання.
• Вибір: багато запропоновані методи тестування істотно відрізняються в тому, як вони обирають набір тестів, а також програмні інженери повинні знати, що різні критерії відбору можуть дати зовсім різні ступені ефективності. Як визначити найбільш відповідний критерій відбору.
• Очікування: Це повинно бути можливим, хоча і не завжди легко, щоб вирішити, чи є спостережені результати виконання програми бажаними чи ні, в іншому випадку зусилля витрачені на тестування будуть марними. Спостережена поведінка може бути перевірена на очікування користувачів (часто називають тестування для перевірки (валідації)), на специфікацію (тестування для перевірки), або, нарешті, на очікувану поведінки при внесенні неявних вимог або розумних очікувань.
• Ключові моменти:
• Вид тестування програмного забезпечення розвивається в більш конструктивному напрямку.
• Тестування більше не розглядається як діяльність, яка починається тільки після завершення фази кодування для виявлення збоїв.
• Тестування програмного забезпечення в даний час розглядається як діяльність, яка повинна охоплювати весь розвиток і підтримку процесу, і сама по собі є важливою частиною фактичного конструювання продукту.
Техніки, що базуються на аналізі коду.
Техники, ориентированные на код (Code-based techniques)
3.3.1 Тесты, базирующиеся на блок-схеме (Control-flow-based criteria) Набор тестов строится исходя из покрытия всех условий и решений блок-схемы. В какой-то степени напоминает тесты на основе конечного автомата. Отличие – в источнике набора тестов.
Максимальная отдача от тестов на основе блок-схемы получается когда тесты покрывают различные пути блок-схемы – по-сути, сценарии потоков работ (поведения) тестируемой системы. Адекватность таких тестов оценивается как процент покрытия всех возможных путей блок-схемы.
3.3.2 Тесты на основе потоков данных (Data-flow-based criteria) В данных тестах отслеживается полный жизненный цикл величин (переменных) – с момента рождения (определения), на всем протяжении использования, вплоть до уничтожения (неопределенности). В реальной практике используются нестрогое тестирование такого вида, ориентированное, например, только на проверку задания начальных значений всех переменных или всех вхождений переменных в код, с точки зрения их использования.
3.3.3 Ссылочные модели для тестирования, ориентированного на код (Reference models for code-based testing – flowgraph, call graph) Является не столько техникой тестирования, сколько контролем структуры программы, представленной в виде дерева вызовов (например, sequence-диаграммы, определенной в нотации UML и построенной на основе анализа кода).