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
courses:testing:lectures [2022/04/08 07:34]
kalishenko
courses:testing:lectures [2023/06/09 20:11] (current)
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 109: Line 124:
     * Вынесение общих параметров     * Вынесение общих параметров
     * Просмотр результатов в графическом и табличном видах     * Просмотр результатов в графическом и табличном видах
- 
-===== Планирование тестирования ===== 
-  - Структура и назначение Test-plan: 
-    * Кто 
-    * Что 
-    * Как 
-    * Когда 
-    * Критерии  ​ 
-  - Структура и назначение Test-case: 
-    * Предусловия 
-    * Шаги ​ 
- 
------------ 
  
 ===== Тестирование интерфейса пользователя (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.1649403290.txt.gz · Last modified: 2022/12/10 09:08 (external edit)