Вводный курс Автор: Алексей Баранцев
Что такое тестирование? Характеристики качества и виды контроля качества Классификации тестирования по уровням по целям «чёрное и белое»
… не разработка … не анализ … не управление … не техписательство … не
предоставление отрицательной обратной связи
Quality Assurance Обеспечение качества Quality Control Контроль качества Тестирование
Процесс выполнения программы с намерением найти ошибки. [Г.Майерс. Надежность программного обеспечения. М:Мир, 1980] Процесс наблюдения за выполнением программы в специальных условиях и вынесения на этой основе оценки каких-либо ее аспектов. [ANSI/IEEE standard : Glossary of SE Terminology. NY:IEEE, 1987] Это не действие. Это интеллектуальная дисциплина, имеющая целью получение надежного программного обеспечения без излишних усилий на его проверку. [B. Beizer. Software Testing Techniques, Second Edition. NY:van Nostrand Reinhold, 1990] Техническое исследование программы для получения информации о ее качестве с точки зрения определенного круга заинтересованных лиц. [С. Kaner, 1999] Проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004]
Тестирование – это проверка соответствия программы требованиям, осуществляемая путём наблюдения за её работой в специальных, искусственно созданных ситуациях, выбранных определённым образом
Программа Информация о несоответствиях Требования
Тестирование – это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом SWEBOK, 2004
Тестирование – это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом SWEBOK, 2004
Тестирование – это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на ограниченном наборе тестов, выбранном определенным образом SWEBOK, 2004
Тестирование – это проверка соответствия программы требованиям, осуществляемая путём наблюдения за её работой в специальных, искусственно созданных ситуациях, выбранных определённым образом
Тест – это специальная, искусственно созданная ситуация, выбранная определённым образом, и описание того, какие наблюдения за работой программы нужно сделать для проверки её соответствия некоторому требованию
1. Управляет выполнением программы, создаёт искусственные ситуации 2. Наблюдает поведение программы и сравнивает наблюдаемое поведение с ожидаемым
1. Что подать на вход? стимулы 2. Что ожидается на выходе? реакции оракул
Программа
Пользовательский интерфейс (UI) Программный интерфейс (API) Сетевой протокол Файловая система Состояние окружения События
Стандарт ISO 9126 Функциональность Надёжность Практичность Эффективность Сопровождаемость Переносимость
Пригодность к использованию (suitability) Точность, правильность (accuracy) Способность к взаимодействию (interoperability) Соответствие стандартам и правилам (compliance) Защищенность (security)
Зрелость, завершенность (обратна к частоте отказов) (maturity) Устойчивость к отказам (fault tolerance) Способность к восстановлению работоспособности при отказах (recoverability)
Понятность (understandability) Удобство обучения (learnability) Работоспособность (operability) Привлекательность (attractiveness)
Временные характеристики (time behaviour) Использование ресурсов (resource utilisation)
Анализируемость (analyzability) Изменяемость, удобство внесения изменений (changeability) Риск возникновения неожиданных эффектов при внесении изменений (stability) Контролируемость, удобство проверки (testability)
Адаптируемость (adaptability) Устанавливаемость, удобство установки (installability) Способность к сосуществованию с другим ПО (coexistence) Удобство замены другого ПО данным (replaceability)
функциональности надёжности эффективности практичности сопровождаемости переносимости …
Модульное Интеграционное Системное
КИС Веб-приложение Клиентская часть Серверная часть JS library Сервер приложенийБаза данных Stored proc Stored proc JS func JS library JS func library class method
Модульное Интеграционное Системное функциональности надёжности эффективности практичности сопровождаемости мобильности
Тестирование – это проверка соответствия программы требованиям, осуществляемая путём наблюдения за её работой в специальных, искусственно созданных ситуациях, выбранных определённым образом
Полностью покрыты все … … входные данные … комбинации входных данных … последовательности комбинаций входных данных
Полностью покрыты все … … строки кода программы … ветви в коде программы … пути в коде программы
КИС Веб-приложение Клиентская часть Серверная часть JS library Сервер приложений База данных пакет library JS library library Веб-сервис Приложение База данных Чужое приложение