1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: тестирование, автоматизация</p>
1
<p>Теги: тестирование, автоматизация</p>
2
<p><strong>Автоматизированное тестирование</strong>- не самая простая тема в сфере IT. Подступиться к ней бывает не так уж и просто, так как материалов существует очень много, но они могут быть либо противоречивы, либо неактуальны для используемой платформы. В этой статье мы кратко рассмотрим важные базовые понятия.</p>
2
<p><strong>Автоматизированное тестирование</strong>- не самая простая тема в сфере IT. Подступиться к ней бывает не так уж и просто, так как материалов существует очень много, но они могут быть либо противоречивы, либо неактуальны для используемой платформы. В этой статье мы кратко рассмотрим важные базовые понятия.</p>
3
<p>Итак, приступим:</p>
3
<p>Итак, приступим:</p>
4
<ol><li><strong>System Under Test (SUT)</strong>- это тестируемая система. В зависимости от типа автотеста, системой могут быть различные сущности.</li>
4
<ol><li><strong>System Under Test (SUT)</strong>- это тестируемая система. В зависимости от типа автотеста, системой могут быть различные сущности.</li>
5
<li><strong>Black box testing</strong>- тестирование SUT при отсутствии информации о деталях внутреннего устройства тестируемой системы.</li>
5
<li><strong>Black box testing</strong>- тестирование SUT при отсутствии информации о деталях внутреннего устройства тестируемой системы.</li>
6
-
<li><strong>White box testing</strong>- тестирование с учетом деталей внутреннего устройства SUT.</li>
6
+
<li><strong>White box testing</strong>- тестирование с уче��ом деталей внутреннего устройства SUT.</li>
7
<li><strong>Gray box testing</strong>-- комбинация подходов.</li>
7
<li><strong>Gray box testing</strong>-- комбинация подходов.</li>
8
<li><strong>Test doubles</strong>-- тестовые дублеры, они же фиктивные объекты, которые заменяют объекты реальные, что необходимо для достижения целей автотеста.</li>
8
<li><strong>Test doubles</strong>-- тестовые дублеры, они же фиктивные объекты, которые заменяют объекты реальные, что необходимо для достижения целей автотеста.</li>
9
</ol><p>Говоря о<strong>тестовых дублерах</strong>, следует добавить, что они позволяют:</p>
9
</ol><p>Говоря о<strong>тестовых дублерах</strong>, следует добавить, что они позволяют:</p>
10
<ul><li>зафиксировать тестовое окружение, сымитировав нестабильные, медленные либо нереализованные внешние объекты (базу данных, сервер);</li>
10
<ul><li>зафиксировать тестовое окружение, сымитировав нестабильные, медленные либо нереализованные внешние объекты (базу данных, сервер);</li>
11
<li>выполнять проверки своих вызовов (обращений ко свойствам, к функциям).</li>
11
<li>выполнять проверки своих вызовов (обращений ко свойствам, к функциям).</li>
12
</ul><p>Наиболее хорошо известны 5 типов тестовых дублеров, разных по свойствам: Dummy, Stub, Spy, Fake, Mock. Рассмотрим некоторые из них:</p>
12
</ul><p>Наиболее хорошо известны 5 типов тестовых дублеров, разных по свойствам: Dummy, Stub, Spy, Fake, Mock. Рассмотрим некоторые из них:</p>
13
<p><strong>Stub</strong>- объект, возвращающий при вызовах его функций/свойств предустановленные (hardcoded) результаты, при этом код реального объекта не выполняется. Когда же функция возвращаемого значения не имеет, вызов просто игнорируется.<strong>Mock</strong>- объект, который позволяет проверять поведение SUT посредством отслеживания обращений к функциям/свойствам объекта (например, были ли в ходе автотеста вызваны функции мока, в правильном ли это произошло порядке, были ли переданы в них ожидаемые аргументы и т. п. Также Mock может включать функциональность Stub.</p>
13
<p><strong>Stub</strong>- объект, возвращающий при вызовах его функций/свойств предустановленные (hardcoded) результаты, при этом код реального объекта не выполняется. Когда же функция возвращаемого значения не имеет, вызов просто игнорируется.<strong>Mock</strong>- объект, который позволяет проверять поведение SUT посредством отслеживания обращений к функциям/свойствам объекта (например, были ли в ходе автотеста вызваны функции мока, в правильном ли это произошло порядке, были ли переданы в них ожидаемые аргументы и т. п. Также Mock может включать функциональность Stub.</p>
14
<p>Впрочем, подробнее об этих и других видах дублеров лучше читать в<a>первоисточнике</a>.</p>
14
<p>Впрочем, подробнее об этих и других видах дублеров лучше читать в<a>первоисточнике</a>.</p>
15
<h2>Несколько слов о качестве автотестов</h2>
15
<h2>Несколько слов о качестве автотестов</h2>
16
<p>При разработке автоматизированных тестов важно обеспечить их базовое качество. Следовательно, здесь следует соблюдать ряд правил написания кода, сформулированных Робертом Мартином в книге "Clean Code". Речь идет о<strong>глобальных принципах F.I.R.S.T.</strong>:</p>
16
<p>При разработке автоматизированных тестов важно обеспечить их базовое качество. Следовательно, здесь следует соблюдать ряд правил написания кода, сформулированных Робертом Мартином в книге "Clean Code". Речь идет о<strong>глобальных принципах F.I.R.S.T.</strong>:</p>
17
<ol><li><strong>Fast</strong>- автотесты должны выполняться быстро.</li>
17
<ol><li><strong>Fast</strong>- автотесты должны выполняться быстро.</li>
18
<li><strong>Independent</strong>- автотесты не должны друг от друга зависеть, то есть их можно выполнять в любом порядке.</li>
18
<li><strong>Independent</strong>- автотесты не должны друг от друга зависеть, то есть их можно выполнять в любом порядке.</li>
19
<li><strong>Repeatable</strong>- результат выполнения автотестов должен быть одинаков вне зависимости от среды выполнения.</li>
19
<li><strong>Repeatable</strong>- результат выполнения автотестов должен быть одинаков вне зависимости от среды выполнения.</li>
20
<li><strong>Self-validating</strong>- важно, чтобы автоматизированные тесты однозначно сообщали о том, является ли их прохождение успешным либо нет.</li>
20
<li><strong>Self-validating</strong>- важно, чтобы автоматизированные тесты однозначно сообщали о том, является ли их прохождение успешным либо нет.</li>
21
<li><strong>Timely</strong>- автотесты должны создаваться своевременно.</li>
21
<li><strong>Timely</strong>- автотесты должны создаваться своевременно.</li>
22
</ol><p><em>По материалам https://vc.ru/dev/199012-bystryy-start-gayd-po-avtomatizirovannomu-testirovaniyu-dlya-android-razrabotchika-jvm.</em></p>
22
</ol><p><em>По материалам https://vc.ru/dev/199012-bystryy-start-gayd-po-avtomatizirovannomu-testirovaniyu-dlya-android-razrabotchika-jvm.</em></p>
23
23