SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
Про (юнит) тестирование

         Юревич Юрий

        http://pyobject.ru


   RuPyRu 2009, 6 июня, Омск.
Зачем нужны (юнит) тесты




  Тесты гарантируют, что юнит
  работает определенным образом
  юнит   функция, класс, метод
Что тестировать




   Хорошо тестируются
      “чистые” юниты:
          неинтерактивность → функциональные тесты
          минимум I/O (сеть, диск) → mock-объекты
          минимум БД → fixture
      stateless-юниты:
          работа юнита определяется входными данными
Как писать тесты




   Самое сложное   начать.
Как писать тесты



   TestBug driven development
       При создании:
        1.   Базовая функциональность юнита
        2.   Тест на базовую функциональность
        3.   Расширение функциональности юнита
        4.   Прогон базовых тестов
        5.   Тестирование крайних случаев
       Нашли баг:
        1. Пишем тест, который падает, если баг есть
        2. Исправляем баг
        3. Прогоняем тест
Тестирование legacy-кода
Самый главный вопрос



     Кто напишет тесты тестов?




    Факт из жизни: код тестов всегда больше кода юнита

Contenu connexe

Tendances

Критерии оценки презентации
Критерии оценки презентацииКритерии оценки презентации
Критерии оценки презентацииatwa515
 
КОФЕЙНЯ
КОФЕЙНЯКОФЕЙНЯ
КОФЕЙНЯOlegBon
 
заявка на участие Flash-Point 2010
заявка на участие Flash-Point 2010заявка на участие Flash-Point 2010
заявка на участие Flash-Point 2010Максим Гирин
 
Социально-психологический климат в организациии: понятие, факторы формирования
Социально-психологический климат в организациии: понятие, факторы формированияСоциально-психологический климат в организациии: понятие, факторы формирования
Социально-психологический климат в организациии: понятие, факторы формированияTarabukinaYulia
 
Ii test-iz-automatizacije а група
Ii test-iz-automatizacije а групаIi test-iz-automatizacije а група
Ii test-iz-automatizacije а групаMilos Smiljanic
 
Кретање под дејством силе теже
Кретање под дејством силе тежеКретање под дејством силе теже
Кретање под дејством силе тежеMilan Krstic
 
Покрывая мили на пути к Миллениуму; Introduction of the XO in Russia
Покрывая мили на пути к Миллениуму; Introduction of the XO in RussiaПокрывая мили на пути к Миллениуму; Introduction of the XO in Russia
Покрывая мили на пути к Миллениуму; Introduction of the XO in RussiaHarrie Vollaard
 
особенности группового поведения в организации
особенности группового поведения в организацииособенности группового поведения в организации
особенности группового поведения в организацииtheinterman
 
одесские подъезды
одесские подъездыодесские подъезды
одесские подъездыguestc2f6bc23
 
концепция региональной информатизации до 2010 года
концепция региональной информатизации до 2010 годаконцепция региональной информатизации до 2010 года
концепция региональной информатизации до 2010 годаVictor Gridnev
 
Инструкция
ИнструкцияИнструкция
ИнструкцияKet97
 
Plan Ivanova
Plan IvanovaPlan Ivanova
Plan IvanovaIrina29i
 
Растрова графіка
Растрова графікаРастрова графіка
Растрова графікаBorsukovaInna
 

Tendances (20)

Критерии оценки презентации
Критерии оценки презентацииКритерии оценки презентации
Критерии оценки презентации
 
Ocinuvannja Wiki Statya
Ocinuvannja Wiki StatyaOcinuvannja Wiki Statya
Ocinuvannja Wiki Statya
 
КОФЕЙНЯ
КОФЕЙНЯКОФЕЙНЯ
КОФЕЙНЯ
 
заявка на участие Flash-Point 2010
заявка на участие Flash-Point 2010заявка на участие Flash-Point 2010
заявка на участие Flash-Point 2010
 
Ocenka Pres2
Ocenka Pres2Ocenka Pres2
Ocenka Pres2
 
крит през
крит презкрит през
крит през
 
Suzuki
SuzukiSuzuki
Suzuki
 
Социально-психологический климат в организациии: понятие, факторы формирования
Социально-психологический климат в организациии: понятие, факторы формированияСоциально-психологический климат в организациии: понятие, факторы формирования
Социально-психологический климат в организациии: понятие, факторы формирования
 
хранители воды
хранители водыхранители воды
хранители воды
 
Ii test-iz-automatizacije а група
Ii test-iz-automatizacije а групаIi test-iz-automatizacije а група
Ii test-iz-automatizacije а група
 
Krossword
KrosswordKrossword
Krossword
 
Кретање под дејством силе теже
Кретање под дејством силе тежеКретање под дејством силе теже
Кретање под дејством силе теже
 
Ocinuvannja Prezetazii
Ocinuvannja PrezetaziiOcinuvannja Prezetazii
Ocinuvannja Prezetazii
 
Покрывая мили на пути к Миллениуму; Introduction of the XO in Russia
Покрывая мили на пути к Миллениуму; Introduction of the XO in RussiaПокрывая мили на пути к Миллениуму; Introduction of the XO in Russia
Покрывая мили на пути к Миллениуму; Introduction of the XO in Russia
 
особенности группового поведения в организации
особенности группового поведения в организацииособенности группового поведения в организации
особенности группового поведения в организации
 
одесские подъезды
одесские подъездыодесские подъезды
одесские подъезды
 
концепция региональной информатизации до 2010 года
концепция региональной информатизации до 2010 годаконцепция региональной информатизации до 2010 года
концепция региональной информатизации до 2010 года
 
Инструкция
ИнструкцияИнструкция
Инструкция
 
Plan Ivanova
Plan IvanovaPlan Ivanova
Plan Ivanova
 
Растрова графіка
Растрова графікаРастрова графіка
Растрова графіка
 

En vedette

PyCon UA 2011: Test Infected
PyCon UA 2011: Test InfectedPyCon UA 2011: Test Infected
PyCon UA 2011: Test InfectedYury Yurevich
 
Иван Иноземцев — Fantom
Иван Иноземцев — FantomИван Иноземцев — Fantom
Иван Иноземцев — FantomYury Yurevich
 
ekb.py: KISS REST API
ekb.py: KISS REST APIekb.py: KISS REST API
ekb.py: KISS REST APIYury Yurevich
 
Almost Success Story: Unix to Linux migration
Almost Success Story: Unix to Linux migrationAlmost Success Story: Unix to Linux migration
Almost Success Story: Unix to Linux migrationYury Yurevich
 
Александр Гладыш — Lua
Александр Гладыш — LuaАлександр Гладыш — Lua
Александр Гладыш — LuaYury Yurevich
 
Александр Гладыш — Visual editor for business logic in Lua and JS
Александр Гладыш — Visual editor for business logic in Lua and JSАлександр Гладыш — Visual editor for business logic in Lua and JS
Александр Гладыш — Visual editor for business logic in Lua and JSYury Yurevich
 
Building data flows with Celery and SQLAlchemy
Building data flows with Celery and SQLAlchemyBuilding data flows with Celery and SQLAlchemy
Building data flows with Celery and SQLAlchemyRoger Barnes
 
Inter-process data exchange in Python
Inter-process data exchange in PythonInter-process data exchange in Python
Inter-process data exchange in PythonYehor Nazarkin
 

En vedette (10)

PyCon UA 2011: Test Infected
PyCon UA 2011: Test InfectedPyCon UA 2011: Test Infected
PyCon UA 2011: Test Infected
 
Иван Иноземцев — Fantom
Иван Иноземцев — FantomИван Иноземцев — Fantom
Иван Иноземцев — Fantom
 
ekb.py: KISS REST API
ekb.py: KISS REST APIekb.py: KISS REST API
ekb.py: KISS REST API
 
Almost Success Story: Unix to Linux migration
Almost Success Story: Unix to Linux migrationAlmost Success Story: Unix to Linux migration
Almost Success Story: Unix to Linux migration
 
SQLAlchemy Seminar
SQLAlchemy SeminarSQLAlchemy Seminar
SQLAlchemy Seminar
 
Александр Гладыш — Lua
Александр Гладыш — LuaАлександр Гладыш — Lua
Александр Гладыш — Lua
 
About Python
About PythonAbout Python
About Python
 
Александр Гладыш — Visual editor for business logic in Lua and JS
Александр Гладыш — Visual editor for business logic in Lua and JSАлександр Гладыш — Visual editor for business logic in Lua and JS
Александр Гладыш — Visual editor for business logic in Lua and JS
 
Building data flows with Celery and SQLAlchemy
Building data flows with Celery and SQLAlchemyBuilding data flows with Celery and SQLAlchemy
Building data flows with Celery and SQLAlchemy
 
Inter-process data exchange in Python
Inter-process data exchange in PythonInter-process data exchange in Python
Inter-process data exchange in Python
 

About (unit) testing

  • 1. Про (юнит) тестирование Юревич Юрий http://pyobject.ru RuPyRu 2009, 6 июня, Омск.
  • 2. Зачем нужны (юнит) тесты Тесты гарантируют, что юнит работает определенным образом юнит функция, класс, метод
  • 3. Что тестировать Хорошо тестируются “чистые” юниты: неинтерактивность → функциональные тесты минимум I/O (сеть, диск) → mock-объекты минимум БД → fixture stateless-юниты: работа юнита определяется входными данными
  • 4. Как писать тесты Самое сложное начать.
  • 5. Как писать тесты TestBug driven development При создании: 1. Базовая функциональность юнита 2. Тест на базовую функциональность 3. Расширение функциональности юнита 4. Прогон базовых тестов 5. Тестирование крайних случаев Нашли баг: 1. Пишем тест, который падает, если баг есть 2. Исправляем баг 3. Прогоняем тест
  • 7. Самый главный вопрос Кто напишет тесты тестов? Факт из жизни: код тестов всегда больше кода юнита