Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 857
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 289/301
if [ -f "OUT/Картинка.jpg" ]
then
echo "ERROR! Picture file was processed!" >> smoke_test.log
else
echo "OK! Picture file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/Картинка в виде TXT.txt" ]
then
echo "OK! Picture file with TXT extension was processed!" >> smoke_test.log
else
echo "ERROR! Picture file with TXT extension was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/Пустой файл.md" ]
then
echo "OK! Empty file was processed!" >> smoke_test.log
else
echo "ERROR! Empty file was NOT processed!" >> smoke_test.log
fi
# ===========================================================================
# ===========================================================================
# Проверка удаления из входного каталога файлов, которые должны быть обработаны,
# и неудаления файлов, которые не должны быть обработаны:
echo "" >> smoke_test.log
echo "Moving test:" >> smoke_test.log
if [ ! -f "IN/«Мелкий» файл в WIN1251.txt" ]
then
echo "OK! '«Мелкий» файл в WIN1251.txt' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Мелкий» файл в WIN1251.txt' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/«Средний» файл в CP866.txt" ]
then
echo "OK! '«Средний» файл в CP866.txt' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Средний» файл в CP866.txt' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/«Крупный» файл в KOI8R.txt" ]
then
echo "OK! '«Крупный» файл в KOI8R.txt' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Крупный» файл в KOI8R.txt' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/«Крупный» файл в win-1251.html" ]
then
echo "OK! '«Крупный» файл в win-1251.html' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Крупный» файл в win-1251.html' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/«Мелкий» файл в cp-866.html" ]
then
echo "OK! '«Мелкий» файл в cp-866.html' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Мелкий» файл в cp-866.html' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/«Средний» файл в koi8-r.html" ]
then
echo "OK! '«Средний» файл в koi8-r.html' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Средний» файл в koi8-r.html' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/«Средний» файл в WIN_1251.md" ]
then
echo "OK! '«Средний» файл в WIN_1251.md' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Средний» файл в WIN_1251.md' file was NOT moved!" >> smoke_test.log
fi
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 290/301
if [ ! -f "IN/«Крупный» файл в CP_866.md" ]
then
echo "OK! '«Крупный» файл в CP_866.md' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Крупный» файл в CP_866.md' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/«Мелкий» файл в KOI8_R.md" ]
then
echo "OK! '«Мелкий» файл в KOI8_R.md' file was moved!" >> smoke_test.log
else
echo "ERROR! '«Мелкий» файл в KOI8_R.md' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/Слишком большой файл.txt" ]
then
echo "ERROR! 'Too big' file was moved!" >> smoke_test.log
else
echo "OK! 'Too big' file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/Картинка.jpg" ]
then
echo "ERROR! Picture file was moved!" >> smoke_test.log
else
echo "OK! Picture file was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/Картинка в виде TXT.txt" ]
then
echo "OK! Picture file with TXT extension was moved!" >> smoke_test.log
else
echo "ERROR! Picture file with TXT extension was NOT moved!" >> smoke_test.log
fi
if [ ! -f "IN/Пустой файл.md" ]
then
echo "OK! Empty file was moved!" >> smoke_test.log
else
echo "ERROR! Empty file was NOT moved!" >> smoke_test.log
fi
# ===========================================================================
clear
# ===========================================================================
# Проверка конвертации файлов путём сравнения результатов
# работы приложения с эталонными файлами:
echo "" >> smoke_test.log
echo "Comparing test:" >> smoke_test.log
if cmp -s "Test_ETALON/«Мелкий» эталон WIN1251.txt" "OUT/«Мелкий» файл в WIN1251.txt"
then
echo "OK! File '«Мелкий» файл в WIN1251.txt' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Мелкий» файл в WIN1251.txt' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/«Средний» эталон CP866.txt" "OUT/«Средний» файл CP866.txt"
then
echo "OK! File '«Средний» файл CP866.txt' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Средний» файл CP866.txt' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/«Крупный» эталон KOI8R.txt" "OUT/«Крупный» файл KOI8R.txt"
then
echo "OK! File '«Крупный» файл KOI8R.txt' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Крупный» файл KOI8R.txt' was NOT processed correctly!" >> smoke_test.log
fi
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 291/301
if cmp -s "Test_ETALON/«Крупный» файл в win-1251.html" "OUT/«Крупный» файл в win-1251.html"
then
echo "OK! File '«Крупный» файл в win-1251.html' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Крупный» файл в win-1251.html' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/«Мелкий» эталон в cp-866.html" "OUT/«Мелкий» файл в cp-866.html"
then
echo "OK! File '«Мелкий» файл в cp-866.html' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Мелкий» файл в cp-866.html' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/«Средний» эталон в koi8-r.html" "OUT/«Средний» файл в koi8-r.html"
then
echo "OK! File '«Средний» файл в koi8-r.html' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Средний» файл в koi8-r.html' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/«Средний» эталон в WIN_1251.md" "OUT/«Средний» файл в WIN_1251.md"
then
echo "OK! File '«Средний» файл в WIN_1251.md' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Средний» файл в WIN_1251.md' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/«Крупный» эталон в CP_866.md" "OUT/«Крупный» файл в CP_866.md"
then
echo "OK! File '«Крупный» файл в CP_866.md' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Крупный» файл в CP_866.md' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/«Мелкий» эталон в KOI8_R.md" "OUT/«Мелкий» файл в KOI8_R.md"
then
echo "OK! File '«Мелкий» файл в KOI8_R.md' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File '«Мелкий» файл в KOI8_R.md' was NOT processed correctly!" >> smoke_test.log
fi
if cmp -s "Test_ETALON/Пустой файл.md" "OUT/Пустой файл.md"
then
echo "OK! File 'Пустой файл.md' was processed correctly!" >> smoke_test.log
else
echo "ERROR! File 'Пустой файл.md' was NOT processed correctly!" >> smoke_test.log
fi
echo "WARNING! File 'Картинка в виде TXT.txt' has NO etalon decision, and it's OK for this file to
be corrupted." >> smoke_test.log
# ===========================================================================
Пример результатов выполнения (на одном из первых билдов, со-
держащих множество дефектов)
Processing test:
OK! '«Мелкий» файл в WIN1251.txt' file was processed!
OK! '«Средний» файл в CP866.txt' file was processed!
OK! '«Крупный» файл в KOI8R.txt' file was processed!
OK! '«Крупный» файл в win-1251.html' file was processed!
OK! '«Мелкий» файл в cp-866.html' file was processed!
OK! '«Средний» файл в koi8-r.html' file was processed!
OK! '«Средний» файл в WIN_1251.md' file was processed!
OK! '«Крупный» файл в CP_866.md' file was processed!
OK! '«Мелкий» файл в KOI8_R.md' file was processed!
OK! 'Too big' file was NOT processed!
OK! Picture file was NOT processed!
OK! Picture file with TXT extension was processed!
Moving test:
ERROR! '«Мелкий» файл в WIN1251.txt' file was NOT moved!
ERROR! '«Средний» файл в CP866.txt' file was NOT moved!
ERROR! '«Крупный» файл в KOI8R.txt' file was NOT moved!
ERROR! '«Крупный» файл в win-1251.html' file was NOT moved!
ERROR! '«Мелкий» файл в cp-866.html' file was NOT moved!
ERROR! '«Средний» файл в koi8-r.html' file was NOT moved!
ERROR! '«Средний» файл в WIN_1251.md' file was NOT moved!
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 292/301
ERROR! '«Крупный» файл в CP_866.md' file was NOT moved!
ERROR! '«Мелкий» файл в KOI8_R.md' file was NOT moved!
OK! 'Too big' file was NOT moved!
OK! Picture file was NOT moved!
ERROR! Picture file with TXT extension was NOT moved!
Comparing test:
ERROR! File '«Мелкий» файл в WIN1251.txt' was NOT processed correctly!
ERROR! File '«Средний» файл в CP866.txt' was NOT processed correctly!
ERROR! File '«Крупный» файл в KOI8R.txt' was NOT processed correctly!
ERROR! File '«Крупный» файл в win-1251.html' was NOT processed correctly!
ERROR! File '«Мелкий» файл в cp-866.html' was NOT processed correctly!
ERROR! File '«Средний» файл в koi8-r.html' was NOT processed correctly!
ERROR! File '«Средний» файл в WIN_1251.md' was NOT processed correctly!
ERROR! File '«Крупный» файл в CP_866.md' was NOT processed correctly!
ERROR! File '«Мелкий» файл в KOI8_R.md' was NOT processed correctly!
OK! File 'Пустой файл.md' was processed correctly!
WARNING! File 'Картинка в виде TXT.txt' has NO etalon decision, and it's OK for this file to be
corrupted.
Пример данных для попарного тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 293/301
4.4.
Пример данных для попарного тестирования
№
Расположение /
длина / значение
/ комбинация
символов / заре-
зервированное
или свободное
Существо-
вание
Наличие прав доступа
Семейство
ОС
Коди-
ровки
1.
X:\
Да
К каталогу и его содержи- мому
Windows 64 bit
UTF8 2. smb://host/dir
Нет
Linux 32 bit
UTF16 3.
../dir
Да
Ни к каталогу, ни к его со- держимому
Linux 64 bit
OEM
4.
[257 байт только для Windows]
Да
Только к каталогу
Windows 64 bit
OEM
5. smb://host/dir/
Да
К каталогу и его содержи- мому
Linux 64 bit
UTF8 6. nul
Да
Ни к каталогу, ни к его со- держимому
Windows 64 bit
OEM
7.
\\
Нет
Linux 64 bit
UTF16 8.
/dir
Да
Ни к каталогу, ни к его со- держимому
Linux 32 bit
OEM
9.
./dir/
Нет
Linux 32 bit
OEM
10.
./dir
Нет
К каталогу и его содержи- мому
Linux 64 bit
UTF8 11. smb://host/dir
Да
Только к каталогу
Linux 64 bit
UTF8 12.
\\host\dir\
Да
К каталогу и его содержи- мому
Linux 32 bit
UTF8 13. host:/dir
Нет
Windows 32 bit
UTF8 14.
.\dir\
Нет
Windows 64 bit
UTF8 15.
[0 символов]
Нет
Windows 32 bit
UTF16 16.
[4097 байт только для Linux]
Нет
Linux 32 bit
UTF16 17.
..\dir\
Нет
Windows 32 bit
UTF16 18.
"/пробелы и рус- ский/"
Да
К каталогу и его содержи- мому
Windows 32 bit
OEM
19. smb://host/dir/
Да
Только к каталогу
Linux 32 bit
OEM
20. nul
Да
Windows 32 bit
UTF8 21.
"/пробелы и рус- ский"
Нет
Linux 32 bit
OEM
22. host:/dir/
Да
Только к каталогу
Windows 64 bit
UTF8 23.
../dir
Нет
Windows 64 bit
UTF16 24.
./dir/
Нет
Linux 64 bit
UTF16 25.
[257 байт только для Windows]
Нет
Windows 32 bit
UTF16 26.
"/пробелы и рус- ский/"
Нет
Linux 64 bit
UTF8 27.
Нет
Windows 32 bit
UTF8 28. host:/dir/
Нет
Linux 64 bit
OEM
29.
X:\dir\
Да
К каталогу и его содержи- мому
Windows 64 bit
UTF8
Пример данных для попарного тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 294/301 30.
\\
Да
Ни к каталогу, ни к его со- держимому
Windows 64 bit
UTF8 31.
//
Нет
Только к каталогу
Windows 64 bit
UTF8 32.
..\dir\
Нет
Ни к каталогу, ни к его со- держимому
Windows 64 bit
OEM
33.
X:\dir
Нет
Только к каталогу
Windows 64 bit
OEM
34.
"X:\
пробелы и рус- ский\"
Да
Только к каталогу
Windows 64 bit
UTF16 35.
\\host\dir\
Нет
Только к каталогу
Windows 32 bit
UTF16 36.
[256 байт только для Windows]
Да
К каталогу и его содержи- мому
Windows 32 bit
UTF8 37.
[4096 байт только для Linux]
Нет
Только к каталогу
Linux 64 bit
UTF16 38.
/dir/
Да
К каталогу и его содержи- мому
Linux 64 bit
UTF8 39.
[256 байт только для Windows]
Да
К каталогу и его содержи- мому
Windows 64 bit
OEM
40.
.\dir
Нет
К каталогу и его содержи- мому
Windows 32 bit
UTF16 41.
//
Да
Ни к каталогу, ни к его со- держимому
Windows 32 bit
OEM
42. prn
Да
Ни к каталогу, ни к его со- держимому
Windows 64 bit
UTF16 43.
..\dir
Нет
Ни к каталогу, ни к его со- держимому
Windows 64 bit
UTF16 44.
\\host\dir\
Нет
Только к каталогу
Windows 64 bit
UTF16 45.
../dir/
Да
Ни к каталогу, ни к его со- держимому
Linux 64 bit
UTF8 46.
Да
Только к каталогу
Linux 32 bit
OEM
47.
..\dir
Да
Только к каталогу
Windows 32 bit
UTF8 48.
/dir
Да
Только к каталогу
Linux 64 bit
UTF8 49.
"
Нет
Только к каталогу
Windows 32 bit
UTF8 50.
../dir/
Нет
К каталогу и его содержи- мому
Linux 32 bit
UTF16 51.
.\dir
Да
Только к каталогу
Windows 64 bit
OEM
52. host:/dir/
Нет
Ни к каталогу, ни к его со- держимому
Linux 32 bit
UTF16 53.
"/пробелы и рус- ский"
Нет
К каталогу и его содержи- мому
Linux 64 bit
UTF16 54. com1-com9
Да
Ни к каталогу, ни к его со- держимому
Windows 64 bit
UTF16 55. lpt1-lpt9
Да
Только к каталогу
Windows 32 bit
UTF8 56.
[0 символов]
Нет
Только к каталогу
Linux 64 bit
UTF16 57.
\\host\dir
Да
Ни к каталогу, ни к его со- держимому
Windows 32 bit
UTF16 58.
"X:\
пробелы и рус- ский"
Да
Только к каталогу
Windows 64 bit
UTF16 59.
\\host\dir
Нет
Только к каталогу
Linux 64 bit
UTF8 60. lpt1-lpt9
Да
Только к каталогу
Windows 64 bit
UTF8 61.
"X:\
пробелы и рус- ский"
Нет
К каталогу и его содержи- мому
Windows 32 bit
OEM
Пример данных для попарного тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 295/301 62. host:/dir
Да
К каталогу и его содержи- мому
Linux 32 bit
OEM
63.
X:\
Да
Только к каталогу
Windows 32 bit
OEM
64.
\\
Нет
Только к каталогу
Windows 32 bit
OEM
65.
[4096 байт только для Linux]
Да
К каталогу и его содержи- мому
Linux 32 bit
UTF8 66.
\\host\dir
Нет
К каталогу и его содержи- мому
Windows 64 bit
OEM
67.
"
Нет
Ни к каталогу, ни к его со- держимому
Linux 32 bit
OEM
68. con
Нет
К каталогу и его содержи- мому
Windows 32 bit
UTF16 69.
../dir
Нет
Только к каталогу
Linux 32 bit
UTF16 70.
X:\dir
Да
К каталогу и его содержи- мому
Windows 32 bit
OEM
71.
./dir
Да
К каталогу и его содержи- мому
Linux 32 bit
UTF16 72.
//
Да
К каталогу и его содержи- мому
Linux 32 bit
UTF16 73. host:/dir
Нет
Ни к каталогу, ни к его со- держимому
Linux 64 bit
UTF8 74.
/
Нет
К каталогу и его содержи- мому
Linux 64 bit
UTF8 75.
"X:\
пробелы и рус- ский\"
Да
Ни к каталогу, ни к его со- держимому
Windows 32 bit
OEM
76.
.\dir\
Да
Ни к каталогу, ни к его со- держимому
Windows 32 bit
OEM
77.
//
Нет
Только к каталогу
Linux 64 bit
OEM
78.
X:\dir\
Да
Только к каталогу
Windows 32 bit
UTF8 79.
"
Да
Ни к каталогу, ни к его со- держимому
Linux 64 bit
UTF16 80.
/
Да
К каталогу и его содержи- мому
Linux 32 bit
UTF16 81.
Да
К каталогу и его содержи- мому
Windows 64 bit
UTF16 82. com1-com9
Да
Ни к каталогу, ни к его со- держимому
Windows 32 bit
OEM
83.
Да
Ни к каталогу, ни к его со- держимому
Linux 64 bit
OEM
84.
/dir/
Да
К каталогу и его содержи- мому
Linux 32 bit
UTF16 85.
[4097 байт только для Linux]
Нет
К каталогу и его содержи- мому
Linux 64 bit
UTF16
Список основных определений
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 296/301
4.5.
Список основных определений
Для удобства поиска термины приведены в алфавитном порядке со ссыл- ками на то место в книге, где находится их подробное рассмотрение. Здесь пред- ставлены только самые важные, самые ключевые определения из двух с лишним сотен, что рассмотрены в книге.
Термин (по-
русски)
Термин (по-
английски)
Определение
Автоматизиро- ванное тести- рование
{76}
Automated test- ing
Набор техник, подходов и инструментальных средств, позволяющий исключить человека из выполнения некоторых задач в процессе тестирования.
Альфа-тести- рование
{84}
Alpha testing
Тестирование, которое выполняется внутри организации-разработчика с возможным ча- стичным привлечением конечных пользова- телей. Может являться формой внутреннего приёмочного тестирования.
Анализ перво- причин
{253}
Root cause analysis
Процесс исследования и классификации пер- вопричин возникновения событий, негативно влияющих на безопасность, здоровье, окру- жающую среду, качество, надёжность и про- изводственный процесс.
Бета-тестиро- вание
{84}
Beta testing
Тестирование, которое выполняется вне ор- ганизации-разработчика с активным привле- чением конечных пользователей/заказчиков.
Граничное условие
{237}
Border condi- tion, boundary condition
Значение, находящееся на границе классов эквивалентности.
Дефект
{169}
Defect, anomaly
Отклонение фактического результата от ожи- даний наблюдателя, сформированных на ос- нове требований, спецификаций, иной доку- ментации или опыта и здравого смысла.
Динамическое тестирова- ние
{73}
Dynamic testing
Тестирование с запуском кода на исполне- ние.
Дымовое те- стирование
{79}
Smoke test
Тестирование, которое направлено на про- верку самой главной, самой важной, самой ключевой функциональности, неработоспо- собность которой делает бессмысленной саму идею использования приложения (или иного объекта, подвергаемого дымовому те- стированию).
Список основных определений
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 297/301
Инспекция
(аудит) кода
{97}
Code review, code inspection
Семейство техник повышения качества кода за счёт того, что в процессе создания или со- вершенствования кода участвуют несколько человек. В отличие от техник статического анализа кода (по потоку управления и потоку данных), аудит кода также улучшает такие его характеристики как понятность, поддер- живаемость, соответствие соглашениям об оформлении и т.д. Аудит кода выполняется в основном самими программистами.
Интеграцион- ное тестирова- ние
{77}
Integration test- ing
Тестирование, которое направлено на про- верку взаимодействия между несколькими частями приложения (каждая из которых, в свою очередь, проверена отдельно на стадии модульного тестирования).
Класс эквива- лентности
{237}
Equivalence class
Набор данных, обрабатываемых одинаковым образом и приводящих к одинаковому ре- зультату.
Метод белого ящика
{73}
White box test- ing
Метод тестирования, в рамках которого у те- стировщика есть доступ к внутренней струк- туре и коду приложения, а также есть доста- точно знаний для понимания увиденного.
Метод серого ящика
{74}
Gray box testing
Комбинация методов белого ящика и чёрного ящика, состоящая в том, что к части кода и архитектуры у тестировщика доступ есть, а к части — нет. (См. пояснения по альтернатив- ному определению здесь:
{74}
.)
Метод чёрного ящика
{74}
Black box test- ing
Метод тестирования, в рамках которого у те- стировщика либо нет доступа к внутренней структуре и коду приложения, либо недоста- точно знаний для их понимания, либо он со- знательно не обращается к этим данным в процессе тестирования.
Метрика
{213}
Metric
Числовая характеристика показателя каче- ства. Может включать описание способов оценки и анализа результата.
Модель разра- ботки ПО
{18}
Software Devel- opment Model
Структура, систематизирующая различные виды проектной деятельности, их взаимодей- ствие и последовательность в процессе раз- работки ПО. Выбор той или иной модели за- висит от масштаба и сложности проекта, предметной области, доступных ресурсов и множества других факторов.
Модульное
(компонентное) тестирова- ние
{77}
Unit testing, component test- ing
Тестирование, направленное на проверку от- дельных небольших частей приложения, ко- торые (как правило) можно исследовать изо- лированно от других подобных частей.
Набор тест- кейсов
{146}
Test case suite, test suite, test set
Совокупность тест-кейсов, выбранных с неко- торой общей целью или по некоторому об- щему признаку.