Тестирование осень 2013 лекция 3

Post on 30-Jun-2015

216 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Автоматизация функционального

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

Влад Алюков

Кто?

Занимаюсь тестированием 9 лет

Из них 5 лет автоматизацией тестирования и тестовой инфраструктурой

2

О чём?

Подходы

Инструменты

Проблемы

3

4

Зачем?

Зачем?

Широкий взгляд на вопрос качества

Понимание методов его обеспечения

Решение задач подобающим способом

Умение поставлять качественные артефактысвоего труда

5

Agile development

6

Тесты – документация на ваш код

7

Функциональное тестирование

8

Функциональное тестирование

Контроль конечной функциональности на:

пригодность

соответствие требованиям/спецификациям

точность (accuracy testing)

защищённость (security testing)

9

10

Автоматизацияфункционального

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

Автоматизированныефункциональные тесты

11

Автоматизированныефункциональные тесты

Взаимодействуют с GUI или внешним API

Тестируют возможности вашегоприложения/сервиса

12

Каждому уровню свои тесты

13

Почему не unit/интеграционные тесты?

Конечные возможности продукта

Высокая степень интеграции

14

Testing pyramid

15

Предпосылки для автоматизации

16

Предпосылки для автоматизации

Монотонные действия

Стабильные интерфейсы

Высокая частота изменений

Критичность продуктовой возможности

17

Как автоматизировать

Атомарность тестовых сценариев

Герметичность тестовых окружений

18

Герметичность

19

Обеспечение герметичности

Виртуализация

Заглушки

Тестовые состояния приложения

20

Варианты интерфейсов

GUI (Web-интерфейсы/Десктоп)

API (RESTful/SOAP)

21

Паттерны проектированияGUI тестов

22

PageObject

23

DRY

24

фу! плохой тест!

25

PageObject

26

PageObject

27

хороший, образцовый, годный тест!

28

Инструменты

29

Выбор инструментов

Тест должен находиться в максимальной близостик тестируемой возможности

Нельзя автоматизировать что-либо, не написавни одной строчки кода

30

Тестирование Web-Приложений

WebDriver

Jasmine/jstestdriver

phantomjs

31

WebDriver

История

Возможности

Применимость

32

История

33

Возможности

34

35

Как и для чего следуетприменять WebDriver

Браузерозависимые сценарии

Drag’n’Drop - загрузка файлов

Клавиатурные действия

Кроссбраузерное тестирование

Тестирование с браузерными расширениями

36

Нагрузочное тестирование

37

Нагрузочное тестирование

38

Тестирование бизнес - логики

39

Запись/воспроизведение

40

Запись/воспроизведение

41

Запись/воспроизведение

42

Нельзя автоматизировать что-либо, не написав ни одной строчки кода

Практики написания тестов

Keyword based testing

BDD

43

BDD example

44

BDD/PageObject example

45

Keyword Driven Test example

46

Применимость BDD/KDT

Документция на возможности

Кейсы составленные по практике BDD может понять средней руки гуманитарий.

47

Отчётность

48

Антипаттерны в тестировании

49

Антипаттерны в тестировании

god tests

Гейзенбаг

Неуправляемое окружение

50

51

Как тестируем мы

Технологии

ЯП: java/python

FW: testng/py.tests

CI: jenkins

IaaS: OpenStack/chef

build tool: maven/distutils

reporting: graphite/xunit/text reports

52

Браузерные тесты

фрэймворк: maven/testng/guice/webdriver/browsermobproxy/800loc

тесты: 13kloc ~700 тестов

53

Функциональный мониторинг

54

Семинар

Написать тесты на проект Поиск@Mail.Ru

Тесты должны работать в 2х браузерахfirefox/chrome

Отчёт должен генерироваться в формате xUnitreport

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

55

Семинар

Подмес «Календарь» ( q= календарь)

Подмес «Конвертор валют» ( q= курс доллара)

Подмес «Восход-Закат» ( q= закат )

Все подмесы геозависимые

У меня не должно возникнуть проблем с запуском ваших тестов =)

56

Вопросы

57

Спасибо за внимание

Влад Алюковv.alyukov@corp.mail.ru

top related