84
Тестирование для не-тестировщиков Простые мысли про высокое Юлия Нечаева

Тестирование для не-тестировщиков

Embed Size (px)

DESCRIPTION

Вебинар "Тестирование для не-тестировщиков", организатор - УЦ Люксофт, 19 ноября 2009

Citation preview

Page 1: Тестирование для не-тестировщиков

Тестирование для не-тестировщиков

Простые мысли про высокое

Юлия Нечаева

Page 2: Тестирование для не-тестировщиков

Кто я?

• Тестировщик• Тест-менеджер____________________Опыт 4 года

• Инструктор• Активный участник конференций

2

Page 3: Тестирование для не-тестировщиков

О чем вебинар

1. Что такое тестирование?2. Зачем нужно тестировать?3. Кто должен тестировать?

3

Page 4: Тестирование для не-тестировщиков

О чем вебинар

1. Что такое тестирование?2. Зачем нужно тестировать?3. Кто должен тестировать?

Цель: не научить, а натолкнуть вас на мысли.

4

Page 5: Тестирование для не-тестировщиков

План рассказа

1. ЧТО? Тестирование.2. ЗАЧЕМ? Цели тестирования.3. КТО? Кто должен тестировать?

Сравнивайте и делайте выводы!

5

Page 6: Тестирование для не-тестировщиков

1. Что? Тестирование.

6

Page 7: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 0: «Качество – это соответствие ожиданиям заказчика (пользователя).»

(Филипп Крухтен)

7

Page 8: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 0: «Качество – это соответствие ожиданиям заказчика (пользователя).»

(Филипп Крухтен)

В итоге, всё-таки, пользователя.

8

Page 9: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 1: «Тестирование программного обеспечения — процесс выявления ошибок в программном обеспечении »

(Википедия)

9

Page 10: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 1: «Тестирование программного обеспечения — процесс выявления ошибок в программном обеспечении »

(Википедия) Куча вопросов: - Каких ошибок? - До каких пор мы будем их выявлять? - Сколько их должно быть? - Каким образом мы должны их выявлять? - … … … 10

Page 11: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 2: «Правильное определение тестирования таково: Тестирование — процесс выполнения программы с намерением найти ошибки.»

(Интернет)

11

Page 12: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 2: «Правильное определение тестирования таково: Тестирование — процесс выполнения программы с намерением найти ошибки.»

(Интернет) Содержит не цель, а намерение.

12

Page 13: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 3. «Тестирование – это сверка реализации со спецификацией.»

(Народное творчество)

13

Page 14: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 3. «Тестирование – это сверка реализации со спецификацией.»

(Народное творчество)

Где здесь ожидания пользователя?

14

Page 15: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 4: «Тестирование программного обеспечения - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом.

(IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004)

15

Page 16: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 4: «Тестирование программного обеспечения - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом.

(IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004)

Содержит в себе и цель, и метод.16

Page 17: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 5: «Тестирование – это процесс позволяющий определить корректность, полноту и качество разработанного программного продукта.

(тестировщики.ру)

Достаточно просто и правдиво.

17

Page 18: Тестирование для не-тестировщиков

1.1. Вид сверху. Определения.

Определение 5: «Тестирование – это процесс позволяющий определить корректность, полноту и качество разработанного программного продукта.

(тестировщики.ру)

Достаточно просто и правдиво.

Нельзя слепо следовать определениям.

18

Page 19: Тестирование для не-тестировщиков

1.2. Взгляд разработчика на тестирование.

• «Подчистка» за разработчиком• Поиск ошибок• Вынесено, потому что у нас: - нет времени - нет сил - нет желания - недостойное занятие

19

Page 20: Тестирование для не-тестировщиков

1.2. Взгляд разработчика на тестирование.

• «Подчистка» за разработчиком• Поиск ошибок• Вынесено, потому что у нас: - нет времени - нет сил - нет желания - недостойное занятие

Торчит хвост определения 1.

20

Page 21: Тестирование для не-тестировщиков

1.3. Взгляд тестировщика на тестирование.

• Без нас никуда: - у них не тот склад ума - нельзя тестировать свою работу - не смотрят, как пользователь

• При недоверии к разработчикам полное доверие аналитикам

- спецификация – это Библия

21

Page 22: Тестирование для не-тестировщиков

1.3. Взгляд тестировщика на тестирование.

• Без нас никуда: - у них не тот склад ума - нельзя тестировать свою работу - не смотрят, как пользователь

• При недоверии к разработчикам полное доверие аналитикам

- спецификация – это Библия

Видны происки определений 2 и 3.

22

Page 23: Тестирование для не-тестировщиков

1.4. Взгляд менеджера на тестирование.

• Редко влазит: - ставит лишь задачу и сроки

• А лучше бы влезал: - бизнес-область - приоритеты - демонстрация

23

Page 24: Тестирование для не-тестировщиков

1.4. Взгляд менеджера на тестирование.

• Редко влазит: - ставит лишь задачу и сроки

• А лучше бы влезал: - бизнес-область - приоритеты - демонстрация

Вообще не знает определений. Может и к лучшему.

24

Page 25: Тестирование для не-тестировщиков

1.5. Взгляд руководителя на тестирование.

• Считает, что внедрение тестирование повысит качество само по себе

25

Page 26: Тестирование для не-тестировщиков

1.5. Взгляд руководителя на тестирование.

• Считает, что внедрение тестирование повысит качество само по себе

В компанию к менеджеру. Книжки читать.

26

Page 27: Тестирование для не-тестировщиков

1.6. Взгляд программного продукта

27

Page 28: Тестирование для не-тестировщиков

1.6. Взгляд программного продукта

Вот, кто всё знает, только сказать не может.

28

Page 29: Тестирование для не-тестировщиков

1.7. Промежуточные выводы.

• Тестирование – это не обеспечение качества, а всего лишь его контроль

• На качество влияет, что делает команда с полученными показателями

• Для улучшения ситуации надо понимать, что сейчас?

29

Page 30: Тестирование для не-тестировщиков

1.7. Промежуточные выводы.

• Тестирование – это не обеспечение качества, а всего лишь его контроль

• На качество влияет, что делает команда с полученными показателями

• Для улучшения ситуации надо понимать, что сейчас?

У всей команды должно быть одно видение тестирования.

30

Page 31: Тестирование для не-тестировщиков

1.8. Тестирование. Какое?

• Не нашли или нашли мало ошибок. Плохое?

- а если это последний релиз-кандидат? - а если это приемочный тест?

31

Page 32: Тестирование для не-тестировщиков

1.8. Тестирование. Какое?

• Нашли много или очень много ошибок. Хорошее?

- тогда разработка плохая? - а если раз за разом?

32

Page 33: Тестирование для не-тестировщиков

1.8. Тестирование. Какое?

• Весь код (все требования) покрыты тестами. Полное?

- а как быть с невыявленными требованиями?

33

Page 34: Тестирование для не-тестировщиков

1.8. Тестирование. Какое?

• Не весь код (не все требования) покрыты. Разное покрытие

Недостаточное?

- недостаточное для чего?

34

Page 35: Тестирование для не-тестировщиков

1.8. Тестирование. Какое?

• Не весь код (не все требования) покрыты. Разное покрытие

Недостаточное?

- недостаточное для чего?

Слепое навешивание ярлыков –это плохо.

Можно промахнуться.

35

Page 36: Тестирование для не-тестировщиков

1.9. Тестирование. Сколько?

• Бойтесь голых метрик• Метрика – это лишь сигнал

36

Page 37: Тестирование для не-тестировщиков

1.9. Тестирование. Сколько?

• Бойтесь голых метрик• Метрика – это лишь сигналВсего лишь сигнал, что надо идти и

копать.

37

Page 38: Тестирование для не-тестировщиков

1.10. Тестирование. Что же?

• Тестирование – это часть процесса разработки ПО, которое в совокупности с действиями остальной проектной команды помогает повысить качество ПП

• Само по себе может: - измерить - подтвердить - опровергнуть

38

Page 39: Тестирование для не-тестировщиков

1.10. Тестирование. Что же?

• Тестирование – это часть процесса разработки ПО, которое в совокупности с действиями остальной проектной команды помогает повысить качество ПП

• Само по себе может: - измерить - подтвердить - опровергнуть

Главный вопрос: ЗАЧЕМ?

39

Page 40: Тестирование для не-тестировщиков

2. Зачем? Цели.

40

Page 41: Тестирование для не-тестировщиков

2.1. Цели. Классификация.

• По объекту (что тестируем)• По субъекту (кто тестирует)

41

Page 42: Тестирование для не-тестировщиков

2.2. Цели по объекту

• Уровень 1 – часть приложения (модуль, экран, функциональность)

- поиск ошибок в требованиях (на тестируемость) - поиск ошибок в реализации - проверка работоспособности - оценка удобства - измерение характеристик - проверка тезиса - … … …

42

Page 43: Тестирование для не-тестировщиков

2.2. Цели по объекту

• Уровень 2 – приложение в целом - поиск ошибок в требованиях - поиск ошибок в реализации - проверка работоспособности - оценка удобства - измерение характеристик - проверка способности к интеграции - проверка устойчивости, восстанавливаемости ,

стабильности, надежности - … … …

43

Page 44: Тестирование для не-тестировщиков

2.2. Цели по объекту

• Уровень 3 - продукт (идея, среда обитания, задачи и потребности пользователей, конкурентная ситуация и рынок, маркетинговые задачи и задачи бизнеса и т.п.)

Продукт <> приложение

44

Page 45: Тестирование для не-тестировщиков

2.2. Цели по объекту

• Уровень 3 - продукт (идея, среда обитания, задачи и потребности пользователей, конкурентная ситуация и рынок, маркетинговые задачи и задачи бизнеса и т.п.)

Продукт <> приложение

Тестировщики здесь редкие гости. К сожалению.

45

Page 46: Тестирование для не-тестировщиков

2.2. Цели по объекту

• Уровень 3 – продукт - актуальность - своевременность - окупаемость - привлекательность для аудитории - удобство для аудитории - позиционирование на рынке - соответствие требованиям бизнеса - … … … 46

Page 47: Тестирование для не-тестировщиков

2.2. Цели по объекту

• Уровень 3 – продукт - актуальность - своевременность - окупаемость - привлекательность для аудитории - удобство для аудитории - позиционирование на рынке - соответствие требованиям бизнеса - … … …

Вот где оно, обеспечение качества.

47

Page 48: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 1 – тестировщик - поиск ошибок - сверка со спецификацией - измерение характеристик - контроль реакции на результаты - слежение за не-ухудшением - резолюция о состоянии - … … …

48

Page 49: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 1 – тестировщик - поиск ошибок - сверка со спецификацией - измерение характеристик - контроль реакции на результаты - слежение за не-ухудшением - резолюция о состоянии - … … …

То есть, он выполняет программу на определенном наборе тестов для достижения поставленных

целей.

49

Page 50: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 2 – команда тестирования - разработка плана и стратегии - тестирование - резолюция о состоянии - коммуникация - носитель информации - носитель экспертизы - … … …

50

Page 51: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 2 – команда тестирования - разработка плана и стратегии - тестирование - резолюция о состоянии - коммуникация - носитель информации - носитель экспертизы - … … …

То есть, здесь определяется тот набор тестов, который

максимально эффективно поможет достичь цели.

51

Page 52: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 3 – команда разработки - создать качественный продукт

52

Page 53: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 3 – команда разработки - создать качественный продуктТестирование даёт картину

состояния.

53

Page 54: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 4 – команда продукта - идея - разработка - продвижение (внедрение) - лавры

54

Page 55: Тестирование для не-тестировщиков

2.3. Цели по субъекту

• Уровень 4 – команда продукта - идея - разработка - продвижение (внедрение) - лавры

Тестирование на этом уровне – часть разработки. Ирония судьбы.

55

Page 56: Тестирование для не-тестировщиков

2.4. Цели. Важность.

• Цели нужно ставить • В зависимости от целей меняются: - взгляды - подходы - действия - настроения• Цели должны быть прозрачными

56

Page 57: Тестирование для не-тестировщиков

2.4. Цели. Важность.

• Цели нужно ставить • В зависимости от целей меняются: - взгляды - подходы - действия - настроения• Цели должны быть прозрачными

Цели тестирования должны служить целям продукта.

57

Page 58: Тестирование для не-тестировщиков

2.5. Виды тестирования.

• Выбор в зависимости от целей

58

Page 59: Тестирование для не-тестировщиков

2.5. Виды тестирования.

• Выбор в зависимости от целей

Для максимальной эффективности.

59

Page 60: Тестирование для не-тестировщиков

2.5. Виды тестирования.

• Для целей уровня 1 (часть приложения): - методы тестирования требований - функциональное - нагрузочное - юзабилити - объемное

60

Page 61: Тестирование для не-тестировщиков

2.5. Виды тестирования.

• Для целей уровня 2 (приложение в целом): - методы тестирования требований - функциональное - нагрузочное - юзабилити - объемное, восстанавливаемости - надежности, стресс

61

Page 62: Тестирование для не-тестировщиков

2.5. Виды тестирования.

• Для целей уровня 3 (продукт): - методы анализа требований - постановка целей тестирования - приоритеты и детализация - критерии окончания тестирования - степень Good Enough - организация процесса тестирования - обеспечение реакции - разработка плана и стратегии 62

Page 63: Тестирование для не-тестировщиков

2.6. Стратегия тестирования.

• Составляется на основе целей• С ней должны быть ознакомлены все

участники разработки

63

Page 64: Тестирование для не-тестировщиков

2.6. Стратегия тестирования.

• Составляется на основе целей• С ней должны быть ознакомлены все

участники разработкиТеперь мы знаем что, зачем и как.

А кто же будет это делать?

64

Page 65: Тестирование для не-тестировщиков

3. Кто должен тестировать?

65

Page 66: Тестирование для не-тестировщиков

3.1. Тестировщики, конечно!

• У нас есть: - умения - навыки - опыт - знания - окружения - нам за это платят

66

Page 67: Тестирование для не-тестировщиков

3.2. Почему не разработчики?

«Мы и так пишем хороший код, давай покажу, что все работает».

• Не смотрит глазами пользователя• Не в курсе аудитории продукта• «Замыленный взгляд»

67

Page 68: Тестирование для не-тестировщиков

3.2. Почему не разработчики?

«Мы и так пишем хороший код, давай покажу, что все работает».

• Не смотрит глазами пользователя• Не в курсе аудитории продукта• «Замыленный взгляд»

Программисты должны программировать!

68

Page 69: Тестирование для не-тестировщиков

3.3. Почему не менеджер?

«Я же лучше всех знаю, чего хочет заказчик!»

• Не участник, а организатор процесса

69

Page 70: Тестирование для не-тестировщиков

3.3. Почему не менеджер?

«Я же лучше всех знаю, чего хочет заказчик!»

• Не участник, а организатор процессаОставьте менеджеру

менеджерово!

70

Page 71: Тестирование для не-тестировщиков

3.4. Почему же разработчики?

• Обнаружение дефектов на уровне кода

71

Page 72: Тестирование для не-тестировщиков

3.4. Почему же разработчики? Пример.

• Обнаружение дефектов на уровне кода

72

Page 73: Тестирование для не-тестировщиков

3.4. Почему же разработчики?

• Обнаружение дефектов на уровне кода• Смоук (приемочное) тестирование на

работоспособность билда• Тестирование требований на реализуемость

73

Page 74: Тестирование для не-тестировщиков

3.4. Почему же разработчики?

• Обнаружение дефектов на уровне кода• Смоук (приемочное) тестирование на

работоспособность билда• Тестирование требований на реализуемость

Вопреки всему.

74

Page 75: Тестирование для не-тестировщиков

3.4. Почему же менеджер?

• Обнаружение «жизненных» дефектов• Самые-пресамые невыявленные требования

75

Page 76: Тестирование для не-тестировщиков

3.4. Почему же менеджер? Пример.

• Обнаружение «жизненных» дефектов• Самые-пресамые невыявленные требования

Control Panel > Regional and Language Options > Advances > ‘Select a language to match the language version of the non-Unicode programs you want to use ’ 76

Page 77: Тестирование для не-тестировщиков

3.4. Почему же менеджер?

• Обнаружение «жизненных» дефектов• Самые-пресамые невыявленные требования

77

Page 78: Тестирование для не-тестировщиков

3.4. Почему же менеджер?

• Обнаружение «жизненных» дефектов• Самые-пресамые невыявленные требования

Пусть и он в поле поработает.

78

Page 79: Тестирование для не-тестировщиков

4. Заключение.

79

Page 80: Тестирование для не-тестировщиков

4.1. Магический треугольник.

80

Пользователи Команда

Бизнес

Качество

Page 81: Тестирование для не-тестировщиков

4.2. И всё-таки…

• Общее видение• Определение целей• Прозрачность целей• Сотрудничество в достижении

81

Page 82: Тестирование для не-тестировщиков

4.2. И всё-таки…

• Общее видение• Определение целей• Прозрачность целей• Сотрудничество в достижении

Умение пользоваться инструментом, даже при

высоком уровне умения с ним обращаться, неэффективно без понимания глобальных целей.

82

Page 83: Тестирование для не-тестировщиков

Спасибо.

• Вам• Люксофту• Моим учителям• Моим коллегам – тестировщикам,

разработчикам, менеджерам, руководителям. Они - тоже мои учителя.

• Пользователям

83

Page 84: Тестирование для не-тестировщиков

Контакты.

Я пишу: http://jnechaeva.blogspot.com

Я общаюсь: [email protected]

Skype: julia.nechaeva

ICQ: 315399166

84