HTML Diff
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>