Тестирование веба без тестировщиков — успех или провал – Татьяна Рыженкова и ...FrontTalks Conference
За четыре года разработки компонентов пользовательского интерфейса на JavaScript мы в DevExpress наладили тестирование на разных уровнях, изобрели пару велосипедов и пришли к системе, помогающей находить ошибки без единого тестировщика. Это обзорный доклад об истории тестирования в одной конкретной команде.
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QAFest
- Цепочка документов, которые принуждают тестировщика создавать тест-кейсы;
- Как жить, когда до тест-кейсов "не хватает дыхания";
- В чем разница между "функцией" и "функциональной возможностью", и что из этого требует внимания тестировщика
Доклад с конференции Стачка 2017
Нагрузочное тестирование в Lazada
* Как мы до этого дошли и зачем нам это надо
* Что мы используем готового и что пришлось разработать самим
* Как мы анализируем результаты тестов и какую статистику собираем
* Почему мы доверяем результатам тестирования
* Как мы стреляем по продакшену и ничего не боимся
* Какие ресурсы нужны для построения системы нагрузочного тестирования
* Что мы хотим сделать в будущем
Слайды к вебинару, который прошел 18.11.2013.
В ходе вебинара вы:
- Узнаете о том, как из 7 простых принципов возникает стройная тестовая система
- Поймете почему тестирование никогда не станет полностью автоматизованым
- Узнаете как на практике применять каждый из основных принципов
Больше информации по ссылке: http://coach.ak-itconsulting.com/2013/11/7-principov-testirovaniya/
Юнит тестирование, Александр Прукс, 30 Марта 2014ForkConf
Модульное тестирование, или юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.
Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.
Слады для выступления на GDG DevFest Бишкек, 2014.
https://plus.google.com/events/cgschph5k60ua1ldq0b06i3o3r8
Выступление сделано по книжке "Как тестируют в Google"
Тестирование веба без тестировщиков — успех или провал – Татьяна Рыженкова и ...FrontTalks Conference
За четыре года разработки компонентов пользовательского интерфейса на JavaScript мы в DevExpress наладили тестирование на разных уровнях, изобрели пару велосипедов и пришли к системе, помогающей находить ошибки без единого тестировщика. Это обзорный доклад об истории тестирования в одной конкретной команде.
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QAFest
- Цепочка документов, которые принуждают тестировщика создавать тест-кейсы;
- Как жить, когда до тест-кейсов "не хватает дыхания";
- В чем разница между "функцией" и "функциональной возможностью", и что из этого требует внимания тестировщика
Доклад с конференции Стачка 2017
Нагрузочное тестирование в Lazada
* Как мы до этого дошли и зачем нам это надо
* Что мы используем готового и что пришлось разработать самим
* Как мы анализируем результаты тестов и какую статистику собираем
* Почему мы доверяем результатам тестирования
* Как мы стреляем по продакшену и ничего не боимся
* Какие ресурсы нужны для построения системы нагрузочного тестирования
* Что мы хотим сделать в будущем
Слайды к вебинару, который прошел 18.11.2013.
В ходе вебинара вы:
- Узнаете о том, как из 7 простых принципов возникает стройная тестовая система
- Поймете почему тестирование никогда не станет полностью автоматизованым
- Узнаете как на практике применять каждый из основных принципов
Больше информации по ссылке: http://coach.ak-itconsulting.com/2013/11/7-principov-testirovaniya/
Юнит тестирование, Александр Прукс, 30 Марта 2014ForkConf
Модульное тестирование, или юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.
Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.
Слады для выступления на GDG DevFest Бишкек, 2014.
https://plus.google.com/events/cgschph5k60ua1ldq0b06i3o3r8
Выступление сделано по книжке "Как тестируют в Google"
лившиц владимир - независимое тестирование мифMagneta AI
Сюжет этой короткометражки рассказывает о том, как можно трансформировать «незавсимую» команду тестирования для обеспечения качества в нескольких Scrum командах (работающих в одном известном инвест-банке). Это почти что боевик о ломке устоявшихся принципов и небоязни меняться. Обсуждается вопрос: приносят тест-кейсы пользу? Тут есть немного философии: отношения тестировщиков и не совсем к тестированию и качеству в Agile командах.
Стратегия тестирования крупного проекта в условиях Agile разработки v2Magneta AI
Евгений Тян, Аскон (Санкт-Петербург)
Ведущий разработкчик компании Аскон г. Санкт-Петербург. В течении 5 лет занимаюсь разработкой ПО для проектирования в области архитектуры и строительства. Обычно это крупные проекты в которых сроки разработки от 1 года. Сферы интересов: гибкие методологии разработки, контроль качества, 3D графика, алгоритмы, хранение данных, data mining, diving =)
В крупном проекте со временем начинает ломаться то, что раньше работало. На текущей итерации исправляем баги внесенные на прошлых, проект буксует. Необходимо постоянно поддерживать качество продукта, ведь он отдается заказчику на каждом Demo. Существует множество программных средств для регрессионного тестирования, но у всех свои ограничения. Мой доклад об опыте разработки и внедрения системы регрессионного тестирования в компании "Аскон", о том как она встроилась в agile процесс, какие проблемы возникали в ее использовании. Приходите!
4. Регрессионная спираль смерти
Трудозатраты в зависимости от количества фич
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Начальный этап Больше фич Еще больше фич Коллапс
Ряд 3 Тестирование
18. Mocks & Stubs
Stub Mock
Не может провалить тест Может провалить тест
Проверяет, были ли вызваны SUT
Реагирует заданным образом методы замоканного объекта
на внешние
Используйте не более одного
воздействия, предоставляя мока для одного теста. Правда.
данные или некий контекст для
SUT
19. Что делать со старым кодом?
Приоритезировать объекты, которые нужно покрыть тестами
Написать интеграционные тесты для облегчения рефакторинга
Провести рефакторинг для избавления от внешних зависимостей
Написать юнит-тесты
22. Старайтесь тестировать фичи
Именно покрытие автоматическими тестами фич, несущих ценность
для бизнеса, позволяет избежать разрастания регрессионной спирали
смерти
Фичи медленнее изменяются со временем. Если требования к фиче
все-таки изменились, хорошо начать с того, чтобы модифицировать
тесты под новые требования, а уже потом – код, под новые
(падающие!) тесты
Тесты на фичу, написанные до еѐ реализации, позволяют успешно
реализовать YAGNI-принцип и могут служить одним из критериев
приемки
24. Юнит тесты
Быстрые
System Under Test == Class Under Test
Изменение тестируемого класса с большой вероятностью приведет к
поломке тестов.
25. Приемочные тесты
• Не используют (в идеале) фейки
• Тестируют конкретные бизнес-фичи
• Более устойчивы – изменения
обычно не приводят к поломке тестов
26. UI тесты
Фреймворки: Coded UI test project, Selenium
Медленные
Требуют специального окружения, где будет разворачиваться
приложение
28. Аргументы против тестов
У нас нет времени, нужно писать код!
Тесты только мешают – постоянно приходится переписывать!
29. Как же не бросить их писать?
Принять наличие тестов, как одно из условий DoD
Проводить Code Review тестов
Делиться опытом внутри команды и между командами
30. Резюме
Автоматические тесты ускоряют процесс разработки
Чтобы тесты выполняли свои функции, они должны быть написаны
вовремя, запускаться автоматически, быть читаемыми и надежными
Невыполнение хотя бы одного из условий скорее всего приведет к
скопищу бесполезных тестов, которые проще отключить, чем
разбираться как они работают
Делитесь опытом – вместе мы сильнее
31. Рекомендации
• The Art of Unit Testing – Roy Osherove
• Pluralsight – TDD course,
• Pluralsight – Outside-in TDD