Сержантов Антон, Ведущий программист, JaNet systems LLC Москва, 2010 г. Тестирования программного обеспечения
Тестирование программного обеспечения Что такое тестирование, основные понятия. Программные ошибки, документирование и анализ Разновидности тестирования и их роль в процессе разработки ПО Тест-план. Для чего нужен тест-план, какие тесты должен включать? Анализ ПО. Приоритеты тестирования.
Что такое тестирование? Основные понятия Заблуждения при тестировании: –Нельзя полностью протестировать продукт Невозможно проверить реакцию программы на каждую комбинацию входных данных Невозможно проверить все способы редактирования данных Невозможно проверить реакцию программы на ввод данных в каждый момент ее работы (окружение) Невозможно проверить каждую возможность выполнения команд программы Невозможно выявить все ошибки проектирования –Тестирование – проверка правильности программы? Невозможно проверить, что программа работает правильно
Что такое тестирование? Основные понятия Цель тестирования : –Программу тестируют для того, чтобы найти в ней ошибки –Ошибки ищут для того, чтобы их исправить –Повышение надежности программы как основной составляющей ее качества –Повышение качества программы : Качество – точное соответствие программы спецификации клиента? Качество программы определятся возможностями, благодаря которым она понравиться пользователю, а также недостатками, которые вынуждают его приобрести другую программу
Программные ошибки, документирование и анализ Что является ошибкой в программе: –Расхождение между программой и спецификацией –Программа не делает того, чего пользователь от нее вполне обоснованно ожидает
Программные ошибки, документирование и анализ Категории программных ошибок: –Ошибки пользовательского интерфейса Ошибки функционала Взаимодействие программы с пользователем Организация программы Пропущенные команды Производительность Выходные данные –Обработка ошибок –Алгоритмический ошибки (вычисления, потоки, гонки, перегрузки) –Контроль версий –Документация
Программные ошибки, документирование и анализ
Каким должен быть отчет об ошибке: –Простота –Понятность –Воспроизводимость –Беспристрастность
Программные ошибки, документирование и анализ Анализ воспроизводимой ошибки: –Выявить все наиболее серьезные последствия проблемы –Найти простейший и кратчайший путь воспроизведения ошибки –Найти альтернативные действия, приводящие к такому же результату –Выявить связанные проблемы
Разновидности тестирования и их роль в процессе разработки ПО Этапы разработки ПО: –Планирование Анализ требований (3%) Спецификация (3%) –Проектирование (5%) –Кодирование и написание документации (7%) –Тестирование и исправление ошибок (15%) –Поддержка и сопровождение (67%) Чем раньше найти и исправить ошибку, тем дешевле это обойдется!
Разновидности тестирования и их роль в процессе разработки ПО Тестирование на этапе планирования: –Что тестируется: Идеи –Кто тестирует: Отдел маркетинга Руководители проекта Аналитики Архитекторы Специалисты по анализу человеческого фактора
Разновидности тестирования и их роль в процессе разработки ПО Тестирование на этапе планирования: –Основные вопросы: Адекватны ли требования? Полны ли они? Совместимы ли требования между собой? Выполнимы ли? Разумны ли они? –Сравнительный анализ существующих продуктов –Дискуссионные группы
Разновидности тестирования и их роль в процессе разработки ПО Тестирование на этапе проектирования: –Что тестируется: Идеи, более формализованы Проектная документация –Кто тестирует: Аналитики Архитекторы (в основном решение проблем)
Разновидности тестирования и их роль в процессе разработки ПО Тестирование на этапе проектирования: –Основные вопросы: Действительно ли проект хорош? Соответствует ли проект требованиям? Полон ли проект? Достаточно ли он реалистичен? Хорошо ли описана (продумана, спроектирована) в проекте подсистема обработки ошибок?! –Совещание аналитиков : Обзорное совещание Инспекционное совещание Рецензионное совещание
Разновидности тестирования и их роль в процессе разработки ПО Разновидности тестирования: Тестирование «Стеклянного ящика»: –Преимущества: Направленность тестирования Полный охват кода Управление потоком Отслеживание целостности данных –Структурное тестирование: Тестирование программных путей, критерии охвата –Модульное тестирование, нисходящее и восходящее тестирование –Статическое тестирование и динамическое –Псевдоотладка и мутационное тестирование –Анализ производительности –Регрессионное тестирование
Разновидности тестирования и их роль в процессе разработки ПО Разновидности тестирования: Тестирование «Черного ящика»: –Приемочное тестирование –Функциональное тестирование: Сверка со спецификацией Граничные условия Производительность Переходы между режимами Эксплуатация в реальном режиме Нагрузочное тестирование (максимальной объем входных данных, многозадачность, многопользовательский режим) Обработка ошибок Защита Совместимость и преобразование форматов Эффектные тесты
Разновидности тестирования и их роль в процессе разработки ПО Разновидности тестирования: Тестирование «Черного ящика»: –Системное тестирование: Аппаратные конфигурации –Тип ОС –Формат дисков –Клавиатура –Установка –Интерфейс Установка и обслуживание
Тест-план. Для чего нужен тест-план, какие тесты должен включать? Для чего нужен тест-план? Организация тестирования –Обеспечить полноту охвата продукта –Избежать лишних повторений и не забыть ничего важного –Повышение эффективности тестирования (сходные тесты, сокращение количества тестов без потери охвата тестирования) Организация сотрудников –Совместное обдумывание стратегии тестирования –Обсуждение объема тестирования –Обсуждение глубины тестирования и календарного плана работ
Тест-план. Для чего нужен тест-план, какие тесты должен включать? Для чего нужен тест-план? Представляет собой удобную структуру для планирования и управления тестирование –Оценка ресурсов –Организация –Координирование –Выявление недостатков тест-плана
Анализ ПО. Приоритеты тестирования. Более тщательным образом должны быть протестированы те части и документы ПО, с которыми пользователь будет иметь дело в первую очередь! –Дистрибутив –Первый запуск, начало работы, Tutorials, документация, краткий обзор, видео-презентация, примеры использования –Интерфейс, внешний дизайн «Кого будет интересовать, что программный код безупречен, если какая-то часть интерфейса вызывает у пользователей затруднения, путает их, ведет к ошибкам, раздражает или является недостаточно гибкой и функциональной – не делает того, что, по мнению пользователей, она обязательно должна делать». –Основной функционал, система обработок ошибок, обновление –Функционал
ООО «ДжаНет системс», ИНН , Москва, Петроверигский пер., д , стр. 8 Тел.: +7 (495) ,