Слайд 2
Функциональное тестирование.
Функциональное тестирование рассматривает заранее указанное поведение и
основывается на анализе спецификаций функциональности компонента или системы в
целом.
Слайд 3
Функциональное тестирование.
Функциональные тесты основываются на функциях, выполняемых системой,
и могут проводиться на всех уровнях тестирования (компонентном, интеграционном,
системном, приемочном). Как правило, эти функции описываются в требованиях, функциональных спецификациях или в виде случаев использования системы (use cases).
Слайд 4
Функциональное тестирование.
Тестирование функциональности может проводиться в двух аспектах:
Требования;
Бизнес-процессы.
Слайд 5
Функциональное тестирование.
Тестирование в перспективе «требования» использует спецификацию функциональных
требований к системе как основу для дизайна тестовых случаев
(Test Cases). В этом случае необходимо сделать список того, что будет тестироваться, а что нет, приоритезировать требования на основе рисков (если это не сделано в документе с требованиями), а на основе этого приоритезировать тестовые сценарии (test cases). Это позволит сфокусироваться и не упустить при тестировании наиболее важный функционал.
Слайд 6
Функциональное тестирование.
Тестирование в перспективе «бизнес-процессы» использует знание этих
самых бизнес-процессов, которые описывают сценарии ежедневного использования системы. В
этой перспективе тестовые сценарии (test scripts), как правило, основываются на случаях использования системы (use cases).
Слайд 7
Функциональное тестирование.
Максимальное приближение к реальным сценариям
использования ПО.
Слайд 8
Функциональное тестирование.
Может применяться
на всех уровнях
тестирования.
Слайд 9
Функциональное тестирование.
Чаще всего является
формальным тестированием,
т.е. основано на:
Документации
Описании
user scenarios
Слайд 10
Функциональное тестирование.
Это всегда тестирование “чёрного ящика” (!)
Слайд 11
Функциональное тестирование. Цели.
Test to pass:
ПО минимально работоспособно;
Простые сценарии;
Не
превышаем ограничения;
Не ищем баги.
Слайд 12
Функциональное тестирование. Цели.
Test to fail:
Сценарии, которые могут сломать
ПО;
Известные и неизвестные слабые места;
Акцент на поиск ошибок.
Слайд 13
Функциональное тестирование. Достижения
Слайд 14
Функциональное тестирование. Примеры.
“Распечатать счет - фактуру”;
“Показать фотографию на
странице”;
“Загрузить годовой отчет”;
“Оплатить выбранные товары”.
Слайд 15
Функциональное тестирование. Недостатки формального подхода.
Документации нет;
Документации мало;
Документация плохого
качества.
Слайд 16
Функциональное тестирование. Недостатки формального подхода.
Документации очень много.
Слайд 17
Функциональное тестирование. Ручное против автоматизированного.
Слайд 18
Функциональное тестирование. Плюсы ручного тестирования.
Легкая доступность для начинающих;
Можно
проверить очень сложные сценарии.
Слайд 19
Функциональное тестирование. Минусы ручного тестирования.
Устал;
Забыл;
Забил;
Не подумал;
Скорость и объем.
Слайд 20
Функциональное тестирование. Плюсы автотестирования.
- Скорость;
- Исключаем
человека;
- Автоматическая отчетность.
Слайд 21
Функциональное тестирование. Минусы автотестирования.
Высокий порог вхождения;
Стоимость поддержки;
Дополнительная инфраструктура;
Часть
сценариев не поддается автоматизации.
Слайд 23
Функциональное тестирование.
Плюсы функционального тестирования:
Имитирует фактическое использование системы;
Минусы функционального
тестирования:
Возможность упущения логических ошибок в ПО;
Вероятность избыточного тестирования.
Слайд 24
Тестирование безопасности. Основная модель.
Конфиденциальность;
Целостность;
Доступность.
Слайд 25
Тестирование безопасности. Необязательные модели.
Неотказуемость;
Подотчетность;
Достоверность;
Аутентичность.
Слайд 26
Тестирование безопасности. Зачем?
Информация и контроль доступа;
Стабильность системы;
Целостность системы;
Экономическая
эффективность.
Слайд 27
Тестирование безопасности. Где применяется?
Приложения с важной коммерческой или
персональной информацией;
Платежные системы;
Приложения требующие целостности информации;
Социальные приложения;
Приложения с коммерческим
лицензированием.
Слайд 28
Тестирование безопасности. Особенности.
Важность “негативного” тестирования;
Думать как хакер;
Качество тестирования
безопасности сложно измерить;
Важность нефункциональных требований;
Тестирование на основе рисков;
Уязвимости -
это такие же баги;
Необходимость тестирования белого ящика;
Слайд 29
Тестирование безопасности. Стандарты.
OSSTMM (http://www.isecom.org);
ISACA (http://www.isaca.org);
ISSAF (http://www.oissg.org/issaf);
OWASP Guide (https://www.owasp.org/);
NIST
Guideline (http://csrc.nist.gov/about/);
CHECK (https://www.ncsc.gov.uk/);
PROTOS (https://www.ee.oulu.fi/roles/ouspg/Protos).
Слайд 30
Тестирование безопасности. Типичные уязвимости.
Неверная валидация входных данных;
Внедрение параметров
(XSS, CSRF);
Переполнение буфера;
Инъекции;
Неверное завершение сессий;
Неверная аутентификация;
Человеческий фактор.
Слайд 31
Тестирование безопасности. Методы тестирования.
Построение модели угроз и рисков;
Слайд 32
Тестирование безопасности. Методы тестирования.
Поиск уязвимостей в исходном коде:
Ревью
кода разработчиками;
Анализ кода при помощи утилит статического и динамического
анализа;
Слайд 33
Тестирование безопасности. Методы тестирования.
Тестирование на проникновение:
Веб - сканеры;
Анализ
сетей;
Ручное тестирование на проникновение.
Слайд 34
Тестирование безопасности. Методы тестирования.
Нефункциональное тестирование:
Нагрузочное тестирование;
Стресс - тестирование;
Объемное
тестирование;
Тестирование масштабируемости;
Тестирование удобства использования;
Слайд 35
Тестирование безопасности. Сложности
Приложение может вести себя по разному
на различных платформах;
Много конфигураций;
Различное железо;
Разные драйверы.
Слайд 36
Тестирование безопасности. Этапы тестирования
Сбор информации;
Анализ угроз, уязвимостей, построение
матриц угроз и рисков;
Определение критериев защищенности, Простые тесты, анализ
исходного кода;
Внешняя экспертиза, нефункциональное тестирование, тестирование, основанное на рисках;
Нагрузочные тесты, тестирование на проникновение.
Слайд 37
Тестирование безопасности. Выводы
Тестирование безопасности - необходимый этап, для
компаний, которым важен “безопасный” продукт;
Невозможно измерить качество тестирования;
Необходимо изучать
новые технологии;
Необходимо регулярно проводить экспертизу;
Особое внимание архитектуре и компонентам.