0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В процессе изучения темы тестирования вы будете сталкиваться с различными вариациями проведения тестов:</p>
1
<p>В процессе изучения темы тестирования вы будете сталкиваться с различными вариациями проведения тестов:</p>
2
<p>Этот список охватывает широкий спектр разных вариаций и подвариаций тестирования. Их не нужно знать все. Также не нужно уметь тестировать по каждому из этих вариантов. Но чтобы понимать других разработчиков, важно знать основные термины, которые встречаются в профессии.</p>
2
<p>Этот список охватывает широкий спектр разных вариаций и подвариаций тестирования. Их не нужно знать все. Также не нужно уметь тестировать по каждому из этих вариантов. Но чтобы понимать других разработчиков, важно знать основные термины, которые встречаются в профессии.</p>
3
<p>В этом уроке мы разберем основные типы тестирования и постараемся отделить разные виды друг от друга. В рамках одного урока сложно описать каждый вид, поэтому остановимся на самых базовых понятиях:</p>
3
<p>В этом уроке мы разберем основные типы тестирования и постараемся отделить разные виды друг от друга. В рамках одного урока сложно описать каждый вид, поэтому остановимся на самых базовых понятиях:</p>
4
<ul><li>Функциональное и нефункциональное тестирование</li>
4
<ul><li>Функциональное и нефункциональное тестирование</li>
5
<li>Статическое и динамическое тестирование</li>
5
<li>Статическое и динамическое тестирование</li>
6
<li>Ручное и автоматизированное тестирование</li>
6
<li>Ручное и автоматизированное тестирование</li>
7
</ul><h2>Функциональное и нефункциональное тестирование</h2>
7
</ul><h2>Функциональное и нефункциональное тестирование</h2>
8
<p>Представим, что мы стали тестировщиком на Хекслете. Нам поставили задачу протестировать страницу с теорией уроков. Такую же страницу, на которой мы сейчас находимся.</p>
8
<p>Представим, что мы стали тестировщиком на Хекслете. Нам поставили задачу протестировать страницу с теорией уроков. Такую же страницу, на которой мы сейчас находимся.</p>
9
<p>Рассмотрим, что стоит протестировать на странице:</p>
9
<p>Рассмотрим, что стоит протестировать на странице:</p>
10
<ol><li>Страница загрузилась, и теория появилась на странице</li>
10
<ol><li>Страница загрузилась, и теория появилась на странице</li>
11
<li>Кнопка "Далее" отправляет на упражнение, квиз или следующий урок</li>
11
<li>Кнопка "Далее" отправляет на упражнение, квиз или следующий урок</li>
12
<li>Кнопки "Домой" и "Навигация" выполняют свою функцию</li>
12
<li>Кнопки "Домой" и "Навигация" выполняют свою функцию</li>
13
<li>Со страницы можно переключиться в обсуждение и обратно</li>
13
<li>Со страницы можно переключиться в обсуждение и обратно</li>
14
<li>При нажатии на "Сложности и вопросы?" появляется модальное окно</li>
14
<li>При нажатии на "Сложности и вопросы?" появляется модальное окно</li>
15
</ol><p>Эти действия - проверка работоспособности всех функций страницы: от загрузки текста теории до появления вспомогательных окон. Так мы проверим функционал страницы.</p>
15
</ol><p>Эти действия - проверка работоспособности всех функций страницы: от загрузки текста теории до появления вспомогательных окон. Так мы проверим функционал страницы.</p>
16
<p>Такое тестирование называется<strong>функциональным</strong>. Его задача - проверить работоспособность всех функций страниц: от ссылок до правильной работы интегрированных решений от других компаний, которые используются на сайте.</p>
16
<p>Такое тестирование называется<strong>функциональным</strong>. Его задача - проверить работоспособность всех функций страниц: от ссылок до правильной работы интегрированных решений от других компаний, которые используются на сайте.</p>
17
<p>Функциональное тестирование не учитывает удобство, дизайн, верстку, защищенность. Проверяется только работоспособность функционала приложения, исходя из заявленных требований. Например:</p>
17
<p>Функциональное тестирование не учитывает удобство, дизайн, верстку, защищенность. Проверяется только работоспособность функционала приложения, исходя из заявленных требований. Например:</p>
18
<ul><li>Функциональное тестирование машины - машина доедет из пункта "А" в пункт "Б"</li>
18
<ul><li>Функциональное тестирование машины - машина доедет из пункта "А" в пункт "Б"</li>
19
<li>Функциональное тестирование чайника - он нагреет воду до заданного количества градусов</li>
19
<li>Функциональное тестирование чайника - он нагреет воду до заданного количества градусов</li>
20
<li>Функциональное тестирование колонки - она воспроизводит звук в заданном диапазоне</li>
20
<li>Функциональное тестирование колонки - она воспроизводит звук в заданном диапазоне</li>
21
</ul><p>Часто функциональное тестирование проводится с помощью автоматизированных тестов - специальных программ, которые пишут разработчики и запускают в процессе разработки. Подробнее про автоматическое тестирование мы поговорим позже.</p>
21
</ul><p>Часто функциональное тестирование проводится с помощью автоматизированных тестов - специальных программ, которые пишут разработчики и запускают в процессе разработки. Подробнее про автоматическое тестирование мы поговорим позже.</p>
22
<p>Когда основной функционал страницы протестирован, начинается этап<strong>нефункционального</strong>тестирования - проверка удобства и качества приложения.</p>
22
<p>Когда основной функционал страницы протестирован, начинается этап<strong>нефункционального</strong>тестирования - проверка удобства и качества приложения.</p>
23
<p>В процессе изучения этого курса мы много раз сталкивались с нефункциональным тестированием, например:</p>
23
<p>В процессе изучения этого курса мы много раз сталкивались с нефункциональным тестированием, например:</p>
24
<ul><li>Проверка корректной адаптивности страницы</li>
24
<ul><li>Проверка корректной адаптивности страницы</li>
25
<li>Проверка мультиязычности</li>
25
<li>Проверка мультиязычности</li>
26
<li>Проверка безопасности полей ввода</li>
26
<li>Проверка безопасности полей ввода</li>
27
</ul><p>Эти тесты не влияют на функционал продукта, но являются их неотъемлемой частью. Если выделить категории, то нефункциональное тестирование рассматривает:</p>
27
</ul><p>Эти тесты не влияют на функционал продукта, но являются их неотъемлемой частью. Если выделить категории, то нефункциональное тестирование рассматривает:</p>
28
<ul><li>Удобство использования</li>
28
<ul><li>Удобство использования</li>
29
<li>Корректную работу в разном окружении: операционные системы, браузеры, разные модели телефонов</li>
29
<li>Корректную работу в разном окружении: операционные системы, браузеры, разные модели телефонов</li>
30
<li>Защищенность приложения</li>
30
<li>Защищенность приложения</li>
31
<li>Производительность приложения</li>
31
<li>Производительность приложения</li>
32
</ul><p>Все тесты, которые проводились выше, называются динамическими. Разберем, что это такое, и как они отличаются от статичных тестов.</p>
32
</ul><p>Все тесты, которые проводились выше, называются динамическими. Разберем, что это такое, и как они отличаются от статичных тестов.</p>
33
<h2>Статическое и динамическое тестирование</h2>
33
<h2>Статическое и динамическое тестирование</h2>
34
<p>В прошлом разделе все тесты назывались<strong>динамическими</strong>- тесты, которые выполняются на запущенном проекте. В случае с Хекслетом - на работающем сайте. Этот сайт находится в публичном доступе, как сейчас, или на специальном сервере. Доступ к этому серверу имеют только разработчики.</p>
34
<p>В прошлом разделе все тесты назывались<strong>динамическими</strong>- тесты, которые выполняются на запущенном проекте. В случае с Хекслетом - на работающем сайте. Этот сайт находится в публичном доступе, как сейчас, или на специальном сервере. Доступ к этому серверу имеют только разработчики.</p>
35
<p>В противовес динамическому тестированию существует<strong>статическое</strong>. Его цель - проверка написанного кода без запуска приложения. В этот момент изучаются технические требования - код проверяется на явные логические ошибки. Это похоже на то, как наставники дают код-ревью и проверяют написанный студентами код.</p>
35
<p>В противовес динамическому тестированию существует<strong>статическое</strong>. Его цель - проверка написанного кода без запуска приложения. В этот момент изучаются технические требования - код проверяется на явные логические ошибки. Это похоже на то, как наставники дают код-ревью и проверяют написанный студентами код.</p>
36
<p>Динамическое и статическое тестирование может проводиться в автоматическом и ручном режимах. Рассмотрим эти виды тестирования подробнее.</p>
36
<p>Динамическое и статическое тестирование может проводиться в автоматическом и ручном режимах. Рассмотрим эти виды тестирования подробнее.</p>
37
<h2>Автоматическое и ручное тестирование</h2>
37
<h2>Автоматическое и ручное тестирование</h2>
38
<p>При прохождении этого курса мы просили открывать страницы и проверять их по разным пунктам: от проверки адаптивности до работы с безопасностью. Эти процессы делались непосредственно вами, то есть выполнялось<strong>ручное</strong>тестирование. А ответы в упражнениях проверялись с помощью скрипта без участия человека. Такое тестирование называется<strong>автоматическим</strong>.</p>
38
<p>При прохождении этого курса мы просили открывать страницы и проверять их по разным пунктам: от проверки адаптивности до работы с безопасностью. Эти процессы делались непосредственно вами, то есть выполнялось<strong>ручное</strong>тестирование. А ответы в упражнениях проверялись с помощью скрипта без участия человека. Такое тестирование называется<strong>автоматическим</strong>.</p>
39
<p>Рассмотрим подробнее оба вида тестирования и их отличия друг от друга.</p>
39
<p>Рассмотрим подробнее оба вида тестирования и их отличия друг от друга.</p>
40
<p>Ручным называется тестирование, при котором тестировщик вручную проверяет функционал страницы по заранее определенному техническому заданию. При таком типе тестирования тестировщик обычно проверяет участки, которые сложно проверить при автоматическом тестировании:</p>
40
<p>Ручным называется тестирование, при котором тестировщик вручную проверяет функционал страницы по заранее определенному техническому заданию. При таком типе тестирования тестировщик обычно проверяет участки, которые сложно проверить при автоматическом тестировании:</p>
41
<ul><li>Пользовательский интерфейс</li>
41
<ul><li>Пользовательский интерфейс</li>
42
<li>Удобство использования</li>
42
<li>Удобство использования</li>
43
<li>Проверка различных типов поведения пользователя</li>
43
<li>Проверка различных типов поведения пользователя</li>
44
</ul><p>При этом тестировщик может найти новые баги, которые не нашлись в процессе автоматического тестирования.</p>
44
</ul><p>При этом тестировщик может найти новые баги, которые не нашлись в процессе автоматического тестирования.</p>
45
<p>В ручном тестировании участвует человек, который подвержен внешним факторам: настроение, самочувствие, физическое состояние. Один и тот же сценарий ручного тестирования может различаться из-за этих факторов, что приведет к нахождению новых багов.</p>
45
<p>В ручном тестировании участвует человек, который подвержен внешним факторам: настроение, самочувствие, физическое состояние. Один и тот же сценарий ручного тестирования может различаться из-за этих факторов, что приведет к нахождению новых багов.</p>
46
<p>Например, мы тестируем кнопку заказа товара. В обычных сценариях мы вводим данные и нажимаем на кнопку "Заказать". Но нас могут отвлечь. За это время сайт может "выкинуть" нас из корзины и сбросить весь заказ из-за ошибки в коде. Так будет найден новый баг. Этот пример показывает, как человеческий фактор играет роль в тестировании.</p>
46
<p>Например, мы тестируем кнопку заказа товара. В обычных сценариях мы вводим данные и нажимаем на кнопку "Заказать". Но нас могут отвлечь. За это время сайт может "выкинуть" нас из корзины и сбросить весь заказ из-за ошибки в коде. Так будет найден новый баг. Этот пример показывает, как человеческий фактор играет роль в тестировании.</p>
47
<p>При автоматическом тестировании все действия и ожидаемый результат записываются заранее. Например, разработчик создал калькулятор и проверяет, что выражение 2 + 2 * 2 вернет 6, а не 8. Он пишет тест вида:</p>
47
<p>При автоматическом тестировании все действия и ожидаемый результат записываются заранее. Например, разработчик создал калькулятор и проверяет, что выражение 2 + 2 * 2 вернет 6, а не 8. Он пишет тест вида:</p>
48
<p>При каждом запуске тестов скрипт будет проверять, что пример возвращает 6 и логика работы не нарушена. Таких тестов может быть сотни. Зачастую они запускаются, когда создается новый функционал или выкладывается новая версия. Это гарантирует, что новые изменения не сломали уже работающий функционал.</p>
48
<p>При каждом запуске тестов скрипт будет проверять, что пример возвращает 6 и логика работы не нарушена. Таких тестов может быть сотни. Зачастую они запускаются, когда создается новый функционал или выкладывается новая версия. Это гарантирует, что новые изменения не сломали уже работающий функционал.</p>
49
<p>Автоматическое тестирование не может заменить ручное. Последнее может быть полезным при проверке пользовательского интерфейса, а также при проверке сложных функций программы. Еще ручное тестирование может помочь выявить ошибки, которые могут быть упущены при автоматическом тестировании.</p>
49
<p>Автоматическое тестирование не может заменить ручное. Последнее может быть полезным при проверке пользовательского интерфейса, а также при проверке сложных функций программы. Еще ручное тестирование может помочь выявить ошибки, которые могут быть упущены при автоматическом тестировании.</p>
50
<h2>Выводы</h2>
50
<h2>Выводы</h2>
51
<p>Тестирование включает в себя широкий спектр задач и подзадач, для которых требуются специалисты разных уровней и подготовки. Среди всех видов тестирования можно выделить несколько базовых групп:</p>
51
<p>Тестирование включает в себя широкий спектр задач и подзадач, для которых требуются специалисты разных уровней и подготовки. Среди всех видов тестирования можно выделить несколько базовых групп:</p>
52
<ul><li>Функциональное и нефункциональное тестирование</li>
52
<ul><li>Функциональное и нефункциональное тестирование</li>
53
<li>Статическое и динамическое тестирование</li>
53
<li>Статическое и динамическое тестирование</li>
54
<li>Ручное и автоматизированное тестирование</li>
54
<li>Ручное и автоматизированное тестирование</li>
55
</ul><p>Функциональное тестирование направлено на тестирование заявленного функционала приложения. А нефункциональное тестирование направлено на тестирование вторичных вещей: удобство и качество.</p>
55
</ul><p>Функциональное тестирование направлено на тестирование заявленного функционала приложения. А нефункциональное тестирование направлено на тестирование вторичных вещей: удобство и качество.</p>
56
<p>В зависимости от того, где тестируется приложение, разделяют два вида тестов: статические и динамические. Динамические тесты используются на работающем приложении, а статические - определяют качество написанного кода и отсутствие логических ошибок в нем.</p>
56
<p>В зависимости от того, где тестируется приложение, разделяют два вида тестов: статические и динамические. Динамические тесты используются на работающем приложении, а статические - определяют качество написанного кода и отсутствие логических ошибок в нем.</p>
57
<p>Почти все тесты можно сделать в автоматическом или ручном режиме. При ручном тестировании за тестирование отвечает специалист, который самостоятельно проверяет приложение по разным критериям. При автоматическом тестировании все тесты - это скрипты, которые пишут разработчики. После этого роль человека заканчивается и тесты проверяют всё автоматически.</p>
57
<p>Почти все тесты можно сделать в автоматическом или ручном режиме. При ручном тестировании за тестирование отвечает специалист, который самостоятельно проверяет приложение по разным критериям. При автоматическом тестировании все тесты - это скрипты, которые пишут разработчики. После этого роль человека заканчивается и тесты проверяют всё автоматически.</p>
58
<p>Эти типы тестирования не могут заменить друг друга, а происходят параллельно. Это позволяет протестировать все области приложения в разных сценариях.</p>
58
<p>Эти типы тестирования не могут заменить друг друга, а происходят параллельно. Это позволяет протестировать все области приложения в разных сценариях.</p>