Введение в тестирование
Из этого занятия мы узнаем:
История тестирования
История развития тестирования
1945г.:
60-е: исчерпывающее тестирование
70-е: Подтверждение правильности работы ПО
Парадокс тестирования
Парадокс тестирования:
80-е: Предупреждение дефектов
90-е: Обеспечение качества
2000-е: Тестирование и бизнес
Почему тестирование так важно?
Кто такой тестировщик и чем он занимается??
Хороший тестировщик, кто он?
Мифы о профессии
Миф 1: Monkey clicking (тестировщик-кликальщик)
Миф 2: Тестирование – это магия
Миф 3: Тестирование – это рутина
«Тестирование похоже на секс: если оно не доставляет удовольствия, то вы занимаетесь им неправильно»
Миф 4: Тестировщики не ладят с программистами
Портреты великих багов
Какие знания необходимы тестировщику?
Мнемоника MUTII
А сейчас, давайте примерим работу тестировщика на себя, и протестируем КАРАНДАШ
Полезные ссылки
Вопросы?
3.38M
Category: informaticsinformatics

Введение в тестирование

1. Введение в тестирование

Тема 1.
Е.С. Жевагина

2. Из этого занятия мы узнаем:

1.
Как появилось тестирование?
2.
Почему тестирование так важно?
3.
Кто такой тестировщик?
4.
И какими знаниями нужно обладать,
чтобы стать успешным тестировщиком?

3. История тестирования

4. История развития тестирования

2000-е
1990-е
1980-е
предупреждение
дефектов
1970-е
поиск
1960-е
дефектов
исчерпывающее
тестирование
1945- «первый случай,
когда был найден баг»
обеспечение
качества
оптимизация
бизнес технологий

5. 1945г.:

Широко распространена легенда, что 9
сентября 1945 года учёные Гарвардского
университета, тестировавшие
вычислительную машину Mark II Aiken Relay
Calculator, нашли мотылька, застрявшего
между контактами электромеханического
реле, и разработчица Грейс Хоппер
произнесла термин "Баг".
Извлечённое насекомое было вклеено
скотчем в технический дневник, с
сопроводительной надписью: «First actual
case of bug being found» (первый реальный
случай, когда был найден баг). Считается,
что этот забавный факт положил начало
использованию слова «debugging» в
значении «отладка программы», однако,
скорее всего, фраза является каламбуром.

6. 60-е: исчерпывающее тестирование

В 60-х годах прошлого века
основное внимание уделялось т.н.
«исчерпывающему тестированию» проверке всех возможных путей
выполнения кода со всеми возможными
входными данными.

7.

Однако,
очень
исчерпывающее
скоро
было
тестирование»
выяснено,
невозможно,
что
т.к.
«полное,
количество
возможных путей и входных данных очень велико, а также при
таком
подходе
сложно
найти
проблемы
в
проектной
документации.
В итоге «исчерпывающее тестирование» было признано
невыполнимым.

8.

20 вложенных
операторов if =>
1’048’576 ветвей
выполнения
В первом издании своей книги
тестирования
Гленфорд
программного
Майерс
«Искусство
обеспечения»
приводил
пример,
показывающий невозможность исчерпывающего
тестирования. Простая программа, содержащая
всего лишь 20 вложенных операторов if – даже
такой «кусочек кода на один экран» давал
сумасшедшее количество ветвей выполнения
программы.

9. 70-е: Подтверждение правильности работы ПО

В начале 70-х тестирование ПО обозначалось как
«процесс, направленный на демонстрацию корректности продукта»
или как
«деятельность по подтверждению правильности работы ПО» .
В зарождавшейся программной инженерии верификация ПО
значилась как «доказательство правильности».

10.

Было
решено,
что
доказательство
правильности

неэффективный метод тестирования ПО.
Однако,
в
некоторых
случаях
демонстрация
правильной
работы используется и в наши дни, например, приёмо-сдаточные
испытания

11. Парадокс тестирования

Программа НЕ
работает (60-е)
=
тотальное тестирование
VS
Программа
работает (70-е)
=
подтверждение
правильности работы
ПО

12. Парадокс тестирования:

а) с одной стороны, тестирование позволяет убедиться, что продукт
работает хорошо;
б) с другой – выявляет ошибки в ПО, показывая, что продукт не
работает.
Вторая цель тестирования является более продуктивной с точки
зрения улучшения качества, так как не позволяет игнорировать
недостатки ПО.

13. 80-е: Предупреждение дефектов

В 1980-х тестирование расширилось таким понятием, как
предупреждение дефектов.
1) Появляются
идеи о необходимости методологии тестирования, в
частности, что тестирование должно включать в себя проверки на
всех стадиях разработки ПО.
2) В
ходе тестирования надо проверить не только собранную
программу, но и требования, код, архитектуру, сами тесты.
3) В
середине
1980-х
появились
автоматизированного тестирования
первые
инструменты
для

14. 90-е: Обеспечение качества

В начале 1990-х в понятие «тестирование» стали включать планирование,
проектирование, создание, поддержку и выполнение тестов и тестовых
окружений, и это означало переход от тестирования к обеспечению качества,
охватывающего весь цикл разработки ПО.
В это время начинают появляться различные программные инструменты
для поддержки процесса тестирования: более продвинутые среды для
автоматизации с возможностью создания скриптов и генерации отчетов,
системы управления тестами, ПО для проведения нагрузочного тестирования.
В середине 1990-х с развитием Интернета и разработкой большого
количества веб-приложений особую популярность стало получать «гибкое
тестирование»

15. 2000-е: Тестирование и бизнес

В 2000-х появилось еще более широкое определение
тестирования, когда в него было добавлено понятие «оптимизация
бизнес-технологий» (en:business technology optimization, BTO). BTO
направляет развитие информационных технологий в соответствии с
целями бизнеса.
Основной подход заключается в оценке и максимизации
значимости всех этапов жизненного цикла разработки ПО для
достижения необходимого уровня качества, производительности,
доступности.

16. Почему тестирование так важно?

17.

Бизнес:
«пользователи склонны
пользоваться
качественными
продуктами (даже если
они дороже)»

18.

Пользователи:
«лучше не рисковать
личными данными,
деньгами и т.п.»

19. Кто такой тестировщик и чем он занимается??

20.

Тестировщик
ПО

это
специалист,
который
занимается
тестированием программного обеспечения, контролирует его качество.
Тестировщики — эксперты системы, приложения или продукта,
который они тестируют.
В отличие от разработчиков, которые ответственны лишь за
определенную
функцию
или
компонент,
тестировщики
несут
ответственность за работу системы в целом.
Тестировщики
понимают
значимость
продукта,
влияние
окружения на его эффективность. Они знают, как использовать продукт с
максимальной отдачей.

21.

По сути, эти специалисты по тестированию программного
обеспечения занимаются проверкой программного продукта на предмет
соответствия его необходимым требованиям.
Делают они это путем моделирования различных ситуаций, в
которых выясняется, насколько хорошо работают отдельные функции
программы.
Тестировщик пользуется определенными методами
тестирования, в частности, в ряде случаев он может использовать систему
автоматизации тестирования для проведения одно и того же процесса с
различными настройками. Он придумывает сценарий тестирования и
осуществляет его.

22.

Работа
тестировщика
напоминает
работу
следователя или детектива: он идет по «горячим
следам» программиста и выискивает ошибки (на
профессиональном языке – баги).
В ход идут различные дедуктивные методы и
скрытые приемы.
Чтобы
отыскать
спрятавшуюся
в
глубине
программы ошибку, нужно быть изобретательным:
задавать нужные вопросы,
знать
психологию
предвидеть,
где
программиста
именно
может
никогда
не
и
уметь
скрываться
увертливый баг.
Профессионал
ограничится
выполнением шаблонных заданий тест-плана, он
придумает
собственные
способы
тестирования,
попробует разные пути и комбинации.

23.

Мало просто проверить программу на ошибки,
сверхзадача тестирования:
сделать программу такой, какой ее хотел бы видеть
заказчик.

24.

Тестировщики ПО работают в IT-компаниях, в
крупных
компаниях,
программы,
тестирования.
а
также
внедряющих
в
независимых
свои
группах

25. Хороший тестировщик, кто он?

26.

Повышенная ответственность
Коммуникативный
Способный быстро и четко
выражать свои мысли
исполнительный
Способность к
обучению
Гибкое мышление. Аналитический
склад ума

27. Мифы о профессии

Тестировщик программного
обеспечения

28. Миф 1: Monkey clicking (тестировщик-кликальщик)

29.

Тестирование видится с одной стороны каким-то полумеханическим
процессом, который не требует особенной квалификации: тестировщика видят
«кликальщиком», который просто гоняет приложение, ждёт пока оно «упадёт»,
потом сообщает об ошибке и продолжает в том же духе.
В последнее время, надо отдать должное, появляются материалы о
тестировании и качестве, выходят в свет книги, развиваются сайты посвящённые
этому направлению — поэтому этот миф постепенно сходит на «нет».

30. Миф 2: Тестирование – это магия

31.

Тестирование

это
процесс,
покрытый
множеством
неопределённостей, трудно формализируемый и поддающийся оценкам.
Если же к тестированию добавить автоматизацию, которая по оценкам
тех, кто внедрял инструменты и решения для тестирования, требует больших (по
сравнению с ручным тестированием) трудозатрат и говорить об оценке качества
продукта, направление тестирования получается совсем непрозрачным для
стороннего наблюдателя, а порой и для самих тестировщиков.

32. Миф 3: Тестирование – это рутина

33. «Тестирование похоже на секс: если оно не доставляет удовольствия, то вы занимаетесь им неправильно»

Миф
о
рутинности
тестирования
вытекает
из
первых
двух:
неосведомленности окружающих и относительной непрозрачности самого
процесса.
Тестировщик сталкивается с разными задачами. Его работа — это
часто кропотливый труд по проверке сотен вариантов различной работы
одного модуля.
Иногда некоторые модули нельзя автоматизировать (частично или
полностью), и проверка внимательным тестировщиком просто необходима.

34. Миф 4: Тестировщики не ладят с программистами

35.

Цели и задачи тестировщика умещаются в
простую формулу – сделать программу лучше.
Отлично
передает
смысл
этой
работы
профессиональная шутка тестеров:
– Зачем нужны тестировщики?
– Чтобы программисту, гордо сказавшему «Это
сделал я!», было от кого услышать: «Ну и посмотри,
какую ерунду ты сделал!».

36. Портреты великих багов

37.

S.T.A.L.K.E.R

38.

яндекс

39.

World of Tanks

40.

Windows

41.

42.

43.

44.

45. Какие знания необходимы тестировщику?

46.

Знания необходимые для тестировщика

47. Мнемоника MUTII

Market (рынок) – финансирование, здравоохранение,
военная сфера
Users (пользователи) – реальные пользователи продукта.
Кто они,чем занимаются, какие мотивы использования
ПО.
Tasks (задачи) – для решения каких задач предназначен
продукт, какие типичные рабочие задачи
Information (информация) – как продукт расскажет мне о
задачах, которые он автоматизирует?
Implementation (реализация) – легко ли использовать
продукт в первый раз, надежен ли продукт, могу ли я
легко выполнить свои задачи с учетом дизайна продукта
и предоставленной им информации.

48.

Продолжим рассматривать знания,
необходимые тестировщику

49. А сейчас, давайте примерим работу тестировщика на себя, и протестируем КАРАНДАШ

50.

51. Полезные ссылки

Qaclub.by
Белорусское профессиональное
сообщество тестировщиков
Protesting.ru
Сайты с теорией тестирования
Softwaretesting.ru
Moikrug.ru
Linkedin.com
Поиск работы, размещение
резюме, информация по зп
Dev.by
Fixber.ru
Utest.com
Практика тестирования
English     Русский Rules