Тестирование программных средств Сафронов Сергей, 2009 год.

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



Advertisements
Похожие презентации
Реализация концепции построения и формирования отраслевой системы государственного учета, регистрации и мониторинга (ОСГУРМ) информационных ресурсов сферы.
Advertisements

Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Лекция 22 Лекция 22 Локальные, сетевые и распределенные базы данных. Архитектура «файл- сервер». Двух и трехуровневая архитектура «клиент-сервер». Модель.
Автоматизация тестирования Web-приложений 2007 г. Липский Павел Николаевич.
AJAX Выполнила: студентка группы ПИ-311 Газизова Влада.
Распределенная обработка информации Разработано: Е.Г. Лаврушиной.
Организация распределенных прикладных систем. Попытаемся ответить на вопросы Как устроены распределенные прикладные системы? Каковы наиболее важные их.
Лекция 23 Лекция 23 Схемы распределения данных и запросов. Обработка распределенных данных и запросов. Многопотоковые и многосерверные архитектуры. Типы.
1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Тестирование программных средств Сафронов Сергей, 2007 год.
КУРС «WEB-ДИЗАЙН». Что такое Web-страница? То, что мы видим в окне браузера, когда заходим на какой-либо сайт! Мы видим веб-страницу сайта – ее содержимое!
Рысаева Лиана и Сальманова Диана Ученицы 10 А класса.
Слайд 1 из 11 Преимущества торговых решений на платформе 1С: Предприятие 8.2 Заржецкий Александр Руководитель департамента автоматизации непродовольственн.
Портал тестирования НГУ Основные понятия Режим студента: прохождение теста.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
Опыт реализации отказоустойчивого сервера приложений и хранилища данных на базе СУБД ЛИНТЕР Михаил Ермаков, Дмитрий Мухоедов, РЕЛЭКС.
Веб 2.0 сайт для поддержки виртуального мира Студент: Наумов Василий, ПС-52 Научный руководитель: Танаков Андрей Игоревич.
WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
РЕЗУЛЬТАТЫ РАБОТЫ ПОДСИСТЕМЫ «ВЕДЕНИЯ». В процессе работы с подсистемой «Ведения», а также при ее завершении имеются достаточно широкие возможности по.
Транксрипт:

Тестирование программных средств Сафронов Сергей, 2009 год

Оглавление Распределенные приложения Распределенные приложения Плюсы и минусыПлюсы и минусы Тестирование распределенных приложений: Тестирование распределенных приложений: Тестирование клиентской частиТестирование клиентской части Тестирование серверной частиТестирование серверной части Тестирование сетиТестирование сети Тестирование связи клиент-серверТестирование связи клиент-сервер Тестирование Web-приложений Тестирование Web-приложений Основные проблемыОсновные проблемы Тестирование Java Тестирование Java Основные технические проблемыОсновные технические проблемы Стресс-тестирование Стресс-тестирование

Особенности тестирования распределенных приложений Большие затраты времени Большие затраты времени Требуются эксперты Требуются эксперты Отдельное тестирование клиентской и серверной частей Отдельное тестирование клиентской и серверной частей

Плюсы распределенных систем Высокая модульность Высокая модульность Высокая возможность повторного использования Высокая возможность повторного использования Наличие внутренних проверок на уровне баз данных Наличие внутренних проверок на уровне баз данных Возможность использования и интегрирования в систему ПО сторонних производителей Возможность использования и интегрирования в систему ПО сторонних производителей Возможность балансировки нагрузки клиент/сервер Возможность балансировки нагрузки клиент/сервер

Минусы распределенных систем Огромное количество связей Огромное количество связей Неоднородное окружение (огромное количество вариантов) Неоднородное окружение (огромное количество вариантов) Зависимость от ошибок в стороннем ПО Зависимость от ошибок в стороннем ПО Проблемы с безопасностью данных Проблемы с безопасностью данных Три уровня: клиент, сервер, сеть Три уровня: клиент, сервер, сеть

Тестирование клиентской части Использование затычек для имитации внешних транзакций Использование затычек для имитации внешних транзакций Проверка корректности функциональности клиентской части Проверка корректности функциональности клиентской части Оценка производительности Оценка производительности Тестирование в стрессовом режиме: Тестирование в стрессовом режиме: Проверка на низкопроизводительных машинахПроверка на низкопроизводительных машинах Запуск на ограниченных ресурсахЗапуск на ограниченных ресурсах Ситуация гонокСитуация гонок

Тестирование серверной части Тестирование транзакций по одной за раз Тестирование транзакций по одной за раз Оценка производительностиОценка производительности Оценка корректности работы отдельной транзакцииОценка корректности работы отдельной транзакции Проверка связности данныхПроверка связности данных Одновременный запуск транзакций Одновременный запуск транзакций Оценка производительностиОценка производительности Эмуляция многопользовательского режимаЭмуляция многопользовательского режима Проверка блокировок данных и тупиков (deadlock)Проверка блокировок данных и тупиков (deadlock)

Тестирование сети Проверка корректности работы и данных в случае: Проверка корректности работы и данных в случае: Клиент отключился в процессе транзакцииКлиент отключился в процессе транзакции Сеть отключилась в процессе транзакцииСеть отключилась в процессе транзакции Кратковременный сбой в сети в процессе транзакцииКратковременный сбой в сети в процессе транзакции Падение сервера в процессе транзакцииПадение сервера в процессе транзакции Эмуляция перегрузки сетиЭмуляция перегрузки сети Оценка влияния качества сети на производительность Оценка влияния качества сети на производительность

Проверка связи клиент-сервер Со стороны клиента: Со стороны клиента: Проверка подсистемПроверка подсистем Отсылаемые сообщения Отсылаемые сообщения Всплывающие окна, в том числе сообщения об ошибках Всплывающие окна, в том числе сообщения об ошибках Взаимосвязь компонентВзаимосвязь компонент Проверка взаимосвязей и иерархии данных Проверка взаимосвязей и иерархии данных Переключения между окнами, эмуляция «задумчивого» пользователя Переключения между окнами, эмуляция «задумчивого» пользователя Работа множественных клиентов Работа множественных клиентов Оценка производительностиОценка производительности Проверка блокировок и тупиков (deadlock)Проверка блокировок и тупиков (deadlock) Параллельная работа с даннымиПараллельная работа с данными

Особенности web-приложений Короткие сроки жизни версии Короткие сроки жизни версии Постоянно меняющиеся технологии Постоянно меняющиеся технологии Большое число пользователей на начальной стадии запуска Большое число пользователей на начальной стадии запуска Доступность 24/7/365 Доступность 24/7/365 Проблема Буриданова осла: нагруженность страницы деталями/скорость работы Проблема Буриданова осла: нагруженность страницы деталями/скорость работы

Тестирование Web-приложений Большое число запросов может существенно влиять на производительность Большое число запросов может существенно влиять на производительность Работа сервера зависит от скорости сети и используемых протоколов Работа сервера зависит от скорости сети и используемых протоколов Работа со ссылками (потерянные/измененные ссылки) Работа со ссылками (потерянные/измененные ссылки) Оценка времени отклика для различной скорости сети Оценка времени отклика для различной скорости сети Непредсказуемое число пользователей Непредсказуемое число пользователей Большое число компонент от различных производителей Большое число компонент от различных производителей

Удобство использования для web-приложений Критерии успешности проектирования: Время, требуемое на выполнение задачи Время, требуемое на выполнение задачи Число страниц для выполнения конкретной задачи Число страниц для выполнения конкретной задачи В каких местах трудности и с чем они связаны? В каких местах трудности и с чем они связаны? Качество интерактивной справки Качество интерактивной справки Все ли элементы интуитивно доступны или требуется поиск Все ли элементы интуитивно доступны или требуется поиск Время загрузки отдельных страниц/элементов интерфейса Время загрузки отдельных страниц/элементов интерфейса Количество кликов для конкретной задачи, время между кликами Количество кликов для конкретной задачи, время между кликами Страницы, с которых пользователь возвращается обратно Страницы, с которых пользователь возвращается обратно

Список основных проблем Когда мы видим ошибку со стороны клиента, то мы видим симптом ошибки, но не ее саму. Когда мы видим ошибку со стороны клиента, то мы видим симптом ошибки, но не ее саму. Ошибки бывают зависимыми от среды и могут не возникать в различных средах. Ошибки бывают зависимыми от среды и могут не возникать в различных средах. Ошибки могут быть в коде или в конфигурации. Ошибки могут быть в коде или в конфигурации. Ошибки могут постоянно находиться на любом из нескольких уровней. Ошибки могут постоянно находиться на любом из нескольких уровней. Рассмотрение 2 классов операционных сред статической и динамической требует различных подходов. Рассмотрение 2 классов операционных сред статической и динамической требует различных подходов.

Тестирование Java Java applets могут врезаться в HTML страницы (динамический контент) Java applets могут врезаться в HTML страницы (динамический контент) При загрузке страницы applet выгружается на клиентскую машину, где и запускается При загрузке страницы applet выгружается на клиентскую машину, где и запускается Стандартные Java классы: Стандартные Java классы: GUIGUI Работа с базами данныхРабота с базами данных Работа с сетьюРабота с сетью Работа с файламиРабота с файлами Клиентские классы Клиентские классы

Технические проблемы тестирования Java applets Версия JDK Версия JDK Поддержка различных браузеров Поддержка различных браузеров Поддержка различных платформ Поддержка различных платформ Корректность отображения на различных платформах/браузерах Корректность отображения на различных платформах/браузерах Оценка пиковых нагрузок Оценка пиковых нагрузок Связь с базами данных (JDBC) Связь с базами данных (JDBC) Унификация тестов для различных GUI библиотек Унификация тестов для различных GUI библиотек Поддержка нестандартных HTML тегов Поддержка нестандартных HTML тегов Работа с cookies Работа с cookies

Поддержка браузеров Чем больше целевая аудитория, тем больше вариантов браузеров Чем больше целевая аудитория, тем больше вариантов браузеров Необходимы проверки Необходимы проверки Различных браузеровРазличных браузеров На различных платформахНа различных платформах При различных конфигурациях дисплеяПри различных конфигурациях дисплея Необходимы проверки HTML-checker-ом Необходимы проверки HTML-checker-ом

Безопасность «От любопытного защититься просто, гораздо сложнее защититься от дурака» Поиск дыр в логике Поиск дыр в логике Защита от нелегального доступа (логи для всех попыток доступа в систему, ограниченное число попыток, время жизни сессии) Защита от нелегального доступа (логи для всех попыток доступа в систему, ограниченное число попыток, время жизни сессии) Защита от sniffers (https, шифрование) Защита от sniffers (https, шифрование) Устранение прямого доступа к файлам Устранение прямого доступа к файлам Защита сохраненных данных Защита сохраненных данных Очистка «удаленных» данных и памяти Очистка «удаленных» данных и памяти

Тестирование безопасности Доступ к базам данных Доступ к базам данных Права и ограничения для пользователейПрава и ограничения для пользователей Фича: ограничения по времени Фича: ограничения по времени Права на доступы к объектам/таблицамПрава на доступы к объектам/таблицам Целостность транзакцийЦелостность транзакций Настройка ролей и группНастройка ролей и групп Сеть Сеть Защита от Man-in-the-middleЗащита от Man-in-the-middle Уровень приложения Уровень приложения Логи для входов в системуЛоги для входов в систему Безопасность навигацииБезопасность навигации Серверы баз данных Серверы баз данных Физический доступ к серверамФизический доступ к серверам BackupBackup Надежность электроснабженияНадежность электроснабжения

Основные элементы GUI Меню Меню Окно Окно Диалоговое окно Диалоговое окно Статический текст Статический текст Кнопка управления Кнопка управления Селективная кнопка Селективная кнопка Флаговая кнопка Флаговая кнопка Поле редактирования Поле редактирования Окно списка Окно списка Комбинированное окно Комбинированное окно Картинка Картинка Маска редактирования Маска редактирования Drag and drop Drag and drop Grid Grid

Примеры тестов для диалогового окна Информативность заголовка Информативность заголовка Информативность названий кнопок Информативность названий кнопок Есть ли возможность прервать текущую операцию (и должна ли такая возможность быть) Есть ли возможность прервать текущую операцию (и должна ли такая возможность быть) Насколько понятен и читаем текст Насколько понятен и читаем текст Можно ли двигать (и должна ли такая возможность быть) Можно ли двигать (и должна ли такая возможность быть) Является ли окно модальным Является ли окно модальным

Стресс-тестирование Проверка системы на предмет пиковых нагрузок Сложность в том, что есть 4 степени свободы: Клиент Клиент Сервер Сервер Сеть Сеть База данных База данных Примеры наиболее частых жизненных стрессовых ситуаций: Возобновление работы после сбоя сервера Возобновление работы после сбоя сервера Начало рабочего дня для распределенной организации с жестким графиком работы (банки, биржи) Начало рабочего дня для распределенной организации с жестким графиком работы (банки, биржи)

Стресс-тестирование Основные направления проверки: Работа на слабой клиентской машине Работа на слабой клиентской машине Одновременная работа сервера с большим числом клиентов Одновременная работа сервера с большим числом клиентов Корректность работы с большими объемами данных Корректность работы с большими объемами данных Блокировки и тупики при одновременной работе с данными Блокировки и тупики при одновременной работе с данными Обработка большого числа идентичных запросов Обработка большого числа идентичных запросов