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
<h2>Что такое система тестирования</h2>
3
<h2>Что такое система тестирования</h2>
4
<p>Система тестирования - это способ организации тестов на проекте. Она включает в себя определенный порядок выполнения тестов и их место в процессе разработки. Количество тестов на каждом уровне зависит от конкретного проекта и его требований.</p>
4
<p>Система тестирования - это способ организации тестов на проекте. Она включает в себя определенный порядок выполнения тестов и их место в процессе разработки. Количество тестов на каждом уровне зависит от конкретного проекта и его требований.</p>
5
<p>Как правило, система состоит из трех уровней:</p>
5
<p>Как правило, система состоит из трех уровней:</p>
6
<ul><li>Модульное тестирование</li>
6
<ul><li>Модульное тестирование</li>
7
<li>Интеграционное тестирование</li>
7
<li>Интеграционное тестирование</li>
8
<li>Системное тестирование</li>
8
<li>Системное тестирование</li>
9
</ul><h2>Модульное тестирование</h2>
9
</ul><h2>Модульное тестирование</h2>
10
<p>Модульное тестирование ищет дефекты в отдельных модулях приложения - объектах, классах, функциях, программных модулях и других компонентах, которые могут быть протестированы независимо друг от друга. Другими словами, мы проверяем конкретные фрагменты кода.</p>
10
<p>Модульное тестирование ищет дефекты в отдельных модулях приложения - объектах, классах, функциях, программных модулях и других компонентах, которые могут быть протестированы независимо друг от друга. Другими словами, мы проверяем конкретные фрагменты кода.</p>
11
<p>Модульное тестирование проводится с помощью<strong>юнит-тестов</strong>. Для примера представим, что нам нужно протестировать велосипед. На этапе модульного тестирования мы оценим, как работают отдельные запчасти - например, колесо.</p>
11
<p>Модульное тестирование проводится с помощью<strong>юнит-тестов</strong>. Для примера представим, что нам нужно протестировать велосипед. На этапе модульного тестирования мы оценим, как работают отдельные запчасти - например, колесо.</p>
12
<p>Юнит-тесты колеса могли бы проверить:</p>
12
<p>Юнит-тесты колеса могли бы проверить:</p>
13
<ul><li>Не деформирована ли сама форма колеса</li>
13
<ul><li>Не деформирована ли сама форма колеса</li>
14
<li>Нет ли повреждений на ободке, спицах и камере</li>
14
<li>Нет ли повреждений на ободке, спицах и камере</li>
15
<li>Все ли в порядке со звездочками</li>
15
<li>Все ли в порядке со звездочками</li>
16
<li>Крутится ли колесо в целом</li>
16
<li>Крутится ли колесо в целом</li>
17
</ul><p>Таким же образом проверяются другие запчасти велосипеда - например, цепь или руль.</p>
17
</ul><p>Таким же образом проверяются другие запчасти велосипеда - например, цепь или руль.</p>
18
<p>Возьмем менее бытовой пример и представим, что нам нужно протестировать корзину интернет-магазина. Работу этой корзины обеспечивает код из разных модулей - в том числе в нем есть функция, которая подсчитывает общую стоимость заказа.</p>
18
<p>Возьмем менее бытовой пример и представим, что нам нужно протестировать корзину интернет-магазина. Работу этой корзины обеспечивает код из разных модулей - в том числе в нем есть функция, которая подсчитывает общую стоимость заказа.</p>
19
<p>При модульном тестировании этой функции юнит-тесты проверяют:</p>
19
<p>При модульном тестировании этой функции юнит-тесты проверяют:</p>
20
<ul><li>Работает ли функция суммирования</li>
20
<ul><li>Работает ли функция суммирования</li>
21
<li>Нет ли в функции синтаксических или логических ошибок</li>
21
<li>Нет ли в функции синтаксических или логических ошибок</li>
22
<li>Правильным ли получается результат суммирования</li>
22
<li>Правильным ли получается результат суммирования</li>
23
</ul><p>По такому же принципу мы проверим другие модули - например, API, которое передает параметры для суммирования.</p>
23
</ul><p>По такому же принципу мы проверим другие модули - например, API, которое передает параметры для суммирования.</p>
24
<h2>Интеграционное тестирование</h2>
24
<h2>Интеграционное тестирование</h2>
25
<p>На этапе интеграционного тестирования мы проверяем взаимодействие между отдельными модулями - объектами, классами, функциями, программными модулями и так далее. Другими словами, мы проверяем, как два фрагмента кода работают вместе.</p>
25
<p>На этапе интеграционного тестирования мы проверяем взаимодействие между отдельными модулями - объектами, классами, функциями, программными модулями и так далее. Другими словами, мы проверяем, как два фрагмента кода работают вместе.</p>
26
<p>Вернемся к примеру с велосипедом. На этапе модульного тестирования мы изучили колесо и цепь по отдельности, а теперь нужно проверить взаимодействие и узнать, точно ли колесо приводится в движение с помощью цепи. Здесь мы проверяем интеграцию цепи и звездочки колеса - дергаем за цепь и смотрим, будет ли крутиться колесо.</p>
26
<p>Вернемся к примеру с велосипедом. На этапе модульного тестирования мы изучили колесо и цепь по отдельности, а теперь нужно проверить взаимодействие и узнать, точно ли колесо приводится в движение с помощью цепи. Здесь мы проверяем интеграцию цепи и звездочки колеса - дергаем за цепь и смотрим, будет ли крутиться колесо.</p>
27
<p>Перейдем к примеру с корзиной. На первом этапе мы проверили функцию суммирования и API по отдельности, а сейчас протестируем их вместе:</p>
27
<p>Перейдем к примеру с корзиной. На первом этапе мы проверили функцию суммирования и API по отдельности, а сейчас протестируем их вместе:</p>
28
<ul><li>Правильно ли API отдает параметры в функцию</li>
28
<ul><li>Правильно ли API отдает параметры в функцию</li>
29
<li>Верно ли API передает результат функции дальше</li>
29
<li>Верно ли API передает результат функции дальше</li>
30
</ul><p>В контексте системы тестирования термин "интеграционное тестирование" означает проверку взаимодействий модулей, но в других источниках вы можете встретить другое определение. Иногда этим термином обозначают проверку интеграции между двумя подсистемами, то есть какими-то большими частями программы. Это тоже правильное определение, просто оно используется в контексте других аспектов тестирования.</p>
30
</ul><p>В контексте системы тестирования термин "интеграционное тестирование" означает проверку взаимодействий модулей, но в других источниках вы можете встретить другое определение. Иногда этим термином обозначают проверку интеграции между двумя подсистемами, то есть какими-то большими частями программы. Это тоже правильное определение, просто оно используется в контексте других аспектов тестирования.</p>
31
<h2>Системное тестирование</h2>
31
<h2>Системное тестирование</h2>
32
<p>Следующий уровень - это системное тестирование. Оно выполняется для всей системы и проверяет функциональные и нефункциональные требования.</p>
32
<p>Следующий уровень - это системное тестирование. Оно выполняется для всей системы и проверяет функциональные и нефункциональные требования.</p>
33
<p>Оба рассмотренных выше примера закончатся системным тестированием:</p>
33
<p>Оба рассмотренных выше примера закончатся системным тестированием:</p>
34
<ul><li>В примере с велосипедом мы сядем на него и попробуем поехать. Если получится, значит велосипед работает как система в целом - функциональный системный тест пройден</li>
34
<ul><li>В примере с велосипедом мы сядем на него и попробуем поехать. Если получится, значит велосипед работает как система в целом - функциональный системный тест пройден</li>
35
<li>В примере с корзиной мы зайдем на сайт, добавим несколько товаров в корзину и проверим, как отображается сумма заказа. Если сумма верна и видна в интерфейсе, то - функциональный системный тест пройден</li>
35
<li>В примере с корзиной мы зайдем на сайт, добавим несколько товаров в корзину и проверим, как отображается сумма заказа. Если сумма верна и видна в интерфейсе, то - функциональный системный тест пройден</li>
36
</ul>
36
</ul>