test-driven development (anton dmitriyev)
TRANSCRIPT
Automated Software Testingby ANTStorm
Friday, 10 September 2010
Что сегодня за день?
Friday, 10 September 2010
Friday, 10 September 2010
9 сентября 1945 года, учеными Гарвардского университета, официально был зарегистрирован первый в истории баг.
Ученые Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле.Проделанная работа требовала описания, и слово было найдено — «debugging» (дословно: избавление от насекомого) — так и ныне называется процесс выявления и устранения багов — причин неправильной работы компьютера.Извлеченное насекомое было вклеено в техдневник, с сопроводительной надписью: «First actual case of bug being found» (первый обнаруженный баг), и в дальнейшем передано в музей вычислительной техники.Этот забавный факт положил начало использованию слова баг в качестве ошибки.
Friday, 10 September 2010
Добрый день,меня зовут Антон и я занимаюсь тестированием софта уже 3 года...
Friday, 10 September 2010
Хмммм...Разработчик?Тестированием?3 года?Выпей йаду!
Friday, 10 September 2010
Īstie vīri softu netestē!
Friday, 10 September 2010
Зачем оно нужно?
Friday, 10 September 2010
Зачем?
улучшить разработку
облегчить жизнь
избавиться от множества проблем
значительно улучшить качество кода
Friday, 10 September 2010
Классическая проблема
Friday, 10 September 2010
Мы можем сделать этот проэкт:
быстро
качественно
дёшего
Friday, 10 September 2010
Выбирите любые два пункта...
быстро
качественно
дёшего
Friday, 10 September 2010
А ведь хочется всё сразу...
Friday, 10 September 2010
Тестирование позволяет нам сделать любой проэкт
немного быстрее
немного качественнее
немного дешевле
Friday, 10 September 2010
Быстрее
Friday, 10 September 2010
Время, необходимое для исправления ошибки на разных стадиях проэкта
0
250
500
750
1000
Проэктирование Разработка Бэта Продукция
Friday, 10 September 2010
Качественнее
Friday, 10 September 2010
меньше потенциальных ошибок
более красивый, переиспользуемый код
весомый аргумент для клиента...
Friday, 10 September 2010
Дешевле
Friday, 10 September 2010
Чё? Серьёзно?
Friday, 10 September 2010
Стоимость исправления ошибки на разных стадиях проэкта
0
250
500
750
1000
Проэктирование Разработка Бэта Продукция
Friday, 10 September 2010
И что же это за зверь?
Friday, 10 September 2010
TDD
Friday, 10 September 2010
ТДД? ЁПРСТ?
Friday, 10 September 2010
Test Driven Development
Friday, 10 September 2010
Разработка, оринтированная на тестирование
Friday, 10 September 2010
Разработка, оринтированная на тестированиечто-то типо того...
Friday, 10 September 2010
Тестирование
Планирование
Реализация
Тестирование
Friday, 10 September 2010
TDD
Планирование
Тестирование
Реализация
Friday, 10 September 2010
What?
Friday, 10 September 2010
Точнее...Планирование
Тестирование
Реализация
Тестирование
Friday, 10 September 2010
Ещё точнее...Планирование
Тестирование
Реализация
Тестирование
Friday, 10 September 2010
И в цвете...Планирование
Тестирование
Реализация
Тестирование
Friday, 10 September 2010
Как это происходит?
Планирование: придумываем функционал, который надо реализовать
Тестирование: пишем тест, проверяющий нашу задумку
Реализация: она и в Африке...
Тестирование: тест должен успешно выполняться
Friday, 10 September 2010
В чём фокус?
новый функционал реализуется до момента выполнения теста
ни строчкой больше
после этого принимаемся за рефакторинг
Friday, 10 September 2010
Red-Green-Refactor concept
Red RefactorGreen
Friday, 10 September 2010
BDD
Friday, 10 September 2010
Behavior Driven Development
Friday, 10 September 2010
Тоже самое, что и TDD. Но...
пишем не тесты, а спецификацию
тестируем не строки кода, а поведение
в результате получаем бонус - спецификацию
Friday, 10 September 2010
Friday, 10 September 2010
Чтобы тестирование было эффективным, его нужно автоматизировать
Friday, 10 September 2010
DEMO
Friday, 10 September 2010
Что же нам дают тесты, кроме потраченного времени на их написание?
:)
Friday, 10 September 2010
Бонусы
уверенность в том, что всё работает так, как было запланированно
уверенность в том, что никто случайно не сломает то, что мы написали
уверенность в том, что мы не сломаем то, что писал кто-то другой
спецификация, позволяющая новым участникам проэкта быстро в него вникнуть
Friday, 10 September 2010
Тестирование UI
Friday, 10 September 2010
Берём 10 тестировщиков...
Friday, 10 September 2010
И лишаем их работы...
:)
Friday, 10 September 2010
Selenium
Friday, 10 September 2010
Selenium
позволяет имитировать работу человека за компьютером
просто и удобный интерфейс
позволяет тестировать UI
в том числе и AJAX
Friday, 10 September 2010
И напоследок...
Friday, 10 September 2010
Хорошая практика в командах
не разделять код на “твой”, “мой” и “того чувака в красной майке”
увидел проблему - почини её
сломал чей-то тест - почини
Friday, 10 September 2010