HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Основная рабочая задача тестировщика - это проверять, насколько продукт или отдельная функциональность соответствует требованиям. При этом типы требований бывают разными, и к каждому типу нужен свой подход. Поэтому в этом уроке мы обсудим типы требований и выясним, почему важно разбираться в этой теме.</p>
1 <p>Основная рабочая задача тестировщика - это проверять, насколько продукт или отдельная функциональность соответствует требованиям. При этом типы требований бывают разными, и к каждому типу нужен свой подход. Поэтому в этом уроке мы обсудим типы требований и выясним, почему важно разбираться в этой теме.</p>
2 <h2>Что такое требования</h2>
2 <h2>Что такое требования</h2>
3 <p>В целом,<strong>требования</strong>- это совокупность утверждений, относящихся к атрибутам, свойствам или качествам создаваемой программной системы. Еще описание того, что мы ожидаем от системы - какие функции, свойства и качества у нее должны быть. Требования создаются в процессе разработки и анализа. Они могут быть представлены в разных форматах в виде:</p>
3 <p>В целом,<strong>требования</strong>- это совокупность утверждений, относящихся к атрибутам, свойствам или качествам создаваемой программной системы. Еще описание того, что мы ожидаем от системы - какие функции, свойства и качества у нее должны быть. Требования создаются в процессе разработки и анализа. Они могут быть представлены в разных форматах в виде:</p>
4 <ul><li>Текста</li>
4 <ul><li>Текста</li>
5 <li>Изображений - например, в виде макетов страниц</li>
5 <li>Изображений - например, в виде макетов страниц</li>
6 <li>Блок-схем</li>
6 <li>Блок-схем</li>
7 <li>А также в других форматах</li>
7 <li>А также в других форматах</li>
8 </ul><h2>Кто определяет требования</h2>
8 </ul><h2>Кто определяет требования</h2>
9 <p>Требования могут поступать от заказчиков системы, обычных пользователей и членов команды. Они выражают свои требования по-разному - от формулировок в духе "хочу вот такую функцию" до полноценных технических заданий. Чтобы понять, как это выглядит на практике, представим себя на месте создателей какого-нибудь нового сервиса:</p>
9 <p>Требования могут поступать от заказчиков системы, обычных пользователей и членов команды. Они выражают свои требования по-разному - от формулировок в духе "хочу вот такую функцию" до полноценных технических заданий. Чтобы понять, как это выглядит на практике, представим себя на месте создателей какого-нибудь нового сервиса:</p>
10 <ul><li>Сначала вся команда продумывает идею приложения и определяет, какая функциональность должна в нем быть - самые базовые требования создаются именно на этом этапе</li>
10 <ul><li>Сначала вся команда продумывает идею приложения и определяет, какая функциональность должна в нем быть - самые базовые требования создаются именно на этом этапе</li>
11 <li>Дальше программисты разрабатывают приложение и сверяются, все ли требования выполнены</li>
11 <li>Дальше программисты разрабатывают приложение и сверяются, все ли требования выполнены</li>
12 <li>Дальше приложением занимаются тестировщики - они смотрят, соответствует ли реализованное приложение заданным требованиям</li>
12 <li>Дальше приложением занимаются тестировщики - они смотрят, соответствует ли реализованное приложение заданным требованиям</li>
13 </ul><p>Кроме того, требования могут прийти от:</p>
13 </ul><p>Кроме того, требования могут прийти от:</p>
14 <ul><li>Пользователей. Они могут написать отзыв и предложить какую-то новую функцию, которая кажется им полезной</li>
14 <ul><li>Пользователей. Они могут написать отзыв и предложить какую-то новую функцию, которая кажется им полезной</li>
15 <li>Конкурентов. Аналитики нашей компании могут изучить продукты конкурентов и предложить функциональность, как у них</li>
15 <li>Конкурентов. Аналитики нашей компании могут изучить продукты конкурентов и предложить функциональность, как у них</li>
16 <li>Законодательства. В законе могут быть прописаны какие-нибудь обязательные моменты, которые должны быть в приложении. Самый наглядный пример - закон о защите персональных данных, который описывает, как хранить данные пользователей и какие технологии использовать</li>
16 <li>Законодательства. В законе могут быть прописаны какие-нибудь обязательные моменты, которые должны быть в приложении. Самый наглядный пример - закон о защите персональных данных, который описывает, как хранить данные пользователей и какие технологии использовать</li>
17 <li>Экспертов в предметной области. Например, сотрудники банков могут предлагать новые фичи для банковского приложения, потому что они знают, как люди пользуются картами и счетами</li>
17 <li>Экспертов в предметной области. Например, сотрудники банков могут предлагать новые фичи для банковского приложения, потому что они знают, как люди пользуются картами и счетами</li>
18 <li>Команд других продуктов. Иногда появляются требования, необходимые для интеграции с другим продуктом. Например, ваше приложение должно работать в связке с другим продуктом, у которого свои протоколы и интерфейсы - нужно под них подстроиться</li>
18 <li>Команд других продуктов. Иногда появляются требования, необходимые для интеграции с другим продуктом. Например, ваше приложение должно работать в связке с другим продуктом, у которого свои протоколы и интерфейсы - нужно под них подстроиться</li>
19 </ul><h2>Функциональные и нефункциональные требования</h2>
19 </ul><h2>Функциональные и нефункциональные требования</h2>
20 <p>В тестировании требования делятся на две категории:</p>
20 <p>В тестировании требования делятся на две категории:</p>
21 <ul><li><strong>Функциональные</strong>- описывают основные действия, которые должна выполнять система. Они играют важную роль в разработке, поэтому команда тщательно обдумывает все формулировки. Например, для интернет-магазина функция "Добавить товар в корзину" будет функциональной, потому что без нее приложение не имеет смысла</li>
21 <ul><li><strong>Функциональные</strong>- описывают основные действия, которые должна выполнять система. Они играют важную роль в разработке, поэтому команда тщательно обдумывает все формулировки. Например, для интернет-магазина функция "Добавить товар в корзину" будет функциональной, потому что без нее приложение не имеет смысла</li>
22 <li><strong>Нефункциональные</strong>- определяют свойства системы, которые не связаны с ее поведением. Например, способность сайта обрабатывать 100 заказов в минуту - это не функциональность, а характеристика производительности</li>
22 <li><strong>Нефункциональные</strong>- определяют свойства системы, которые не связаны с ее поведением. Например, способность сайта обрабатывать 100 заказов в минуту - это не функциональность, а характеристика производительности</li>
23 </ul><p>Другими словами, функциональные требования описывают действия, а нефункциональные - характеристики системы. При этом нефункциональные требования тоже важны. Например, в них входит отказоустойчивость, качество работы системы и безопасность. Формально это нефункциональные требования, но они крайне важны для компании и ее клиентов.</p>
23 </ul><p>Другими словами, функциональные требования описывают действия, а нефункциональные - характеристики системы. При этом нефункциональные требования тоже важны. Например, в них входит отказоустойчивость, качество работы системы и безопасность. Формально это нефункциональные требования, но они крайне важны для компании и ее клиентов.</p>
24 <h2>Явные и неявные требования</h2>
24 <h2>Явные и неявные требования</h2>
25 <p>Еще требования могут отличаться по уровню детализации:</p>
25 <p>Еще требования могут отличаться по уровню детализации:</p>
26 <ul><li><strong>Явные</strong>- это конкретные инструкции, техническая документация, спецификации и пользовательские истории</li>
26 <ul><li><strong>Явные</strong>- это конкретные инструкции, техническая документация, спецификации и пользовательские истории</li>
27 <li><strong>Неявные</strong>- это абстрактные представления о продукте, которые возникают из опыта, здравого смысла или стандартов</li>
27 <li><strong>Неявные</strong>- это абстрактные представления о продукте, которые возникают из опыта, здравого смысла или стандартов</li>
28 </ul><p>В неявные требования входит все, что нужно продукту, но не обозначено в документации. Для примера представим сайт с кнопками "Да" и "Нет". Если сайт цветной, то у кнопок должен быть какой-то цвет. Если он не описан, то это неявное требование.</p>
28 </ul><p>В неявные требования входит все, что нужно продукту, но не обозначено в документации. Для примера представим сайт с кнопками "Да" и "Нет". Если сайт цветной, то у кнопок должен быть какой-то цвет. Если он не описан, то это неявное требование.</p>
29 <p>Бывают и более критически важные неявные требования - например, отказоустойчивость, надежность и безопасность. В таких случаях надо уточнять неявные требования и делать их явными, чтобы с продуктом точно все было в порядке.</p>
29 <p>Бывают и более критически важные неявные требования - например, отказоустойчивость, надежность и безопасность. В таких случаях надо уточнять неявные требования и делать их явными, чтобы с продуктом точно все было в порядке.</p>
30 <p>Кроме того, требования бывают<strong>производными</strong>- они не зафиксированные требования, которые вытекают из явных требований и относятся к конкретным аспектам системы.</p>
30 <p>Кроме того, требования бывают<strong>производными</strong>- они не зафиксированные требования, которые вытекают из явных требований и относятся к конкретным аспектам системы.</p>
31 <p>Для примера возьмем приложение интернет-магазина с явным требованием "Система должна выдерживать нагрузку в 1000 пользователей". Само по себе это требование не имеет смысла - ведь пользователи не просто заходят посмотреть, но и делают покупки. Значит, нужно сформулировать производное требование "Платежная система должна выдерживать 500 запросов в секунду".</p>
31 <p>Для примера возьмем приложение интернет-магазина с явным требованием "Система должна выдерживать нагрузку в 1000 пользователей". Само по себе это требование не имеет смысла - ведь пользователи не просто заходят посмотреть, но и делают покупки. Значит, нужно сформулировать производное требование "Платежная система должна выдерживать 500 запросов в секунду".</p>
32 <p>Для тестирования производных требований часто используются запросы к API. Например, они помогают проверить, способен ли сайт принять 100 заказов в минуту - причем без использования интерфейса. Именно так тестируются высоконагруженные системы с десятками и сотнями тысяч запросов в секунду.</p>
32 <p>Для тестирования производных требований часто используются запросы к API. Например, они помогают проверить, способен ли сайт принять 100 заказов в минуту - причем без использования интерфейса. Именно так тестируются высоконагруженные системы с десятками и сотнями тысяч запросов в секунду.</p>
33 <h2>Какими должны быть требования</h2>
33 <h2>Какими должны быть требования</h2>
34 <p>Далее в курсе мы подробнее рассмотрим этот вопрос. А пока обсудим самое главное свойство -<strong>однозначность</strong>. Требования должны быть ясны и не допускать неоднозначности. В них недопустимы оценочные высказывания и субъективные оценки, потому что такие двусмысленные моменты каждый тестировщик поймет по-своему.</p>
34 <p>Далее в курсе мы подробнее рассмотрим этот вопрос. А пока обсудим самое главное свойство -<strong>однозначность</strong>. Требования должны быть ясны и не допускать неоднозначности. В них недопустимы оценочные высказывания и субъективные оценки, потому что такие двусмысленные моменты каждый тестировщик поймет по-своему.</p>
35 <p>Кроме того, хорошее требование должно быть:</p>
35 <p>Кроме того, хорошее требование должно быть:</p>
36 <ul><li>Ясным</li>
36 <ul><li>Ясным</li>
37 <li>Последовательным</li>
37 <li>Последовательным</li>
38 <li>Не противоречащим другим требованиям, документации и законодательству</li>
38 <li>Не противоречащим другим требованиям, документации и законодательству</li>
39 <li>Атомарным (описывающим только одну функцию)</li>
39 <li>Атомарным (описывающим только одну функцию)</li>
40 <li>С явным источником требования</li>
40 <li>С явным источником требования</li>
41 <li>Актуальным</li>
41 <li>Актуальным</li>
42 <li>Выполнимым в условиях текущего проекта</li>
42 <li>Выполнимым в условиях текущего проекта</li>
43 </ul>
43 </ul>