Слайд 2Оглавление
Распределенные приложения
Плюсы и минусы
Тестирование распределенных приложений:
Тестирование клиентской части
Тестирование серверной части
Тестирование сети
Тестирование связи
![Оглавление Распределенные приложения Плюсы и минусы Тестирование распределенных приложений: Тестирование клиентской части](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-1.jpg)
клиент-сервер
Тестирование Web-приложений
Основные проблемы
Тестирование Java
Основные технические проблемы
Стресс-тестирование
Слайд 3Особенности тестирования распределенных приложений
Большие затраты времени
Требуются эксперты
Отдельное тестирование клиентской и серверной частей
![Особенности тестирования распределенных приложений Большие затраты времени Требуются эксперты Отдельное тестирование клиентской и серверной частей](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-2.jpg)
Слайд 4Плюсы распределенных систем
Высокая модульность
Высокая возможность повторного использования
Наличие внутренних проверок на уровне баз
![Плюсы распределенных систем Высокая модульность Высокая возможность повторного использования Наличие внутренних проверок](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-3.jpg)
данных
Возможность использования и интегрирования в систему ПО сторонних производителей
Возможность балансировки нагрузки клиент/сервер
Слайд 5Минусы распределенных систем
Огромное количество связей
Неоднородное окружение (огромное количество вариантов)
Зависимость от ошибок в
![Минусы распределенных систем Огромное количество связей Неоднородное окружение (огромное количество вариантов) Зависимость](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-4.jpg)
стороннем ПО
Проблемы с безопасностью данных
Три уровня: клиент, сервер, сеть
Слайд 6Тестирование клиентской части
Использование затычек для имитации внешних транзакций
Проверка корректности функциональности клиентской части
Оценка
![Тестирование клиентской части Использование затычек для имитации внешних транзакций Проверка корректности функциональности](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-5.jpg)
производительности
Тестирование в стрессовом режиме:
Проверка на низкопроизводительных машинах
Запуск на ограниченных ресурсах
Ситуация гонок
Слайд 7Тестирование серверной части
Тестирование транзакций по одной за раз
Оценка производительности
Оценка корректности работы отдельной
![Тестирование серверной части Тестирование транзакций по одной за раз Оценка производительности Оценка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-6.jpg)
транзакции
Проверка связности данных
Одновременный запуск транзакций
Оценка производительности
Эмуляция многопользовательского режима
Проверка блокировок данных и тупиков (deadlock)
Слайд 8Тестирование сети
Проверка корректности работы и данных в случае:
Клиент отключился в процессе транзакции
Сеть
![Тестирование сети Проверка корректности работы и данных в случае: Клиент отключился в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-7.jpg)
отключилась в процессе транзакции
Кратковременный сбой в сети в процессе транзакции
Падение сервера в процессе транзакции
Эмуляция перегрузки сети
Оценка влияния качества сети на производительность
Слайд 9Проверка связи клиент-сервер
Со стороны клиента:
Проверка подсистем
Отсылаемые сообщения
Всплывающие окна, в том числе
![Проверка связи клиент-сервер Со стороны клиента: Проверка подсистем Отсылаемые сообщения Всплывающие окна,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-8.jpg)
сообщения об ошибках
Взаимосвязь компонент
Проверка взаимосвязей и иерархии данных
Переключения между окнами, эмуляция «задумчивого» пользователя
Работа множественных клиентов
Оценка производительности
Проверка блокировок и тупиков (deadlock)
Параллельная работа с данными
Слайд 10Особенности web-приложений
Короткие сроки жизни версии
Постоянно меняющиеся технологии
Большое число пользователей на начальной стадии
![Особенности web-приложений Короткие сроки жизни версии Постоянно меняющиеся технологии Большое число пользователей](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-9.jpg)
запуска
Доступность 24/7/365
Проблема Буриданова осла: нагруженность страницы деталями/скорость работы
Слайд 11Тестирование Web-приложений
Большое число запросов может существенно влиять на производительность
Работа сервера зависит от
![Тестирование Web-приложений Большое число запросов может существенно влиять на производительность Работа сервера](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-10.jpg)
скорости сети и используемых протоколов
Работа со ссылками (потерянные/измененные ссылки)
Оценка времени отклика для различной скорости сети
Непредсказуемое число пользователей
Большое число компонент от различных производителей
Слайд 12Удобство использования для web-приложений
Критерии успешности проектирования:
Время, требуемое на выполнение задачи
Число страниц для
![Удобство использования для web-приложений Критерии успешности проектирования: Время, требуемое на выполнение задачи](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-11.jpg)
выполнения конкретной задачи
В каких местах трудности и с чем они связаны?
Качество интерактивной справки
Все ли элементы интуитивно доступны или требуется поиск
Время загрузки отдельных страниц/элементов интерфейса
Количество кликов для конкретной задачи, время между кликами
Страницы, с которых пользователь возвращается обратно
Слайд 13Список основных проблем
Когда мы видим ошибку со стороны клиента, то мы видим
![Список основных проблем Когда мы видим ошибку со стороны клиента, то мы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-12.jpg)
симптом ошибки, но не ее саму.
Ошибки бывают зависимыми от среды и могут не возникать в различных средах.
Ошибки могут быть в коде или в конфигурации.
Ошибки могут постоянно находиться на любом из нескольких уровней.
Рассмотрение 2 классов операционных сред — статической и динамической — требует различных подходов.
Слайд 14Тестирование Java
Java applets могут врезаться в HTML страницы (динамический контент)
При загрузке страницы
![Тестирование Java Java applets могут врезаться в HTML страницы (динамический контент) При](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-13.jpg)
applet выгружается на клиентскую машину, где и запускается
Стандартные Java классы:
GUI
Работа с базами данных
Работа с сетью
Работа с файлами
Клиентские классы
Слайд 15Технические проблемы тестирования Java applets
Версия JDK
Поддержка различных браузеров
Поддержка различных платформ
Корректность отображения на
![Технические проблемы тестирования Java applets Версия JDK Поддержка различных браузеров Поддержка различных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-14.jpg)
различных платформах/браузерах
Оценка пиковых нагрузок
Связь с базами данных (JDBC)
Унификация тестов для различных GUI библиотек
Поддержка нестандартных HTML тегов
Работа с cookies
Слайд 16Поддержка браузеров
Чем больше целевая аудитория, тем больше вариантов браузеров
Необходимы проверки
Различных браузеров
На различных
![Поддержка браузеров Чем больше целевая аудитория, тем больше вариантов браузеров Необходимы проверки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-15.jpg)
платформах
При различных конфигурациях дисплея
Необходимы проверки HTML-checker-ом
Слайд 17Безопасность
«От любопытного защититься просто, гораздо сложнее защититься от дурака»
Поиск дыр в логике
Защита
![Безопасность «От любопытного защититься просто, гораздо сложнее защититься от дурака» Поиск дыр](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-16.jpg)
от нелегального доступа (логи для всех попыток доступа в систему, ограниченное число попыток, время жизни сессии)
Защита от sniffers (https, шифрование)
Устранение прямого доступа к файлам
Защита сохраненных данных
Очистка «удаленных» данных и памяти
Слайд 18Тестирование безопасности
Доступ к базам данных
Права и ограничения для пользователей
Фича: ограничения по
![Тестирование безопасности Доступ к базам данных Права и ограничения для пользователей Фича:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-17.jpg)
времени ☺
Права на доступы к объектам/таблицам
Целостность транзакций
Настройка ролей и групп
Сеть
Защита от Man-in-the-middle
Уровень приложения
Логи для входов в систему
Безопасность навигации
Серверы баз данных
Физический доступ к серверам
Backup
Надежность электроснабжения
Слайд 19Основные элементы GUI
Меню
Окно
Диалоговое окно
Статический текст
Кнопка управления
Селективная кнопка
Флаговая кнопка
Поле редактирования
Окно списка
Комбинированное окно
Картинка
Маска редактирования
Drag
![Основные элементы GUI Меню Окно Диалоговое окно Статический текст Кнопка управления Селективная](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-18.jpg)
and drop
Grid
Слайд 20Примеры тестов для
диалогового окна
Информативность заголовка
Информативность названий кнопок
Есть ли возможность прервать текущую операцию
![Примеры тестов для диалогового окна Информативность заголовка Информативность названий кнопок Есть ли](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-19.jpg)
(и должна ли такая возможность быть)
Насколько понятен и читаем текст
Можно ли двигать (и должна ли такая возможность быть)
Является ли окно модальным
Слайд 21Стресс-тестирование
Проверка системы на предмет пиковых нагрузок
Сложность в том, что есть 4 степени
![Стресс-тестирование Проверка системы на предмет пиковых нагрузок Сложность в том, что есть](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396810/slide-20.jpg)
свободы:
Клиент
Сервер
Сеть
База данных
Примеры наиболее частых жизненных стрессовых ситуаций:
Возобновление работы после сбоя сервера
Начало рабочего дня для распределенной организации с жестким графиком работы (банки, биржи)