Слайд 2Тестирование программного обеспечения
Что такое тестирование, основные понятия.
Программные ошибки, документирование и анализ
Разновидности тестирования
и их роль в процессе разработки ПО
Тест-план. Для чего нужен тест-план, какие тесты должен включать?
Анализ ПО. Приоритеты тестирования.
Слайд 3Что такое тестирование?
Основные понятия
Заблуждения при тестировании:
Нельзя полностью протестировать продукт
Невозможно проверить реакцию
программы на каждую комбинацию входных данных
Невозможно проверить все способы редактирования данных
Невозможно проверить реакцию программы на ввод данных в каждый момент ее работы (окружение)
Невозможно проверить каждую возможность выполнения команд программы
Невозможно выявить все ошибки проектирования
Тестирование – проверка правильности программы?
Невозможно проверить, что программа работает правильно
Слайд 4Что такое тестирование?
Основные понятия
Цель тестирования:
Программу тестируют для того, чтобы найти в
ней ошибки
Ошибки ищут для того, чтобы их исправить
Повышение надежности программы как основной составляющей ее качества
Повышение качества программы:
Качество – точное соответствие программы спецификации клиента?
Качество программы определятся возможностями, благодаря которым она понравиться пользователю, а также недостатками, которые вынуждают его приобрести другую программу
Слайд 5Программные ошибки, документирование и анализ
Что является ошибкой в программе:
Расхождение между программой и
спецификацией
Программа не делает того, чего пользователь от нее вполне обоснованно ожидает
Слайд 6Программные ошибки, документирование и анализ
Категории программных ошибок:
Ошибки пользовательского интерфейса
Ошибки функционала
Взаимодействие программы с
пользователем
Организация программы
Пропущенные команды
Производительность
Выходные данные
Обработка ошибок
Алгоритмический ошибки (вычисления, потоки, гонки, перегрузки)
Контроль версий
Документация
Слайд 7Программные ошибки, документирование и анализ
Слайд 8Программные ошибки, документирование и анализ
Каким должен быть отчет об ошибке:
Простота
Понятность
Воспроизводимость
Беспристрастность
Слайд 9Программные ошибки, документирование и анализ
Анализ воспроизводимой ошибки:
Выявить все наиболее серьезные последствия проблемы
Найти
простейший и кратчайший путь воспроизведения ошибки
Найти альтернативные действия, приводящие к такому же результату
Выявить связанные проблемы
Слайд 10Разновидности тестирования и их роль в процессе разработки ПО
Этапы разработки ПО:
Планирование
Анализ требований
(3%)
Спецификация (3%)
Проектирование (5%)
Кодирование и написание документации (7%)
Тестирование и исправление ошибок (15%)
Поддержка и сопровождение (67%)
Чем раньше найти и исправить ошибку, тем дешевле это обойдется!
Слайд 11Разновидности тестирования и их роль в процессе разработки ПО
Тестирование на этапе планирования:
Что
тестируется:
Идеи
Кто тестирует:
Отдел маркетинга
Руководители проекта
Аналитики
Архитекторы
Специалисты по анализу человеческого фактора
Слайд 12Разновидности тестирования и их роль в процессе разработки ПО
Тестирование на этапе планирования:
Основные
вопросы:
Адекватны ли требования?
Полны ли они?
Совместимы ли требования между собой?
Выполнимы ли?
Разумны ли они?
Сравнительный анализ существующих продуктов
Дискуссионные группы
Слайд 13Разновидности тестирования и их роль в процессе разработки ПО
Тестирование на этапе проектирования:
Что
тестируется:
Идеи, более формализованы
Проектная документация
Кто тестирует:
Аналитики
Архитекторы (в основном решение проблем)
Слайд 14Разновидности тестирования и их роль в процессе разработки ПО
Тестирование на этапе проектирования:
Основные
вопросы:
Действительно ли проект хорош?
Соответствует ли проект требованиям?
Полон ли проект?
Достаточно ли он реалистичен?
Хорошо ли описана (продумана, спроектирована) в проекте подсистема обработки ошибок?!
Совещание аналитиков:
Обзорное совещание
Инспекционное совещание
Рецензионное совещание
Слайд 15Разновидности тестирования и их роль в процессе разработки ПО
Разновидности тестирования:
Тестирование «Стеклянного ящика»:
Преимущества:
Направленность
тестирования
Полный охват кода
Управление потоком
Отслеживание целостности данных
Структурное тестирование:
Тестирование программных путей, критерии охвата
Модульное тестирование, нисходящее и восходящее тестирование
Статическое тестирование и динамическое
Псевдоотладка и мутационное тестирование
Анализ производительности
Регрессионное тестирование
Слайд 16Разновидности тестирования и их роль в процессе разработки ПО
Разновидности тестирования:
Тестирование «Черного ящика»:
Приемочное
тестирование
Функциональное тестирование:
Сверка со спецификацией
Граничные условия
Производительность
Переходы между режимами
Эксплуатация в реальном режиме
Нагрузочное тестирование (максимальной объем входных данных, многозадачность, многопользовательский режим)
Обработка ошибок
Защита
Совместимость и преобразование форматов
Эффектные тесты
Слайд 17Разновидности тестирования и их роль в процессе разработки ПО
Разновидности тестирования:
Тестирование «Черного ящика»:
Системное
тестирование:
Аппаратные конфигурации
Тип ОС
Формат дисков
Клавиатура
Установка
Интерфейс
Установка и обслуживание
Слайд 18Тест-план. Для чего нужен тест-план, какие тесты должен включать?
Для чего нужен тест-план?
Организация
тестирования
Обеспечить полноту охвата продукта
Избежать лишних повторений и не забыть ничего важного
Повышение эффективности тестирования (сходные тесты, сокращение количества тестов без потери охвата тестирования)
Организация сотрудников
Совместное обдумывание стратегии тестирования
Обсуждение объема тестирования
Обсуждение глубины тестирования и календарного плана работ
Слайд 19Тест-план. Для чего нужен тест-план, какие тесты должен включать?
Для чего нужен тест-план?
Представляет
собой удобную структуру для планирования и управления тестирование
Оценка ресурсов
Организация
Координирование
Выявление недостатков тест-плана
Слайд 20Анализ ПО.
Приоритеты тестирования.
Более тщательным образом должны быть протестированы те части и
документы ПО, с которыми пользователь будет иметь дело в первую очередь!
Дистрибутив
Первый запуск, начало работы, Tutorials, документация, краткий обзор, видео-презентация, примеры использования
Интерфейс, внешний дизайн
«Кого будет интересовать, что программный код безупречен, если какая-то часть интерфейса вызывает у пользователей затруднения, путает их, ведет к ошибкам, раздражает или является недостаточно гибкой и функциональной – не делает того, что, по мнению пользователей, она обязательно должна делать».
Основной функционал, система обработок ошибок, обновление
Функционал