Когда код «убивает», или зачем нам тестировать наши...

Post on 06-Aug-2015

167 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

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

Спасибо за внимание!Вопросы?

o.strekalovsky@yandex.ru

slideshare.net/ssuser3c5f11

olegstrekalovsky.blogspot.ru

o.strekalovsky

top related