Тестирование ПО Подходы и практика 22 мая 2008 г. 4 курс Технологии программирования.

Презентация:



Advertisements
Похожие презентации
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Лекции 8. Методология Microsoft Solutions Framework.
Advertisements

Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 7. Прохождение фазы стабилизации в каждой.
Жизненный цикл программного обеспечения Лекция 4.
Жизненный цикл программного обеспечения Подготовил студент 1 курса Лось Павел.
Контроль качества по SWEBOK Данилов Евгений
Цикл жизни ПО Методологии разработки 8 октября 2008 г. 4 курс Технологии программирования.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 4. Прохождение фазы выработки концепции в.
Testschool Тестирование ПО: Модели разработки ПО. Уровни и типы тестирования. Воронеж, 2012 год.
Тестирование Обеспечение качества. Тема 7 тестирование2 Аттестация и верификация Обзоры Инспекционные проверки Сквозной контроль.
Кандидат технических наук, доцент Грекул Владимир Иванович Учебный курс Проектирование информационных систем Лекция 9.
Виды и методы тестирования на разных стадиях разработки ПО.
Методология проектирования RAD МДК Раздел 1.
Этапы решения задач на компьютерах Постановка задачи Формальное построение модели задачи Формальное построение модели задачи Построение математической.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
2 Основным понятием программной инженерии является понятие жизненного цикла ПО. Жизненный цикл ПО (software lifecycle) – это период времени, который начинается.
Разработка программного обеспечения (Software Engineering) Часть 1. Введение.
Количественное Управление Надежность плана Выполнение процесса Завершенность поставок Сроки поставки Неисправленные дефекты ( на момент поставки Заказчику)
Организация процесса тестирования в Agile команде с помощью квадрантов тестирования.
Дисциплина «Технология разработки программного обеспечения» Тема 1 « Основы разработки Тема 1 « Основы разработки программного продукта » программного.
Транксрипт:

Тестирование ПО Подходы и практика 22 мая 2008 г. 4 курс Технологии программирования

2 Тестирование (def) Тестирование – деятельность, выполняемая для оценки и улучшения качества программного обеспечения. Эта деятельность обычно базируется на обнаружении дефектов и проблем в программных системах.

3 Качество ПО (def) «Достижение отличного уровня пригодности к использованию» - Watts Hamphrey, автор CMM. «Степень соответствия присущих характеристик требованиям» - ISO Приемлемое качество: компромисс между заказчиком и исполнителем в отношении характеристик продукта, создаваемого исполнителем в интересах решения задач заказчика с учетом других ограничений проекта.

4 Доказательства правильности 1.Формальный подход. Формальное доказательство правильности – вывод формул при помощи формальных процедур из исходных аксиом. 2.Интерпретационный подход. Экспериментальная проверка. Подстановка данных и интерпретация результатов.

5 Сущность тестирования Тестирование программных систем состоит из динамической верификации поведения программ на конечном (ограниченном) наборе тестов, выбранных соответствующим образом из обычно выполняемых действий прикладной области и обеспечивающих проверку соответствия ожидаемому поведению системы.

6 Аспекты определения Динамичность. Выполнение программы с заданными входными данными. Конечность. Невозможно перебрать все варианты входных данных. Выбор. Умение задавать вопросы системе. Что проверяем – то и находим. Ожидания. Какое поведение приемлемо, а какое – ошибочно.

7 Принципиальная ограниченность Тестирование программы может использоваться только для демонстрации наличия дефектов, но никогда не покажет их отсутствие. (Фальсификация, а не верификация.)

8 Терминология 1.Отладка (debug, debugging) – процесс поиска, локализации и исправления ошибок в программе. 2.Тестирование обеспечивает выявление (констатацию наличия) фактов расхождений с требованиями (ошибок). 3.Сбои и дефекты. Дефект или недостаток – это причина возникновения нежелательного поведения системы. Само это поведение называется сбоем или ошибкой.

9 Уровни тестирования Над чем проводятся тесты: 1.Модульное тестирование. Тестирование отельного элемента системы. ( Подробное описание - стандарт IEEE Standard for Software Unit Testing) 2.Интеграционное тестирование. Проверка взаимодействия между модулями. 3.Системное тестирование. Безопасность, надежность, скорость, точность, и т.п. Интерфейсы к внешним приложениям, ОС, аппаратуре.

10 Цели тестирования 1.Приёмочное тестирование. Проверка поведения системы на предмет удовлетворения требований заказчика. 2.Установочное тестирование. Проверка процедуры инсталляции системы в целевом окружении. 3.Альфа- и бета-тестирование. Внутреннее (альфа) и внешнее (с привлечением отобранных пользователей) пробное использование. 4.Функциональные тесты. Проверка соответствия системы предъявляемым к ней требованиям, описанным на уровне спецификации поведенческих характеристик.

11 Цели тестирования 5.Достижение и оценка надежности. Помогая идентифицировать причины сбоев, тестирование подразумевает и повышение надежности программных систем. 6.Регрессионное тестирование. Повторное выборочное тестирование системы или компонент для проверки сделанных модификаций не должно приводить к непредусмотренным эффектам. 7.Тестирование производительности. Цель - достижение реальных (достижимых) возможностей производительности. 8.Нагрузочное тестирование (Stress testing). Цель – выявить поведение системы при пиковой (стрессовой) нагрузке.

12 Цели тестирования 9.Сравнительное тестирование. Единичный набор тестов, позволяющих сравнить две версии системы. 10.Восстановительные тесты. Цель – проверка возможностей рестарта системы в случае непредусмотренной катастрофы. 11.Конфигурационное тестирование. Проверка поведения и работоспособности системы в различных конфигурациях (в терминах «ролей» пользователей). 12.Тестирование удобства и простоты использования (Usability testing). Легкость освоения системы пользователем, решения им своих задач, качество защиты от ошибок пользователя.

13 Методы тестирования ПоказателиРучноеАвтоматизированное Задание входных значений Гибкость в задании данных. Входные значения строго заданы. Проверка результата Гибкая, нечеткая оценка. Строгая. Сравнение с эталоном. Повторяе- мость Низкая. Человеческий фактор. Высокая. НадежностьНизкая. Усталость.Высокая, возможны длинные циклы. Чувствитель- ность Низкая.Высокая. Скорость тестового набора Низкая.Регулируемая.

14 Техники тестирования I.Базирующиеся на интуиции и опыте инженера. 1.Специализированное тестирование (Ad hoc testing). Тесты основываются на опыте, интуиции и знаниях инженера, рассматривающего проблему с точки зрения имевшихся ранее аналогий.

15 Техники тестирования I.Базирующиеся на интуиции и опыте инженера. 2.Исследовательские тесты. Одновременное обучение, проектирование теста и его исполнение. Использует знания инженера, формируемых на основе поведения тестируемого продукта в процессе проведения тестирования, степени знакомства с приложением, платформой, типами возможных сбоев и дефектов, и т.п.

16 Техники тестирования II.Базирующиеся на спецификациях. 1.Эквивалентное разделение. 2.Анализ граничных значений. 3.Таблицы принятия решений. 4.Конечные автоматы. 5.Формальные спецификации. 6.Случайное тестирование.

17 Техники тестирования III.Ориентированные на код. 1.Базирующиеся на блок-схеме. Проверка покрытия всех маршрутов на блок-схеме. 2.На основе потоков данных. Отслеживается полный жизненный цикл переменных внутри программы. 3.Ссылочные модели (дерево вызовов).

18 Техники тестирования IV.Ориентированные на дефекты. 1.Предположение ошибок. Ищем наиболее вероятные или разрушительные ошибки. Например, на основе анализа рисков. 2.Тестирование мутаций. Мутация – небольшое изменение тестируемой программы, произошедшее за счет частных синтаксических изменений кода (в частности, рефакторинга).

19 Техники тестирования V.Ориентированные на условия использования. 1.Операционный профиль. Тестирование проводится в таком тестовом окружении, которое максимально приближено к реальным условиям работы системы. 2.Базирующиеся на надежности инженерного процесса. Базируются на условиях разработки системы.

20 Процесс тестирования: соображения 1.Программирование без персоналий. Все заинтересованы в выпуске качественного продукта. Никто не скрывает ошибок. 2.Руководства по тестированию. Все знают, что и как делается. Есть программы, планы, известны подходы и методики. 3.Управление процессом тестирования. Известны люди, инструменты, есть регламент работ и значения количественных оценок.

21 Процесс тестирования: соображения 4.Документирование тестов и рабочего продукта. Стандарт IEEE Standard for Software Test Documentation Документы: План тестирования. Спецификация процедуры тестирования. Спецификация тестов. Лог тестов.

22 Процесс тестирования: соображения 5.Внутренние и независимые команды тестирования. Лучше иметь обе. 6.Оценка стоимости и усилий. Выбор техники, концепции и модели тестирования в зависимости от бюджета и целей тестирования. 7.Окончание тестирования. Достижение системой приемлемого качества. 8.Повторное использование. Шаблоны тестов.

23 Тестирование: состав работ 1.Планирование. 2.Генерация сценариев тестирования. 3.Разработка окружения. 4.Выполнение тестов. 5.Регистрация результатов (журнал тестирования). 6.Анализ результатов. 7.Отчет.

24 1. Планирование Ключевые аспекты планирования: координация персонала. управление оборудованием и другими средствами, необходимыми для организации тестирования. планирование обработки нежелательных результатов.

25 2. Сценарии тестирования На этом этапе выбираем уровни и техники тестирования, конфигурации и версии системы и описываем ожидаемые результаты тестирования. Здесь же определяем критерии прекращения тестов.

26 3. Тестовое окружение Перечисляем средства, необходимые для тестирования: Аппаратные средства. Системное программное окружение. Специализированное ПО для прогона и контроля тестов. Средства регистрации и документирования.

27 4. Выполнение тестов должны фиксироваться все работы и результаты процесса тестирования. форма журналирования таких работ и их результатов должна быть такой, чтобы соответствующее содержание было понятно, однозначно интрепретируемо и повторяемо другими лицами. тестирование должно проводиться в соответствии с заданными и документированными процедурами. тестирование должно производиться над однозначно идентифицируемой версией и конфигурацией программной системы.

28 5. Регистрация результатов 1. Когда проводится тест. 2. Какой тест. 3. Кем проводится. 4. Для какой конфигурации программной системы. 5. Результат теста. 6. Сбой во время теста. Последовательность шагов, приведших к сбою. Уровень серьезности дефекта.

29 6. Анализ результатов Сбои, обнаруженные в процессе тестирования, чаще всего порождаются дефектами и ошибками, присутствующими в тестируемой программной системе. Анализ заключается в определении типов ошибок, ставших причиной этих дефектов (например, плохо сформулированные требования, некорректный дизайн, утечки памяти и т.д.)

30 7. Отчет о тестировании Зависит от цели тестирования. В отчете делается заключение об успешности или неуспешности тестирования в целом. Отчёты по тестам могут являться входом для процесса управления изменениями и генерации запросов на изменения (change request) в рамках процессов конфигурационного управления.

31 Методологии разработки и тестирования 1.Каскадная (Водопад). 2.Итеративная/Спиральная. 3.Rational Unified Process (RUP). 4.Microsoft Solution Framework (MSF). 5.Rapid Application Development (RAD). 6.Гибкие методологии (Agile Dev).

32 Каскадная модель

33 Итеративная модель Каскадная модель, повторяемая несколько раз.

34 RUP 1.Планирование тестов. 2.Дизайн тестов. 3.Разработка тестов. 4.Выполнение тестов. 5.Оценка тестов.

35 MSF Фаза стабилизации. Вехи: –Точка конвергенции. –Точка достижения нуля. –Готовность версии-кандидата. –Контрольное тестирование завершено. –Тестирование приемлемости для потребителей завершено. –Пилотное внедрение завершено. –Готовность решения утверждена.

36 MSF Фаза стабилизации. Результаты: Окончательный продукт (golden release). Документация выпуска (release notes). Материалы поддержки решения. Результаты и инструментарий тестирования. Исходный и исполнимый код приложений. Проектная документация. Анализ пройденной фазы (milestone review).

37 MSF: Основные задачи проектной группы. Ролевой кластер Фокус Управление продуктом Исполнение коммуникационного плана; планирование премьеры продукта. Управление программой Мониторинг проекта; приоритезация ошибок. РазработкаУстранение ошибок; оптимизация программного кода. Тестирование Тестирование; сообщение об ошибках и их статусе; тестирование конфигурации. Управление выпуском Развертывание и поддержка пилотного внедрения; планирование внедрения; обучение персонала сопровождения.

38 RAD Быстрое прототипирование. Тестирование и разработка не разделяются. Регрессионное тестирование?

39 Гибкие методы разработки 1.Разработка через тестирование (Test Driven Development, TDD). 2.Рефакторинг.

40 Разработка через тестирование Разработка через тестирование - процесс разработки программного обеспечения, который предусматривает написание и автоматизацию модульных тестов еще до момента написания соответствующих классов или модулей.

41 Рефакторинг 1.Когда в программу нужно добавить некую функциональность, но её код не структурирован удобным образом для добавления этой функциональности, то сначала стоит произвести рефакторинг программы, чтобы упростить внесение изменений, и только после этого вносить эти изменения. 2.Перед тем, как начать рефакторинг, убедитесь, что у Вас есть основательный комплект тестов. Тесты должны быть самопроверяющимися. 3.Ритм рефакторинга: тестирование, небольшое изменение и т.д.

42 ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ ЕСПД ГОСТ : –Объект испытаний. –Цель испытаний. –Требования к программе. –Требования к документации. –Средства и порядок испытаний. –Тестовые примеры.

43 Спасибо за внимание Конец лекции.