
- •Що таке тестування?
- •Техніки, що базуються на специфікаціях.
- •Альфа та бета тестуваня.
- •Техніки на основі скінченного автомату.
- •Стратегія тестування.
- •Дефекти, типи дефектів.
- •Тестування на основі формальних специфікацій.
- •Випадкове тестування.
- •Тестування, орієнтоване на дефекти.
- •Тестування мутацій.
- •Оракул. Проблема оракула.
- •Збої та відмови.
- •Тестування продуктивності.
- •Стрес-тести
- •Системне тестування.
- •Методології покращення якості.
- •Вимірювання, пов’язані з тестуванням.
- •Випадкове тестування.
- •Техніки, орієнтовані на код.
- •Відстеження та видалення дефектів.
- •Типи дефектів та їх класифікація.
- •Дослідне тестування.
- •Тестування конфігурації.
- •Модульне тестування.
- •Тестування зручності використання (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)
- •Вимірювання, що базуються на концепції функціонального розміру.
- •Метод чорної скриньки.
- •Цілі тестування.
- •Метод сірої скриньки.
- •Регресійне тестування.
- •Інтеграційне тестування.
- •Тестування, що базується на досвіді та інтуїції.
- •Порівняння методів чорної та білої скриньки.
- •Аналіз граничних значень.
- •Основи тестування.
- •Техніки, що базуються на аналізі коду.
- •Порівняння збоїв та відмов.
Вимірювання, що базуються на концепції функціонального розміру.
Оценка функционального размера ИС производится на основании модели информационной системы и функциональных требований пользователей. Функциональный размер ИС задается набором из пяти элементов, каждый элемент которого представляет собой соответствующую функциональную единицу измерения. Функциональные единицы измерения:
Количество вариантов использования - C
Количество типов объектов - E
Количество свойств типов объектов - Т
Количество взаимодействий между типами объектов - I
Количество типов узлов - N
Функциональный размер обозначается - SIZE={C, E, T, I ,N}
Метод чорної скриньки.
Поведінка на вході/виході
Контрольний список із специфікації
Тестування очікуваної поведінки
Кінцеві автомати
Застосування
Застосовують на пізніх стадіях розробки
Підходить як для верифікації так і валідації
Сумісна з ОО програмуванням та повторним використанням
Критерій зупинки
Традиційний – на основі покриття
На основі використання
Цілі тестування.
Можно выделить следующие, наиболее распространенные и обоснованные цели (а, соответственно, виды) тестирования:
Приёмочное тестирование (Acceptance/qualification testing)Проверяет поведение системы на предмет удовлетворения требований заказчика. Это возможно в том случае, если заказчик берет на себя ответственность, связанную с проведением таких работ, как сторона “принимающая” программную систему, или специфицированы типовые задачи, успешная проверка (тестирование) которых позволяет говорить об удовлетворении требований заказчика. Такие тесты могу проводиться как с привлечением разработчиков системы, так и без них.
Установочное тестирование (Installation testing)Из названия следует, что данные тесты проводятся с целью проверки процедуры инсталляции системы в целевом окружении.
Альфа- и бета-тестирование (Alpha and beta testing)Перед тем, как выпускается программное обеспечение, как минимум, оно должно проходить стадии альфа (внутреннее пробное использование) и бета (пробное использование с привлечением отобранных внешних пользователей) версий. Отчеты об ошибках, поступающие от пользователей этих версий продукта, обрабатываются в соответствии с определенными процедурами,включающими подтверждающие тесты (любого уровня), проводимые специалистами группы разработки.
Данный вид тестирования не может быть заранее спланирован.
Функциональные тесты/тесты соответствия (Conformance testing/Functional testing/Correctness testing)Эти тесты могут называться по разному, однако, их суть проста – проверка соответствия системы, предъявляемым к ней требованиям, описанным на уровне спецификации поведенческих
характеристик.
Достижение и оценка надежности (Reliability achievement and evaluation)Помогая идентифицировать причины сбоев, тестирование подразумевает и повышение надежности программных систем. Случайно генерируемые сценарии тестирования могут применяться для статистической оценки надежности. Обе цели – повышение и оценка надежности – могут достигаться при использовании моделей повышения надежности.
Регрессионное тестирование (Regression testing)Определение успешности регрессионных тестов (IEEE 610-90 “Standard Glossary of Software Engineering Terminology”) гласит: “повторное выборочное тестирование системы или компонент для проверки сделанных модификаций не должно приводить к непредусмотренным эффектам”. На практике это означает, что если система успешно проходила тесты до внесения модификаций, она должна их проходит и после внесения таковых. Основная проблема регрессионного тестирования заключается в поиске компромисса между имеющимеся ресурсами и необходимостью проведения таких тестов по мере внесения каждого изменения. В определенной степени, задача состоит в том, чтобы определить критерии “масштабов” изменений, с достижением которых необходимо проводить регрессионные тесты.
Тестирование производительности (Performance testing)Специализированные тесты проверки удовлетворения специфических требований, предъявляемых к параметрам производительности. Существует особый подвид таких тестов, когда делается попутка достижения количественных пределов, обусловленных характеристиками самой системы и ее операционного окружения.
Конфигурационное тестирование (Configuration testing) В случаях, если программное обеспечение создается для использования различными пользователями (в терминах “ролей”), данный вид тестирования направлен на проверку поведения и работоспособности системы в различных конфигурациях.
Тестирование удобства и простоты использования (Usability testing)
Цель – проверить, насколько легко конечный пользователь системы может ее освоить, включая не только функциональную составляющую – саму систему, но и ее документацию; нас колько эффективно пользователь может выполнять задачи, автоматизация которых осуществляется с использованием данной системы; наконец, насколько хорошо система застрахована (с точки зрения
потенциальных сбоев) от ошибок пользователя.