Когда код «убивает», или зачем нам тестировать наши...
TRANSCRIPT
Когда код «убивает», или зачем нам тестировать наши продукты
Стрекаловский Олег
«R-Style Softlab»
Конференция «WebDev», Вологда
4 апреля 2015 г.
2
Как мы обычно делаем ЭТО
3
•Сформировали требования
Как мы обычно делаем ЭТО
4
•Сформировали требования
•Побежали пилить
Как мы обычно делаем ЭТО
5
•Сформировали требования
•Побежали пилить
Как мы обычно делаем ЭТО
•Пилим, пилим, пилим, …
6
•Сформировали требования
•Побежали пилить
Как мы обычно делаем ЭТО
•Пилим, пилим, пилим, …
•Наступает период ПСИ
7
•Сформировали требования
•Побежали пилить
Как мы обычно делаем ЭТО
•Пилим, пилим, пилим, …
•Наступает период ПСИ
•Конечно, внезапно обнаруживаем проблемы и недоработки в ТЗ!
8
•Сформировали требования
•Побежали пилить
Как мы обычно делаем ЭТО
•Пилим, пилим, пилим, …
•Наступает период ПСИ
•Конечно, внезапно обнаруживаем проблемы и недоработки в ТЗ!
Welcome To The Hell ;-)
Менеджеры
10
Тем временем у программистов …
11
Continues цейтнот у ручных тестировщиков
12
Внедренцев становится жалко
13
Наш «счастливый» клиент
14
Основная проблема разработки ПО
16
«Я опасаюсь, что мы потерпелипоражение в борьбе со сложностью систем»
Эдсгер ВибеДейкстра
Основная проблема разработки ПО
17
Почему вы не заботитесь о качестве вашего продукта?
18
Почему вы не заботитесь о качестве вашего продукта?
19
«В нашем продукте нет ошибок!»
20
Работаете с железом?
21
Управляете объектами в real-time?
22
Защищаете приватные данные?
23
Автоматизируете предприятия?
24
Работаете с диском пользователя?
25
Работаете с диском пользователя?
26
Создаете приложения с UI?
27
28
Game Dev?
29
Game Dev?
«Мы их всему научим, а они потом уйдут.»
30
«Мы не знаем, как этим эффективно заниматься.»
31
Путь к созданию надёжного ПО
32
33
•Осознание наличия проблемы
Путь к созданию надёжного ПО
34
•Осознание наличия проблемы
•Изучение опыта индустрии
Путь к созданию надёжного ПО
35
Тематические каналы YouTube
36
Конференции
37
Книги
38
•Осознание наличия проблемы
•Внедрение «Best Practices»:•Code Review•Автоматизация тестирования•Парное программирование
•Изучение опыта индустрии
Путь к созданию надёжного ПО
39
•Осознание наличия проблемы
•Внедрение «Best Practices»:•Code Review•Автоматизация тестирования•Парное программирование
•Изучение опыта индустрии
•Изменение подхода к написанию кода?!
Путь к созданию надёжного ПО
40
TDDALL CODE IS GUILTY
UNTIL PROVEN INNOCENT
Test Driven Development
TDD за 1 минуту
41
TDD дает кучу плюшек!
42
TDD дает кучу плюшек!
43
•Быстро находим ошибки
TDD дает кучу плюшек!
44
•Не боимся рефакторить код
•Быстро находим ошибки
TDD дает кучу плюшек!
45
•Не боимся рефакторить код
•Актуальная документация
•Быстро находим ошибки
TDD дает кучу плюшек!
46
•Не боимся рефакторить код
•Актуальная документация
•Быстро находим ошибки
•Меньше over-engineering’a
TDD дает кучу плюшек!
47
•Не боимся рефакторить код
•Актуальная документация
•Быстро находим ошибки
•Меньше over-engineering’a
•Более удобный для клиента API
TDD дает кучу плюшек!
48
•Не боимся рефакторить код
•Актуальная документация
•Быстро находим ошибки
•Меньше over-engineering’a
•Более удобный для клиента API
•Интрига при каждом запуске тестов
TDD – это хорошо, а с Agile – ещё лучше!
49
AgileTDD
Что нам всем даст тестирование
50
Что нам всем даст тестирование
51
•Хороший код - программистам
Что нам всем даст тестирование
52
•Много автотестов - тестировщикам
•Хороший код - программистам
Что нам всем даст тестирование
53
•Много автотестов - тестировщикам
•Хороший код - программистам
•Нормальную жизнь - внедренцам
Что нам всем даст тестирование
54
•Много автотестов - тестировщикам
•Хороший код - программистам
•Нормальную жизнь - внедренцам
•Уверенность - менеджерам
Что нам всем даст тестирование
55
•Много автотестов - тестировщикам
•Хороший код - программистам
•Нормальную жизнь - внедренцам
•Уверенность - менеджерам
•Непоправимое счастье – клиентам!
Выводы
Приложения ХардварФреймворки
Библиотеки Middleware
UI
57
58
Профессиональный подход
59
1. Найдите для своего языка, фреймворкаинструменты тестирования (unit-тестирование, функциональное и т.д.).
Профессиональный подход
60
1. Найдите для своего языка, фреймворкаинструменты тестирования (unit-тестирование, функциональное и т.д.).
1. Если готовых нет – плохо искали напишите сами, заопенсорсите!
Профессиональный подход
61
1. Найдите для своего языка, фреймворкаинструменты тестирования (unit-тестирование, функциональное и т.д.).
1. Если готовых нет – плохо искали напишите сами, заопенсорсите!
2. Если готовых нет и не можете их написать –не используйте этот язык или фреймворк!
Профессиональный подход
62
1. Найдите для своего языка, фреймворкаинструменты тестирования (unit-тестирование, функциональное и т.д.).
1. Если готовых нет – плохо искали напишите сами, заопенсорсите!
2. Если готовых нет и не можете их написать –не используйте этот язык или фреймворк!
2. Пишите тесты для вашего приложения.
Профессиональный подход
63
1. Найдите для своего языка, фреймворкаинструменты тестирования (unit-тестирование, функциональное и т.д.).
1. Если готовых нет – плохо искали напишите сами, заопенсорсите!
2. Если готовых нет и не можете их написать –не используйте этот язык или фреймворк!
2. Пишите тесты для вашего приложения.3. Автоматизируйте их прогон для получения быстрой
обратной связи.
Профессиональный подход
64
1. Найдите для своего языка, фреймворкаинструменты тестирования (unit-тестирование, функциональное и т.д.).
1. Если готовых нет – плохо искали напишите сами, заопенсорсите!
2. Если готовых нет и не можете их написать –не используйте этот язык или фреймворк!
2. Пишите тесты для вашего приложения.3. Автоматизируйте их прогон для получения быстрой
обратной связи.4. ???
Профессиональный подход
65
1. Найдите для своего языка, фреймворкаинструменты тестирования (unit-тестирование, функциональное и т.д.).
1. Если готовых нет – плохо искали напишите сами, заопенсорсите!
2. Если готовых нет и не можете их написать –не используйте этот язык или фреймворк!
2. Пишите тесты для вашего приложения.3. Автоматизируйте их прогон для получения быстрой
обратной связи.4. ???5. PROFIT !
Профессиональный подход
Тестирование – вот наш путь!
66
Начни сам и убеди начать других!
67
Личное обращение
Дяденьки и тетеньки, вы вместо очередного %bullshit%.js,лучше попишите тестов для вашего продукта, пожалуйста, а?
68
Спасибо за внимание!Вопросы?
slideshare.net/ssuser3c5f11
olegstrekalovsky.blogspot.ru
o.strekalovsky