This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
courses:testing:lectures [2022/05/12 18:26] kalishenko |
courses:testing:lectures [2023/03/26 17:58] kalishenko |
||
---|---|---|---|
Line 11: | Line 11: | ||
* По уровню | * По уровню | ||
* По интерфейсу | * По интерфейсу | ||
- | - Особенности тестирования протоколов | ||
- | * RPC: WSDL/SOAP + REST/JSON | ||
- | * Messaging | ||
- Политика версионирования при тестировании: | - Политика версионирования при тестировании: | ||
* Альфа-версии | * Альфа-версии | ||
* Бета-версии | * Бета-версии | ||
+ | |||
+ | ===== Выбор вида тестирования ===== | ||
+ | - Пирамида тестирования: | ||
+ | * Приоритеты различных видов тестирования | ||
+ | * Соотношение видов тестов | ||
+ | - Принципы семантического версионирования | ||
+ | * Стандарт версионирования | ||
+ | * Пример на разделяемом протоколе взаимодействия | ||
+ | * Пример на библиотечных решениях | ||
===== Тестирование API. WSDL ===== | ===== Тестирование API. WSDL ===== | ||
==== Теория ==== | ==== Теория ==== | ||
+ | - Особенности тестирования протоколов | ||
+ | * RPC: WSDL/SOAP + REST/JSON | ||
+ | * Messaging | ||
- XSD-схемы - основы и примеры описания типов | - XSD-схемы - основы и примеры описания типов | ||
- WSDL-сервис - основы и пример описания методов | - WSDL-сервис - основы и пример описания методов | ||
Line 31: | Line 40: | ||
* Создание TestSuit | * Создание TestSuit | ||
* Проверки на основе XPath | * Проверки на основе XPath | ||
- | * Валидация WSDL/XSD | ||
- | |||
- | ===== Выбор вида тестирования ===== | ||
- | - Пирамида тестирования: | ||
- | * Приоритеты различных видов тестирования | ||
- | * Соотношение видов тестов | ||
- | - Принципы семантического версионирования | ||
- | * Стандарт версионирования | ||
- | * Пример на разделяемом протоколе взаимодействия | ||
- | * Пример на библиотечных решениях | ||
===== Тестирование API. REST ===== | ===== Тестирование API. REST ===== | ||
Line 157: | Line 156: | ||
* Поля | * Поля | ||
* Поиск дубликатов по стекам | * Поиск дубликатов по стекам | ||
- | |||
- | ----------- | ||
- | |||
===== Fuzzing-тестирование ===== | ===== Fuzzing-тестирование ===== | ||
==== Теория ==== | ==== Теория ==== | ||
- | - [[https://habr.com/ru/company/dsec/blog/517596/|Введение в fuzzing]] | + | - Виды верификации: |
+ | * Статическая | ||
+ | * Динамическая (..., fuzzing, ...) | ||
+ | - Sanitizers: | ||
+ | * asan | ||
+ | * ubsan | ||
+ | - Генерация данных: | ||
+ | * Начальная выборка | ||
+ | * Контроль трасс исполнения | ||
+ | * Эволюционные алгоритмы | ||
+ | - Виды мутаций | ||
+ | - Критерии остановки тестирования | ||
==== Практика ==== | ==== Практика ==== | ||
- | - [[https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md|libfuzzing "Hello world"]] | + | - AFL fuzzer: |
- | - OSS-Fuzz | + | * Сборка clang с ключами asan и ubsan |
- | * [[https://google.github.io/oss-fuzz/|OSS-Fuzz документация]] | + | * Создание тестовых данных для затравки |
- | * [[https://github.com/google/oss-fuzz/tree/master/projects|Список проектов под OSS-Fuzz]] | + | * Пример на дереве условных операторов |
- | - [[https://github.com/microsoft/restler-fuzzer|RESTler документация и репозиторий]] | + | * Запуск afl-fuzz и разъяснение полей, выводимых в runtime |
- | - [[https://github.com/schemathesis/schemathesis|Schemathesis документация и репозиторий]] | + | * Разбор результата поска падения приложения |
+ | |||
+ | ===== Ещё о test design ===== | ||
+ | <WRAP center round tip 60%> | ||
+ | Дозаполнить | ||
+ | </WRAP> | ||