User Tools

Site Tools


courses:testing:lectures

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
courses:testing:lectures [2022/02/16 16:49]
kalishenko
courses:testing:lectures [2023/06/09 20:10]
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 28: Line 40:
     * Создание TestSuit     * Создание TestSuit
     * Проверки на основе XPath     * Проверки на основе XPath
-    * Валидация WSDL/​XSD ​ 
  
-===== Выбор вида тестирования ===== +===== Планирование ​тестирования. Test case / Bugs ===== 
-  - Пирамида тестирования, роль ​тестирования API +  - Структура и назначение Test-plan:​ 
-  - Сложности тестирования messaging-протоколов и механизмов сериализации сообщений (protobuf / asn / ...) +    * Кто 
-  - Принципы семантического версионирования+    * Что 
 +    * Как 
 +    * Когда 
 +    * Критерии  ​ 
 +  - Структура и назначение Test-case: 
 +    * Предусловия 
 +    * Шаги 
 +    * Фокусирование на функциональности 
 +  - Заведение ошибок:​ 
 +    * Workflow 
 +    * Основные поля и принципы их заполнения
  
 ===== Тестирование API. REST ===== ===== Тестирование API. REST =====
Line 42: Line 63:
  
 ==== Практика ==== ==== Практика ====
-  - Сетевой сниферинг JSON с помощью tcpdump / wireshark 
   - Postman:   - Postman:
     * Импорт описания API     * Импорт описания API
Line 54: Line 74:
     * Назначение и применение mock-серверов  ​     * Назначение и применение mock-серверов  ​
  
-===== Тестирование интерфейса пользователя ​(Web=====+===== Тестирование интерфейса пользователяWeb =====
 ==== Теория ==== ==== Теория ====
-  - Классификация тестирования:​ 
-    * По охвату (модульное,​ ...) 
-    * По цели (функциональное,​ smoke, ...) 
-    * По технологии (web, ...) 
-  - Политика версионирования при тестировании:​ 
-    * Альфа-версии 
-    * Бета-версии ​ 
   - Архитектура Selenium:   - Архитектура Selenium:
     * WebDriver     * WebDriver
Line 100: Line 113:
     * JMeter     * JMeter
     * Gatling     * Gatling
-    * K6  +    * K6
-  - Место в CI: +
-    * Базовый workflow сборки проекта +
-    * Интеграционное тестирование с записью видео/​результатов+
  
 ==== Практика ==== ==== Практика ====
Line 113: Line 123:
     * Вынесение общих параметров     * Вынесение общих параметров
     * Просмотр результатов в графическом и табличном видах     * Просмотр результатов в графическом и табличном видах
- 
------------ 
  
 ===== Тестирование интерфейса пользователя (Desktop) ===== ===== Тестирование интерфейса пользователя (Desktop) =====
 ==== Теория ==== ==== Теория ====
   - Примеры технологий разработки интерфейса и соответствие инструментов тестирования со знанием идентификаторов элементов интерфейса:​   - Примеры технологий разработки интерфейса и соответствие инструментов тестирования со знанием идентификаторов элементов интерфейса:​
-    * Java/Swing или SWT: ? 
     * Qt: Squish     * Qt: Squish
     * JS: Selenium     * JS: Selenium
-    * Windows forms: ? 
   - Применение компьютерного зрения:​ Sikuli   - Применение компьютерного зрения:​ Sikuli
 +    * Архитектура
 +    * OpenCV
 +    * Tesseract
 +    * Jython ​
   - Применение машинного обучения:​ Testolang   - Применение машинного обучения:​ Testolang
 +    * Архитектура
 +    * QEMU/KVM
 +    * Нейронные сети ​
  
 ==== Практика ==== ==== Практика ====
-  - Sikuli +  - Sikuli: 
-  - Testolang+    * Подключение sikuli в Python 
 +    * Тест сложения в калькуляторе передачей нажатия клавиш 
 +    * Фиксация изображений для поиска 
 +    * Параметры поиска изображения
  
 ===== 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 =====
 +  - Black Box
 +    * Классы эквивалентности
 +    * Граничные значения
 +    * Доменный анализ
 +    * Диаграмма переходов состояний
 +    * Попарное тестирование
 +    * Тестирование вариантов использования
 +  - White Box
 +    * Потоки управления
 +    * Потоки данных
 +  - Experience based
 +    * Checklists
 +    * Исследовательское тестирование. Test strategy model:
 +      * Function
 +      * Claims
 +      * Domain
 +      * User
 +      * Stress
 +      * Risk
 +      * Flow
 +      * Automatic
 +      * Scenario ​
 +  - Заведение ошибок:​
 +    * Поля
 +    * Поиск дубликатов по стекам ​
courses/testing/lectures.txt · Last modified: 2023/06/09 20:11 by kalishenko