Автоматическое тестирование. Моя система

34
Моя система Автоматическое тестирование Игорь Любин 1

Upload: igor-lyubin

Post on 08-Feb-2017

32 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Автоматическое тестирование. Моя система

Моя система

Автоматическое тестирование

Игорь Любин

1

Page 2: Автоматическое тестирование. Моя система

2

Page 3: Автоматическое тестирование. Моя система

3

Page 4: Автоматическое тестирование. Моя система

CRM

Pinpad

Киоск

WebCallCenter

3rd

4

Page 5: Автоматическое тестирование. Моя система

Моя система• Разжечь угли

• Провести пытки

• Закрутить гайки

5

Page 6: Автоматическое тестирование. Моя система

The Joel test

1. Пользуетесь ли вы системой контроля версий?

2. Можете ли вы собрать продукт за один шаг?

3. Выполняете ли вы ежедневные билды?

4. Используете ли вы базу данных ошибок?

5. Исправляете ли вы ошибки перед написанием нового кода?

6. Есть ли у вас актуальный план работ?

7. Есть ли у вас спецификация?

8. Предоставлены ли вашим программистам спокойные условия для работы?

9. Используете ли вы новейшее дорогое оборудование?

10. Есть ли у вас тестеры?

11. Пишут ли кандидаты на работу код во время собеседования?

12. Проводите ли вы коридорное тестирование удобства использования программ?

http://russian.joelonsoftware.com/Articles/TheJoelTest.html6

Page 7: Автоматическое тестирование. Моя система

Проектный треугольник

7

Page 8: Автоматическое тестирование. Моя система

Сокращение цикла разработки

Анализ Разработка Тестирование

8

Page 9: Автоматическое тестирование. Моя система

Сокращение цикла разработки

9

Анализ Разработка

ТРИЗ http://www.altshuller.ru/triz/

Page 10: Автоматическое тестирование. Моя система

Разжигаем угли

Подготовка к проекту

10

Page 11: Автоматическое тестирование. Моя система

Какой первый автоматический тест?

11

Page 12: Автоматическое тестирование. Моя система

Как вы запускаете тесты?

12

Page 13: Автоматическое тестирование. Моя система

Сборка, выкладка и тест

13

Page 14: Автоматическое тестирование. Моя система

Проводимпытки

14

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

Page 15: Автоматическое тестирование. Моя система

Пирамида тестирования

http://positiveflower.blogspot.ru/2012/12/agile.html15

Page 16: Автоматическое тестирование. Моя система

Тестировщики тоже могут писать юнит-тесты

16

Page 17: Автоматическое тестирование. Моя система

Пример

Фронты (UI)APIUnit

CoreJson Web

XML PinPad

17

Page 18: Автоматическое тестирование. Моя система

Сначала позитив

18

Сергей Мартыненко О стратегиях тестирования http://blog.shumoos.com/archives/293

Page 19: Автоматическое тестирование. Моя система

Чек-лист покрытия API

19

• Хотя бы один тест с ответом 200 ОК

• Проверка JSON схемы ответа, проверка наличия полей и их правильных типов

• Проверка измененного состояния• Проверить, что изменения легли в БД• Проверки очередей• Проверки в смежных системах

• Тесты на кэш

• Вызов метода дважды

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

• «Плохие» статусы у пользователей и карт

• Not found => Валидные, но несуществующие в системе значения параметров

• Invalid => Плохие значения параметров, пробелы, выход за границу допустимых значений

• Not specified => Пустые значения параметров, другие типы, проверка обязательных

• Пустой запрос = {}

• Запрос без параметров = ""

• Все ли покрыто из документации?

Page 20: Автоматическое тестирование. Моя система

Правило 21-го UI теста

20

Page 21: Автоматическое тестирование. Моя система

Что лучше cssили xpathлокаторы?

21

Page 22: Автоматическое тестирование. Моя система

Что лучше cssили xpathлокаторы?

22

Лояльные разработчики и id локаторы

Page 23: Автоматическое тестирование. Моя система

23

Page 24: Автоматическое тестирование. Моя система

Закручиваемгайки

24

Договариваемся о правилах

Page 25: Автоматическое тестирование. Моя система

«Фича» готова, если на нее есть автотест

25

Page 26: Автоматическое тестирование. Моя система

Тесты должны быть зеленые

26

Page 27: Автоматическое тестирование. Моя система

На каждую ошибку автотест

27

Page 28: Автоматическое тестирование. Моя система

Сначала чиним баги, потом пишем новый код

28

Page 29: Автоматическое тестирование. Моя система

Заключение

• Разжигаем угли• Первым делом автоматизировать сборку и выкладку• Запросить/выделить/добыть/выбить – машины для CI

• Проводим пытки• Пишем тесты на разных уровнях: unit, API, UI• Заручаемся поддержкой разработчиков

• Закручиваем гайки• Договариваемся о правилах

• «Фича» готова, если на нее написан автотест• Тесты должны быть зеленые• На каждую ошибку автотест• Сначала чиним баги, потом пишем новый код

29

Page 30: Автоматическое тестирование. Моя система

Что было? Что стало?

• Сборка делалась на компьютере разработчика

• Выкладки проводились вручную

• Тесты не писались/Запускались изредка

• «А что работает?»

• Непрерывная интеграция

• Тесты на разных уровнях

• Все тесты зеленые

• Измерямое покрытие

30

Page 31: Автоматическое тестирование. Моя система

Контакты

• Skype: igor.lyubin

• Email: [email protected]

31

Page 32: Автоматическое тестирование. Моя система

Пример api теста

32

[Test, Smoke]public void Shoud_find_customer_by_id (){var customerId = Db.GetCustomerId();

var response = Api.SendRequest("find_customer_by_id", new { customer_id = customerId });

Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));

Assert.That(response.DeserializeTo<CustomerResult>().CustomerId, Is.EqualTo(customerId));}

Page 33: Автоматическое тестирование. Моя система

Roy Osherove “The Art of Unit Testing”

Manual tests suck

33

Page 34: Автоматическое тестирование. Моя система

Автоматическое тестированиеvs

Автоматизация тестирования

Игорь Хрол http://sqadays.com/ru/talk/1955234