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