Download - Марина Широчкина — «Тестирование»
![Page 1: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/1.jpg)
![Page 2: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/2.jpg)
Марина Широчкина Руководитель группы тестирования
Тестирование Обзорная лекция
![Page 3: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/3.jpg)
Что это такое и с чем его едят?
Введение
![Page 4: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/4.jpg)
4
Тестирование – процесс сравнения ожидаемых результатов с полученными.
![Page 5: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/5.jpg)
5
Тестирование – набор инженерных практик, нацеленных на раннее обнаружение дефектов.
![Page 6: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/6.jpg)
6
Тестирование – способ предоставления и получения обратной связи: как технологической, так и продуктовой.
![Page 7: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/7.jpg)
7
Пример продуктовой обратной связи
• «Здесь нельзя грабить корованы!» (с) пользователь
![Page 8: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/8.jpg)
8
Пример продуктовой обратной связи
• «Здесь нельзя грабить корованы!» (с) пользователь
• «Оно делает не то, что надо!» (с) менеджер
![Page 9: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/9.jpg)
9
Пример продуктовой обратной связи
• «Здесь нельзя грабить корованы!» (с) пользователь
• «Оно делает не то, что надо!» (с) менеджер
• «Я не могу использовать разработанный тобой API, он не возвращает все необходимые данные.»
(с) коллега-разработчик
![Page 10: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/10.jpg)
10
Пример технической обратной связи
• «Поддержка продукта при такой архитектуре будет слишком сложна.»
(с) системный архитектор
![Page 11: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/11.jpg)
11
Пример технической обратной связи
• «Поддержка продукта при такой архитектуре будет слишком сложна.»
(с) системный архитектор
• «Ребята, оно падает каждые полчаса, я не буду это поддерживать.»
(с) системный администратор
![Page 12: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/12.jpg)
12
Пример технической обратной связи
• «Поддержка продукта при такой архитектуре будет слишком сложна.»
(с) системный архитектор
• «Ребята, оно падает каждые полчаса, я не буду это поддерживать.»
(с) системный администратор
• «Эта реализация не выдержит предполагаемой нагрузки.»
(с) кто-то битый жизнью
![Page 13: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/13.jpg)
13
Раннее обнаружение проблем – залог здорового сна.
![Page 14: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/14.jpg)
Народная мудрость
Баг лучше поймать сразу же после его создания.
Уровни тестирования
![Page 15: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/15.jpg)
15
Unit-тесты – тесты, проверяющие корректность работы отдельных модулей программы.
![Page 16: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/16.jpg)
16
![Page 17: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/17.jpg)
17
![Page 18: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/18.jpg)
18
Unit – модуль/объект/функция – атомарная, независимая часть кода. Вместо внешних вызовов должны быть использованы заглушки. Для каждого модуля пишется нужное количество тестов, покрывающих логику его работы.
Входные (тестовые) данные
Выходные данные (полученный результат)
![Page 19: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/19.jpg)
19
Плюсы unit-тестов
• Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания».
![Page 20: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/20.jpg)
20
Плюсы unit-тестов
• Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания».
• Могут служить документацией к коду.
![Page 21: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/21.jpg)
21
Плюсы unit-тестов
• Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания».
• Могут служить документацией к коду.
• Упрощают процесс рефакторинга.
![Page 22: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/22.jpg)
22
Минусы unit-тестов
• Их надо писать.
![Page 23: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/23.jpg)
23
Минусы unit-тестов
• Их надо писать.
• Их надо уметь писать.
![Page 24: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/24.jpg)
24
Минусы unit-тестов
• Их надо писать.
• Их надо уметь писать.
• Их надо поддерживать.
![Page 25: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/25.jpg)
25
Даже если все компоненты по отдельности работают правильно, то это ещё ничего не значит.
![Page 26: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/26.jpg)
26
Интеграционные тесты – тесты, проверяющие корректность взаимодействия отдельных модулей друг с другом.
![Page 27: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/27.jpg)
27
![Page 28: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/28.jpg)
28
![Page 29: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/29.jpg)
29
![Page 30: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/30.jpg)
30
Плюсы интеграционных тестов
• Находят баги, которые не могут быть обнаружены unit-тестами.
![Page 31: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/31.jpg)
31
Плюсы интеграционных тестов
• Находят баги, которые не могут быть обнаружены unit-тестами.
• Запускаются после сборки проекта и позволяют быстро обнаружить проблемы взаимодействия.
![Page 32: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/32.jpg)
32
Минусы интеграционных тестов
• Их надо писать.
![Page 33: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/33.jpg)
33
Минусы интеграционных тестов
• Их надо писать.
• Их надо уметь писать.
![Page 34: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/34.jpg)
34
Минусы интеграционных тестов
• Их надо писать.
• Их надо уметь писать.
• Их надо поддерживать.
![Page 35: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/35.jpg)
35
Даже если все компоненты по отдельности работают правильно и корректно взаимодействуют друг с другом – это ещё ничего не значит.
![Page 36: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/36.jpg)
36
Приёмочные тесты – тесты, проверяющие работоспособность системы целиком. В реальном окружении, с реальными данными, на реальных сценариях.
![Page 37: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/37.jpg)
37
Железка
OS
![Page 38: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/38.jpg)
38
Плюсы приёмочных тестов
• Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами
![Page 39: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/39.jpg)
39
Плюсы приёмочных тестов
• Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами
• Позволяют оценить работоспособность продукта целиком
![Page 40: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/40.jpg)
40
Плюсы приёмочных тестов
• Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами
• Позволяют оценить работоспособность продукта целиком
• На этом уровне с продуктом могут ознакомиться будущие пользователи
![Page 41: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/41.jpg)
41
Минусы приёмочных тестов
• Самые высокоуровневые – сложнее локализовывать проблему
![Page 42: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/42.jpg)
42
Минусы приёмочных тестов
• Самые высокоуровневые – сложнее локализовывать проблему
• Занимают больше времени
![Page 43: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/43.jpg)
43
Минусы приёмочных тестов
• Самые высокоуровневые – сложнее локализовывать проблему
• Занимают больше времени
• Обнаруживают проблемы с некоторой задержкой
![Page 44: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/44.jpg)
44
Что же выбрать?
![Page 45: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/45.jpg)
Каждому виду багов – свой вид тестирования
Виды тестирования
![Page 46: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/46.jpg)
46
«АААА! Ничего не работает»
![Page 47: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/47.jpg)
47
Функциональное тестирование – проверка работы кода/продукта на соответствие требованиям. Проверка логики работы.
![Page 48: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/48.jpg)
48
«Не работает у части пользователей»
![Page 49: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/49.jpg)
49
Конфигурационное тестирование на клиенте – проверка работоспособности на различных конфигурациях. Для веб-сайтов – в разных браузерах.
![Page 50: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/50.jpg)
50
«Мы это выкатили, и оно перестало работать!»
![Page 51: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/51.jpg)
51
Конфигурационное тестирование сервер-сайда – проверка работоспособности в окружении, максимально идентичном продакшену (железка, OS, утилиты, библиотеки, конфиги, версии).
![Page 52: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/52.jpg)
52
«Всё сломалось, когда туда пришли пользователи»
![Page 53: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/53.jpg)
53
Нагрузочное тестирование – проверка работоспособности под нагрузкой (одновременная обработка большого потока запросов).
![Page 54: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/54.jpg)
54
«Работает, но страшно тормозит»
![Page 55: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/55.jpg)
55
Тестирование производительности – проверка скорости работы системы.
![Page 56: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/56.jpg)
56
Причём:
• Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы
![Page 57: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/57.jpg)
57
Причём:
• Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы
• То же самое – под нагрузкой
![Page 58: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/58.jpg)
58
Причём:
• Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы
• То же самое – под нагрузкой
• В пользовательских условиях (сетевые условия)
![Page 59: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/59.jpg)
59
«Всё было хорошо, пока не пришли злые китайские хакеры»
![Page 60: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/60.jpg)
60
Тестирование безопасности – об этом вам прочитают отдельную лекцию
![Page 61: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/61.jpg)
61
«А как этим пользоваться?»
![Page 62: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/62.jpg)
62
купил айфон а чо с ним делать где кнопки чтобы нажимать и как мне позвонить сереге а вот и он звонит и чо
![Page 63: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/63.jpg)
63
Тестирование юзабилити – тестирование удобства использования. Коридорный вариант доступен всем.
![Page 64: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/64.jpg)
64
«Оно работало, а потом вдруг упало»
![Page 65: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/65.jpg)
65
Тестирование стабильности – тестирование стабильности работы под нагрузкой, длительное время.
![Page 66: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/66.jpg)
66
Всё?
![Page 67: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/67.jpg)
67
Ещё много…
• Volume тестирование • Stress/Recovery тестирование • Spike тестирование • Localization тестирование • Compatibility тестирование И т. д. И т. п.
![Page 68: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/68.jpg)
68
Какие выбрать?
![Page 69: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/69.jpg)
69
Исходя из специфики вашего проекта.
![Page 70: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/70.jpg)
70
Руками или роботом?
Способы тестирования
![Page 71: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/71.jpg)
71
Ручное тестирование – выполнение тестов вручную или с помощью скриптов. Ручной анализ результатов.
![Page 72: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/72.jpg)
72
Плюсы и минусы
Плюсы • Более информативно – замечаются дефекты рядом
![Page 73: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/73.jpg)
73
Плюсы и минусы
Плюсы • Более информативно – замечаются дефекты рядом
Минусы • Долго
![Page 74: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/74.jpg)
74
Плюсы и минусы
Плюсы • Более информативно – замечаются дефекты рядом
Минусы • Долго • Дорого
![Page 75: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/75.jpg)
75
Автоматическое тестирование – выполнение с помощью скриптов или инструментов. Оценка результатов проводится автоматически.
![Page 76: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/76.jpg)
76
Плюсы и минусы
Плюсы • Удобно и легко
![Page 77: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/77.jpg)
77
Плюсы и минусы
Плюсы • Удобно и неутомительно
Минусы • Тесты нужно писать и поддерживать
![Page 78: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/78.jpg)
78
Плюсы и минусы
Плюсы • Удобно и неутомительно
Минусы • Тесты нужно писать и поддерживать • Тесты выполняются «в лоб»
![Page 79: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/79.jpg)
79
Плюсы и минусы
Плюсы • Удобно и неутомительно
Минусы • Тесты нужно писать и поддерживать • Тесты выполняются «в лоб» • Сами тесты/скрипты/инструменты могут содержать баги и порождать ложные результаты
![Page 80: Марина Широчкина — «Тестирование»](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55a45e6f1a28ab756f8b46bb/html5/thumbnails/80.jpg)
80
Разумная комбинация методов – залог успеха.