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/03/11 17:34]
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 31: Line 40:
     * Создание TestSuit     * Создание TestSuit
     * Проверки на основе XPath     * Проверки на основе XPath
-    * Валидация WSDL/​XSD ​ 
  
-===== Выбор вида тестирования ===== +===== Планирование ​тестирования. Test case / Bugs ===== 
-  - Пирамида тестирования+  - Структура и назначение Test-plan
-    * Приоритеты различных видов тестирования +    * Кто 
-    * Соотношение видов тестов +    * Что 
-  - Принципы семантического версионирования +    * Как 
-    * Стандарт версионирования +    * Когда 
-    * Пример на разделяемом протоколе взаимодействия +    * Критерии   
-    * Пример ​на библиотечных решениях +  - Структура ​и назначение Test-case:​ 
 +    * Предусловия 
 +    * Шаги 
 +    * Фокусирование на функциональности 
 +  - Заведение ошибок
 +    * Workflow 
 +    * Основные поля и принципы их заполнения
  
 ===== Тестирование API. REST ===== ===== Тестирование API. REST =====
Line 60: Line 74:
     * Назначение и применение mock-серверов  ​     * Назначение и применение mock-серверов  ​
  
-===== Тестирование интерфейса пользователя ​(Web=====+===== Тестирование интерфейса пользователяWeb =====
 ==== Теория ==== ==== Теория ====
   - Архитектура Selenium:   - Архитектура Selenium:
Line 99: Line 113:
     * JMeter     * JMeter
     * Gatling     * Gatling
-    * K6  +    * K6
-  - Место в CI: +
-    * Базовый workflow сборки проекта +
-    * Интеграционное тестирование с записью видео/​результатов+
  
 ==== Практика ==== ==== Практика ====
Line 112: 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