Презентация - Мутационное тестирование STRYKER

Нажмите для просмотра
Мутационное тестирование STRYKER
Распечатать
  • Последний IP: 66.249.76.66
  • Уникальность: 93%
  • Слайдов: 59
  • Просмотров: 3918
  • Скачиваний: 2642
  • Размер: 8.09 MB
  • Онлайн: Да
  • Формат: ppt и pptx
В закладки
Оцени!

Слайды и текст этой онлайн презентации

Слайд 1

Мутационное тестирование STRYKER, слайд 1
Мутационное тестирование STRYKER. JS Варпахович Кирилл Николаевич Ведущий Front End Разработчик Tinkoff.ru

Слайд 2

Мутационное тестирование STRYKER, слайд 2
О чём поговорим? Уровни тестирования Взросление продукта Взросление бизнеса Что такое мутационное тестирование Как начать работать с Stryker Подводные камни, которые мы поймали

Слайд 3

Мутационное тестирование STRYKER, слайд 3
Типы тестирования по уровню

Слайд 4

Мутационное тестирование STRYKER, слайд 4
Типы тестирования (по уровню) Как вы тестируете ваше приложение? Мы пишем юнит тесты. Какие? Я же сказал - юнит!

Слайд 5

Мутационное тестирование STRYKER, слайд 5
Типы тестирования (по уровню) Как вы тестируете ваше приложение? Мы пишем юнит тесты. Какие? Я же сказал - юнит!

Слайд 6

Мутационное тестирование STRYKER, слайд 6
Типы тестирования (по уровню)

Слайд 7

Мутационное тестирование STRYKER, слайд 7
Типы тестирования (по уровню) Системное тестирование (сценарии использования и т.д.) Системное тестирование проверяют выполнение бизнес-функций (требований) системы. проверяет сценарии работы пользователя в системе есть много видов

Слайд 8

Мутационное тестирование STRYKER, слайд 8
Типы тестирования (по уровню) Системное тестирование (сценарии использования и т.д.) Тестирование интеграционное (проверяем результат внешних эффектов) Тестирование интеграционное проверяем изменения после взаимодейсвтия компонент проверяем технические сценарии взаимодейсвтия компонент

Слайд 9

Мутационное тестирование STRYKER, слайд 9
Типы тестирования (по уровню) Тестирование компоненты (проверяем наличие внешних эффектов, проверяем результат внешних изменений) Системное тестирование (сценарии использования и т.д.) Тестирование интеграционное (проверяем результат внешних эффектов) Тестирование компоненты Проверяем что вызываются внешние функции/сущности Проверяем обработку запросов на изменение извне Дёргаем внешнее API компоненты

Слайд 10

Мутационное тестирование STRYKER, слайд 10
Типы тестирования (по уровню) Тестирование компоненты (проверяем наличие внешних эффектов, проверяем результат внешних изменений) Тетирование функций (не важны любые эффекты, только результат функции) Тестирование модулей (проверяем внутренние эффекты) Системное тестирование (сценарии использования и т.д.) Тестирование интеграционное (проверяем результат внешних эффектов) Тестирование модулей Проверяем нечистые функции Проверяем функции, которые должны менять состояние модуля Проверяем, что чистые функции не меняют состояние модуля

Слайд 11

Мутационное тестирование STRYKER, слайд 11
Типы тестирования (по уровню) Тестирование компоненты (проверяем наличие внешних эффектов, проверяем результат внешних изменений) Тестирование функций (не важны любые эффекты, только результат функции) Тестирование модулей (проверяем внутренние эффекты) Системное тестирование (сценарии использования и т.д.) Тестирование интеграционное (проверяем результат внешних эффектов) Тестирование функций Проверяем результат чистых функций Проверяем результат не чистых функций на разных входных парамтерах Не проверяем изменение состояния сущности

Слайд 12

Мутационное тестирование STRYKER, слайд 12
Типы тестирования (по уровню) Тестирование компоненты (проверяем наличие внешних эффектов, проверяем результат внешних изменений) Тестирование функций (не важны любые эффекты, только результат функции) Тестирование модулей (проверяем внутренние эффекты) Системное тестирование (сценарии использования и т.д.) Тестирование интеграционное (проверяем результат внешних эффектов) Это всё Unit-тестирование

Слайд 13

Мутационное тестирование STRYKER, слайд 13
Когда тесты нужны бизнесу? Этапы взросления

Слайд 14

Мутационное тестирование STRYKER, слайд 14
Взросление бизнеса Команда Идея Средства Этап 1 Собственные Прототип Рынок

Слайд 15

Мутационное тестирование STRYKER, слайд 15
Взросление бизнеса Фирма Прототип Капитал Этап 2 Деньги Инвесторы Рынок Продукт Прибыль

Слайд 16

Мутационное тестирование STRYKER, слайд 16
Взросление бизнеса Этап 3 Кампания Продукт Капитал Деньги Инвесторы Рынок Нишевые предложения Прибыль

Слайд 17

Мутационное тестирование STRYKER, слайд 17
Взросление продукта Идея Concept Прототип Proof of concept Опытный образец Minimal viable product Работоспособный продукт Market Product Специальный продукт Проверка востребованности Проверка осуществимости Демонстрация возможностей Демонстрация жизнеспособности Максимизация прибыли Укоренение в рынке Обеспечение стабильности

Слайд 18

Мутационное тестирование STRYKER, слайд 18
Взросление продукта Идея Concept Прототип Proof of concept Опытный образец Minimal viable product Работоспособный продукт Market Product Специальный продукт Проверка востребованности Проверка осуществимости Демонстрация возможностей Демонстрация жизнеспособности Максимизация прибыли Укоренение в рынке Обеспечение стабильности

Слайд 19

Мутационное тестирование STRYKER, слайд 19
Взросление продукта Идея Concept Прототип Proof of concept Опытный образец Minimal viable product Работоспособный продукт Market Product Специальный продукт Проверка востребованности Проверка осуществимости Демонстрация возможностей Демонстрация жизнеспособности Максимизация прибыли Укоренение в рынке Обеспечение стабильности

Слайд 20

Мутационное тестирование STRYKER, слайд 20
Взросление продукта Идея Concept Прототип Proof of concept Опытный образец Minimal viable product Работоспособный продукт Market Product Специальный продукт Проверка востребованности Проверка осуществимости Демонстрация возможностей Демонстрация жизнеспособности Максимизация прибыли Укоренение в рынке Обеспечение стабильности

Слайд 21

Мутационное тестирование STRYKER, слайд 21
Взросление продукта Идея Concept Прототип Proof of concept Опытный образец Minimal viable product Работоспособный продукт Market Product Специальный продукт Проверка востребованности Проверка осуществимости Демонстрация возможностей Демонстрация жизнеспособности Максимизация прибыли Укоренение в рынке Обеспечение стабильности

Слайд 22

Мутационное тестирование STRYKER, слайд 22
Взросление продукта Растёт потребность в стабильности Растёт потребность в качестве тестов Идея Concept Прототип Proof of concept Опытный образец Minimal viable product Работоспособный продукт Market Product Специальный продукт Проверка востребованности Проверка осуществимости Демонстрация возможностей Демонстрация жизнеспособности Максимизация прибыли Укоренение в рынке Обеспечение стабильности

Слайд 23

Мутационное тестирование STRYKER, слайд 23
Бизнес готов Тесты пишутся Что дальше?

Слайд 24

Мутационное тестирование STRYKER, слайд 24
Качество тестирования Идея Concept Прототип Proof of concept Опытный образец Minimal viable product Работоспособный продукт Market Product Специальный продукт Проверка востребованности Проверка осуществимости Демонстрация возможностей Демонстрация жизнеспособности Максимизация прибыли Укоренение в рынке Обеспечение стабильности Растёт потребность в стабильности Растёт потребность в качестве тестов

Слайд 25

Мутационное тестирование STRYKER, слайд 25
Качество тестирования

Слайд 26

Мутационное тестирование STRYKER, слайд 26
Качество тестирования Цели: Повышаем качество тестов Удаляем бесполезные тесты Повышаем качество кода Попутно улучшаем архитектуру, отказоустойчивость и т.д.

Слайд 27

Мутационное тестирование STRYKER, слайд 27
Качество тестирования Stryker: C# Scala Javascript/Typescript React Angular Native

Слайд 28

Мутационное тестирование STRYKER, слайд 28
Качество тестирования Stryker: C# Scala Javascript/Typescript React Angular Native

Слайд 29

Мутационное тестирование STRYKER, слайд 29
Качество тестирования

Слайд 30

Мутационное тестирование STRYKER, слайд 30
Getting started (немного чёрных экранов)

Слайд 31

Мутационное тестирование STRYKER, слайд 31
Stryker.js npm install -g stryker-cli npm install -D stryker-cli

Слайд 32

Мутационное тестирование STRYKER, слайд 32
Stryker.js npm install -g stryker-cli npm install --save-dev stryker-mutator/core npm install -g stryker-cli npm install --save-dev stryker-mutator/html-reporter npm install --save-dev stryker-mutator/typescript npm install --save-dev stryker-mutator/jest-runner

Слайд 33

Мутационное тестирование STRYKER, слайд 33
Stryker.js npm install -g stryker-cli npm install --save-dev stryker-mutator/core stryker init npm install -g stryker-cli npm install --save-dev stryker-mutator/html-reporter npm install --save-dev stryker-mutator/typescript npm install --save-dev stryker-mutator/jest-runner

Слайд 34

Мутационное тестирование STRYKER, слайд 34
Stryker.js npm install -g stryker-cli npm install --save-dev stryker-mutator/core stryker init npm install -g stryker-cli npm install --save-dev stryker-mutator/html-reporter npm install --save-dev stryker-mutator/typescript npm install --save-dev stryker-mutator/jest-runner stryker run

Слайд 35

Мутационное тестирование STRYKER, слайд 35
Stryker.js stryker run

Слайд 36

Мутационное тестирование STRYKER, слайд 36
Stryker.js module . exports function (config) config. set ( ... ) ; ; stryker.conf.js

Слайд 37

Мутационное тестирование STRYKER, слайд 37
Stryker.js module . exports function (config) config. set ( ... mutator : "typescript" , test Runner : "jest" , jest : config File : "jest.conf.js" , project Type : "angular-cli" , , ) ; ; stryker.conf.js

Слайд 38

Мутационное тестирование STRYKER, слайд 38
Stryker.js module . exports function (config) config. set ( ... reporters : "progress" , "clear-text" , "html" , html Reporter : base Dir : 'reports/mutation/html' , ) ; ; stryker.conf.js

Слайд 39

Мутационное тестирование STRYKER, слайд 39
Stryker.js module . exports function (config) config. set ( ... max Concurrent Test Runners : 4 , // Recommended to use about half of your available cores when running stryker with angular. ) ; ; stryker.conf.js

Слайд 40

Мутационное тестирование STRYKER, слайд 40
Stryker.js module . exports function (config) config. set ( ... max Concurrent Test Runners : 4 , // Recommended to use about half of your available cores when running stryker with angular. ) ; ; stryker.conf.js

Слайд 41

Мутационное тестирование STRYKER, слайд 41
Stryker.js module . exports function (config) config. set ( mutate : "src/ / .ts" , "!src/ / .spec.ts" , "!src/ / .module.ts" , "!src/app/test/ / .ts" , "!src/ / .routing.ts" , ) ; ; stryker.conf.js

Слайд 42

Мутационное тестирование STRYKER, слайд 42
Stryker.js stryker run INFO Config Reader Using stryker.conf.js in the current working directory. INFO Input File Resolver Found 992 of 2002 file(s) to be mutated. INFO Initial Test Executor Starting initial test run. This may take a while. INFO Initial Test Executor Initial test run succeeded. Ran 1170 tests in 2 minutes 45 seconds (net 54338 ms, overhead 65737 ms). INFO Mutator Facade 12094 Mutant(s) generated INFO Sandbox Pool Creating 4 test runners (based on max Concurrent Test Runners config)

Слайд 43

Мутационное тестирование STRYKER, слайд 43
Stryker.js stryker run INFO Config Reader Using stryker.conf.js in the current working directory. INFO Input File Resolver Found 992 of 2002 file(s) to be mutated. INFO Initial Test Executor Starting initial test run. This may take a while . INFO Initial Test Executor Initial test run succeeded. Ran 1170 tests in 2 minutes 45 seconds (net 54338 ms, overhead 65737 ms). INFO Mutator Facade 12094 Mutant(s) generated INFO Sandbox Pool Creating 4 test runners (based on max Concurrent Test Runners config)

Слайд 44

Мутационное тестирование STRYKER, слайд 44
Stryker.js stryker run INFO Config Reader Using stryker.conf.js in the current working directory. INFO Input File Resolver Found 992 of 2002 file(s) to be mutated. INFO Initial Test Executor Starting initial test run. This may take a while .

Слайд 45

Мутационное тестирование STRYKER, слайд 45
Stryker.js stryker run INFO Config Reader Using stryker.conf.js in the current working directory. INFO Input File Resolver Found 992 of 2002 file(s) to be mutated. INFO Initial Test Executor Starting initial test run. This may take a while. INFO Initial Test Executor Initial test run succeeded. Ran 1170 tests in 2 minutes 45 seconds (net 54338 ms, overhead 65737 ms). INFO Mutator Facade 12094 Mutant(s) generated INFO Sandbox Pool Creating 4 test runners (based on max Concurrent Test Runners config) ----------------------------- --------- ---------- ----------- ------------ ---------- --------- File % score # killed # timeout # survived # no cov # error ----------------------------- --------- ---------- ----------- ------------ ---------- --------- All files 0.00 0 0 12094 0 0 call-step-form.component.ts 0.00 0 0 11 0 0 ... 0.00 0 0 ... 0 0 ----------------------------- --------- ---------- ----------- ------------ ---------- --------- INFO Html Reporter Your report can be found at: file:///.../reports/mutation/html/index.html INFO Stryker Done in 6 hours 11 minutes.

Слайд 46

Мутационное тестирование STRYKER, слайд 46
Stryker.js Done in 6 hours 11 minutes

Слайд 47

Мутационное тестирование STRYKER, слайд 47
Stryker.js ----------------------------- --------- ---------- ----------- ------------ ---------- --------- File % score # killed # timeout # survived # no cov # error ----------------------------- --------- ---------- ----------- ------------ ---------- --------- All files 0.00 0 0 12094 0 0 call-step-form.component.ts 0.00 0 0 11 0 0 ... 0.00 0 0 ... 0 0 ----------------------------- --------- ---------- ----------- ------------ ---------- --------- перцентиль циферъ умерло от безысходности этих даже не искали живее всех живых эти поломали нам систему

Слайд 48

Мутационное тестирование STRYKER, слайд 48
Stryker.js html Reporter : base Dir : 'reports/mutation/html' ,

Слайд 49

Мутационное тестирование STRYKER, слайд 49
Stryker.js html Reporter : base Dir : 'reports/mutation/html' ,

Слайд 50

Мутационное тестирование STRYKER, слайд 50
Особенности

Слайд 51

Мутационное тестирование STRYKER, слайд 51
Особенности Очень много времени на анализ результатов Можно настроить запуск на конкретные файлы вручную

Слайд 52

Мутационное тестирование STRYKER, слайд 52
Особенности Очень много времени на анализ результатов Можно настроить запуск на конкретные файлы вручную 1 мутация ! 1 прогон :(

Слайд 53

Мутационное тестирование STRYKER, слайд 53
Особенности Очень много времени на анализ результатов Можно настроить запуск на конкретные файлы вручную 1 мутация ! 1 прогон :(

Слайд 54

Мутационное тестирование STRYKER, слайд 54
Особенности Очень много времени на анализ результатов Можно настроить запуск на конкретные файлы вручную 1 мутация ! 1 прогон :( 1 точка в коде почти всегда 1 мутация Для условий и математики количество мутаций больше Можно создавать кастомные мутации количество инстансов должно решить проблему

Слайд 55

Мутационное тестирование STRYKER, слайд 55
Особенности Очень много времени на анализ результатов Можно настроить запуск на конкретные файлы вручную 1 мутация ! 1 прогон :( 1 точка в коде почти всегда 1 мутация Для условий и математики количество мутаций больше Можно создавать кастомные мутации количество инстансов должно решить проблему Нет teamcity-reporter для интеграции Можно пользоваться репортером jest/karma

Слайд 56

Мутационное тестирование STRYKER, слайд 56
Первые результаты

Слайд 57

Мутационное тестирование STRYKER, слайд 57
Первые результаты Стали думать что тестируем и как тестируем Появились тесты убивающие мутантов Избавляемся от тяжёлых тестов Выстраиваем пирамиду тестирования здорового программиста

Слайд 58

Мутационное тестирование STRYKER, слайд 58
Спасибо за внимание!

Слайд 59

Мутационное тестирование STRYKER, слайд 59
Литература по теме
^ Наверх
X

Благодарим за оценку!

Мы будем признательны, если Вы так же поделитесь этой презентацией со своими друзьями и подписчиками.