что такое тестовая система
Зачем нужна система управления тестированием?
TADетали
Тестирование ПО — важнейшая составляющая процесса обеспечения качества программного обеспечения, которая заключается в проверке соответствия между реальным и ожидаемым поведением программы, осуществляемая на специально подобранном конечном наборе тестов. Системы тестирования ПО позволяют управлять всеми типами тестов из единого центра и предоставлять полную отчётность по всему процессу. Разобраться с тем, зачем нужны системы управления тестированием, нам помогают специалисты компании IBS AppLine.
Содержание
Для чего требуется тестирование ПО?
Тестирование – одна из составляющих глобального процесса обеспечения качества ПО. Сейчас, когда все отрасли устремлены в цифровое пространство и компании конкурируют за клиентов через качество итогового продукта, безусловно важно предоставлять клиентам продукты без сбоев, которые будут удобны и визуально приятны. Застраховаться от таких рисков и позволяет тестирование разнообразных видов, где проверяется всё: от соответствия функционала техническому заданию до корректности данных и удобства использования.
Тестирование может быть организовано как профессиональными тестировщиками, так и при помощи пользователей, но в современных реалиях без первого не обойтись. Программное обеспечение стало настолько сложным и многофункциональным, что без специальных знаний и опыта полноценно протестировать его невозможно. Даже в самом идеальном коде неизбежно возникают ошибки – из-за человеческого фактора, не выявленных ранее несовместимостей, наконец, просто из-за того, что разработчик спешит выпустить свой продукт. Учитывая высокую конкуренцию на рынке, малейшие ошибки способны навредить даже самому передовому решению. Поэтому лишь профессионалы могут предложить комплексное тестирование, позволяющее выявить и грамотно описать ошибки, оценить производительность, работу ПО под нагрузкой и эффективность реализованных в нём средств безопасности. Кроме того, только профессионалы могут специально для конкретного проекта разработать необходимые утилиты, если существующие инструменты не позволяют решить поставленные клиентом задачи.
Все многочисленные виды тестирования ПО можно условно разделить на три большие группы: функциональные, нефункциональные и связанные с изменениями.
На каких принципах и на основе какой методологии осуществляется тестирование ПО?
Проекты тестирования всегда направлены на выполнение конечной цели – понять качество продукта и принять правильные решения о его дальнейшем развитии (приоритеты следующего спринта, внедрение, календарный график проекта). Сам принцип ведения проектов независимого тестирования всегда основан на привязке к методологии разработки, прозрачной отчетности о качестве тестируемого ПО, максимально простых и понятных прописанных планах тестирования и тест-кейсах.
Почему IBS AppLine пришла к созданию своих собственных инструментов тестирования?
Более 15 лет практики тестирования в компании IBS AppLine привели к выводу о необходимости создания собственных инструментов тестирования, которые смогли бы максимально автоматизировать функциональное и нагрузочное тестирование. На базе накопленных знаний и экспертизы специалисты компании задались целью ускорить старт проектов, повысить качество тестирования, снизить риск ошибок и упростить введение в работу новичков. Решающую роль при этом сыграли три фактора:
С появлением собственных инструментов автоматизации тестирования в IBS AppLine логически пришли к необходимости организации управления тестированием из единого центра, в результате чего была разработана система управления тестированием «Кайман».
Что такое система управления тестированием ПО?
Система управления тестированием (Test Management System, TMS) – это важная составляющая процесса, которая объединяет все активности и даёт доступ к отчетности по всему процессу. Такая система нужна тем, кто понимает ценность тестирования, хочет им управлять из единого центра, а не собирать множество разномастных отчётов.
Каковы ключевые особенности и преимущества автоматизированной системы управления тестированием ПО «Кайман»?
Систем управления тестированием на рынке много и они появились довольно давно, но именно полнофункциональных решений среди них практически нет. Это либо очень дорогие импортные системы, где управление нагрузочным и функциональным тестированием всё равно разведено по разным модулям, либо Jira с плагинами, которые каждый может выбирать по своему усмотрению, либо какие-то OpenSource продукты, изначально представляющие из себя конструктор. Российские решения по управлению тестированием дают возможность работать только в части функционального тестирования, причём с большим перекосом в ручное управление — уровень автоматизации в них незначителен.
Стэк решений от IBS AppLine: «Кайман» в качестве командного центра, «Хамелеон» — автоматизация тестирования, «Циклон» — нагрузочное тестирование: это полноценно интегрирующееся решение, которые закрывает все потребности по функциональному и нагрузочному тестированию. Эти решения сочетают в себе плюсы как классических коммерческих (наличие поддержки, приятный и функциональный интерфейс, комплексность решений), так и OpenSource решений (новые технологии, активное развитие продукта, возможность взаимодействия с внешними системами, например, управления дефектами).
Например, уже сейчас «Кайман» полноценно поддерживает организацию и проведение нагрузочного тестирования, чего нет в большинстве конкурирующих систем. — отметил Николай Стрельцов, заместитель директора отделения автоматизированного тестирования.
Где используется «Кайман» и как выглядит процесс работы с этим продуктом?
В настоящее время «Кайман» применяется для организации и проведения тестирования в ряде проектов компании по заказной разработке. Инструментом пользуются владельцы продукта, аналитики, тест-дизайнеры, тестировщики, специалисты по автоматизированному и нагрузочному тестированию, тест-менеджеры.
Если кратко описать классический процесс работы с Кайманом в части ручного функционального тестирования, то он выглядит примерно так:
В части автоматизированного и нагрузочного тестирования процессы проходят несколько иначе, тем не менее, их вполне можно назвать классическими. Тем, кто знаком с этими видами тестирования, не составит труда разобраться с подходом и принципами автоматизации, которые обеспечивает «Кайман».
Каков следующий этап развития системы управления тестированием и его области применения?
Если говорить о будущем, то здесь в IBS AppLine выделяют два основных вектора развития:
• Комплексная система управления тестированием, закрывающая все возможные потребности клиента в различных видах тестирования ПО.
• Инновационный продукт, позволяющий решать насущные проблемы тестирования и его заказчиков.
Топ-12 лучших систем управления тестированием 2020
Каждый проект уникален и у каждой команды свои запросы. Однако всех нас объединяет желание работать с качественными инструментами, которые экономят время и позволяют QA-специалистам тестировать качественнее и быстрее, в идеале чтобы TMS могла совмещать ручное и автоматизированное тестирование.
Мы вновь проанализировали проверенные временем и новые системы управления тестированием, которые сейчас популярны на рынке. Выбрали функции, которые должны быть в Test Management System нашей мечты, сравнили возможности продуктов и изучили отзывы пользователей. Делимся списком инструментов, один из которых точно подойдёт вашей команде.
Здесь нет рейтинга, у каждого инструмента есть свои преимущества и недостатки. В основном инструменты тест-менеджмента платные, однако у всех есть бесплатная пробная версия.
Что мы хотим от удобной Test Management System?
Пользователь TMS ожидает увидеть следующее:
Зачем нужна TMS?
Решить задачу создания единой TMS для работы со всей документацией проекта можно несколькими способами:
Популярные системы управления тестированием на 2020 г
1. ALM Octane
ALM Octane — долгожитель среди систем управления и жизненным циклом продукта, и его тестировании. Инструмент позволяет осуществлять планирование, создание, тестирование и контроль на всех этапах разработки. Сложен в первоначальном освоении, но незаменим для компании крупной руки, где особое внимание уделяется деталям производства. Поддержана функциональность общих шагов. Работа с автоматизированными тестами. Фактические время прохождения для каждого тестового сценария. Реализована функциональность вебхуков.
Присутствует внутренний баг-трекер. Удобная система конструирования отчетов.
Именно потому, что продукт уже обкатан, в интернете есть великое множество мануалов и видеогайдов по настройке и использованию.
2. Test IT
Test IT — шустрая российская TMS, которую создают тестировщики для тестировщиков. Основная фишка — совмещение ручных и автотестов в одном интерфейсе, что здорово способствует объединению QA-команды. Анализ автотестов теперь возможен в одной системе с тестовой моделью! Разработчики приложения уделяют большое внимание автоматизированному тестированию, каждый тестовый случай в библиотеке тестов можно линковать с автотестами по API. Правильно настроенная интеграция с автотестами позволяет следить за прогонами и их результатами прямо из TMS в режиме реального времени. Вы сможете видеть, какие автоматические тесты в процессе выполнения, анализировать их результаты и просматривать исходный код прямо из Test IT. При необходимости можно создать тест-ран вне системы и заполнить его своими автотестами без линка с тестовыми сценариями.
Этот инструмент отличает продуманный и красивый интерфейс. Внутри системы можно создавать проекты и вести для каждого структурированную библиотеку тестовых случаев и чек-листов, часто повторяющиеся операции выделяются в общие шаги. Инструмент гибкий — в каждом проекте создаются дополнительные пользовательские атрибуты/конфигурации, распределяются проектные роли и права, что упрощает настройку TMS под процессы компании. Test IT помогает менеджерам равномерно распределять нагрузку между тестировщиками и контролировать исполнение работ с помощью пользовательских запросов и отчётов. Также в рамках самой системы есть возможность общаться с коллегами, не используя сторонние мессенджеры. Есть элемент геймификации и возможность собирать ачивки.
Test IT активно развивается, берет фичареквесты от своих пользователей и забивает ими 40% беклога, есть грамотная техподдержка.
3. TestRail
Это программное обеспечение удобно как для команд QA, так и для разработки. План тестирования можно выстроить как по сценарию гибкой методологии, так и для более традиционного подхода. Инструмент позволяет получить представление о ходе тестирования в реальном времени. Вы можете строить конфигурированные отчеты по необходимым вам метрикам. В новых версиях появилась интеграция с Assembla. Так же была поддержана функциональность внутреннего чата и оповещений во внешнюю систему.
Помимо возможности разложения своих тестовых сценариев по тест-ранам с их дальнейшим помещением в тест-планы, вы можете использовать такую сущность как Milestone, которая позволит удобно настроить процесс прохождения тестирования.
Можно настроить типизации проекта для ведения в нем тестовой документации.
4. Zephyr
Zephyr — это плагин для всем известной JIRA, который интегрирует тестирование в проектный цикл, позволяя вам отслеживать качество программного обеспечения и принимать решения в стиле go / no-go. В новых версиях была поддержана работа с автоматизированными тестами.
Тест кейсы могут создаваться, выполняться и отслеживаться так же, как и любые другие задачи в JIRA. Для более оптимальной фиксации процесса тестирования есть интеграция с инструментами управления качеством, автоматизации, непрерывной интеграции и аналитики. Присутствует возможность создания пользовательских атрибутов. Кроме того, у продукта быстро отвечающая техподдержка.
5. Allure EE
Allure – это фреймворк для создания простых и понятных отчётов автотестов (для любого языка), представляет из себя инструмент, позволяющий внести прозрачность в процесс создания и выполнения функциональных тестов. Отчёты Allure помогают команде решить многие проблемы и начать наконец разговаривать на одном языке. Allure Enterprise стал логичным продолжением подхода automation first и поддерживает обновление тестовой документации из кода автотестов. У инструмента есть множество интеграций с фреймворками тестирования и разными языками программирования.
6. TM4J
TM4J он же Adaptavist – это приложение для управления тестированием в JIRA, позволяет вести тестовую документацию в JIRA. Линкование тестовых сценариев и issue непосредственно в JIRA. Поддержана работа с автоматизированными тестами. Возможность объединения повторяющихся шагов в общий шаг.
7. Qase
Qase это облачная TMS, которая поможет вашей команде повысить производительность и организовать удобный флоу тестирования программного обеспечения. Поддержана функциональность объединения постоянно повторяющихся действий в общий шаг, импорт данных из других TMS. Управление ролями и разрешениями для пользователей системы. В новой версии была доработана система отчетов.
8. PractiTest
PractiTest — это комплексное средство управления тестами. Оно дает полную картину процесса тестирования и более глубокое понимание результатов тестирования. Этот инструмент поможет организовать тест-сьюты в соответствии с вашими циклами и спринтами. Тестовые наборы можно формировать по различным критериям, таким как компоненты, версии или типы. Тул заточен на Agile-тестирование, регрессионное тестирование, тестирование микросервисов и DevOps.
В новых версиях была доработана функциональность работы с автоматизированными тестами.
В техподдержке работают обученные QA-сотрудники, которые могут быстро понять вашу проблему.
9. Testuff
Команда Testuff делает действительно удобный инструмент, данная TMS старается объединить в себе все методы тестирования, начиная от waterfall model и заканчивая black box testing.
Разработчики Testuff отдельно выделили свой продукт как единственную TMS, которую можно использовать на любом девайсе: смартфоны, планшеты и т.д
В данном решении есть все необходимое для TMS: классный интерфейс, понятный и удобный способ ведения тестовой документации, конфигурации и пользовательские атрибуты, два способа интеграции с любым существующим баг-трекером, а также добавили видеорекордер.
10. Azure DevOps Server
Это мощный инструмент работы с тестами и автотестами, за счет своей комплексности вы можете настроить своё рабочее пространство, как вам необходимо. Работайте напрямую со своими CI/CD сервисами, интегрируйте свои репозитории прямиком в Azure, ведите тестовую документацию по спринтам, которые будете раскладывать по бордам, делайте максимально детальные отчеты по вашей тестовой документации и результатам её прохождения.
Отдельно стоит упомянуть возможность интеграции с IDE от компании Microsoft, вы можете редактировать и настраивать свой код прямиком через Azure и интегрироваться со всевозможными системами от компании Microsoft.
11. MTM TFS
Team Foundation Server (TFS) — комплексное решение от Microsoft, которое включает в себя систему управления версиями, сбор данных, построение отчетов, отслеживание статусов и изменений по проекту.
Microsoft Test Manager — часть этого продукта и требует установки Visual Studio. Такое сочетание дает возможность связать задачи, которые поставлены перед тестировщиком, с заведенными дефектами и отчетами о затраченном на работу времени.
Планы и результаты тестирования сохраняются на сервере Team Foundation Server.
МТМ включает в себя тест-план, тест-кейс и конфигурации.
Сам TFS является проприетарным ПО, лицензия — коммерческая. Работает на трех уровнях: клиентский уровень, прикладной уровень и уровень данных, в зависимости от чего возможна работа или через web, или через десктоп-приложение. МТМ работает только на прикладном уровне, поэтому требуется установка на сервер (если сервер удаленный, работа проводится через VPN).
12. Kualitee
Kualitee — продукт Kualitatem, компании по тестированию программного обеспечения и информационной безопасности, специализирующейся на обеспечении безошибочной работы приложений повсюду.
Kualitee предлагает функции управления проектами, управления тестированием, управления дефектами с интеграцией с баг-трекерами. Гибкая система пользовательских атрибутов позволяет очень точно настроить необходимое рабочее пространство. Дополнительно есть возможность глубокой настройки профилей пользователя и его прав доступа.
Понравился пост? Не забудьте поделиться им!
И помните, только тестировщик стоит между багами и клиентом! 🙂
Основные положения тестирования
Области применения, цели и задачи тестирования ПО разнообразны, поэтому тестирование оценивается и объясняется по-разному. Иногда и самим тестировщикам бывает сложно объяснить, что такое тестирование ПО ‘as is’. Возникает путаница.
Для распутывания этой путаницы Алексей Баранцев (практик, тренер и консалтер в тестировании ПО; выходец из Института системного программирования Российской академии наук) предваряет свои тренинги по тестированию вводным видео про основные положения тестирования.
Мне кажется, что в этом докладе лектор смог наиболее адекватно и взвешенно объяснить «что такое тестирование» с точки зрения ученого и программиста. Странно, что этот текст еще не появлялся на хабре.
Привожу здесь сжатый пересказ этого доклада. В конце текста есть линки на полную версию, а также на упомянутое видео.
Основные положения тестирования
сначала попробуем понять, чем тестирование НЕ является.
Тестирование не разработка,
даже если тестировщики умеют программировать, в том числе и тесты (автоматизация тестирование = программирование), могут разрабатывать какие-то вспомогательные программы (для себя).
Тем не менее, тестирование — это не деятельность по разработке программного обеспечения.
Тестирование не анализ,
и не деятельность по сбору и анализу требований.
Хотя, в процессе тестирования иногда приходится уточнять требования, а иногда приходится их анализировать. Но эта деятельность не основная, скорее, это приходится делать просто по необходимости.
Тестирование не управление,
несмотря на то, что во многих организациях есть такая роль, как «тест-менеджер». Конечно же, тестировщиками надо управлять. Но само по себе тестирование управлением не является.
Тестирование не техписательство,
однако тестировщикам приходится документировать свои тесты и свою работу.
Тестирование нельзя считать ни одной из этих деятельностей просто потому, что в процессе разработки (или анализа требований, или написания документации для своих тестов) всю эту работу тестировщики делают для себя, а не для кого-то другого.
Деятельность значима только тогда, когда она востребована, то есть тестировщики должны что-то производить «на экспорт». Что они делают «на экспорт»?
Дефекты, описания дефектов, или отчеты о тестировании? Частично это правда.
Но это не вся правда.
Главная деятельность тестировщиков
заключается в том, что они предоставляют участникам проекта по разработке программного обеспечения отрицательную обратную связь о качестве программного продукта.
«Отрицательная обратная связь» не несет какой-то негативный оттенок, и не означает, что тестировщики делают что-то плохое, или что они делают что-то плохо. Это просто технический термин, который обозначает достаточно простую вещь.
Но эта вещь очень значимая, и, наверное, единственная наиболее значимая составляющая деятельности тестировщиков.
Существует наука — «теория систем». В ней определяется такое понятие как «обратная связь».
«Обратная связь» это некоторые данные, которые с выхода попадают обратно на вход, или какая-то часть данных, которые с выхода попадают обратно на вход. Эта обратная связь может быть положительной и отрицательной.
И та, и другая разновидности обратной связи равноценно важны.
В разработке программных систем положительной обратной связью, конечно же, является какая-то информация, которую мы получаем от конечных пользователей. Это запросы на какую-то новую функциональность, это увеличение объема продаж (если мы выпускаем качественный продукт).
Отрицательная обратная связь тоже может поступать от конечных пользователей в виде каких-то негативных отзывов. Либо она может поступать от тестировщиков.
Чем раньше предоставляется отрицательная обратная связь, тем меньше энергии необходимо для модификации этого сигнала. Именно поэтому тестировать нужно начинать как можно раньше, на самых ранних стадиях проекта, и предоставлять эту обратную связь и на этапе проектирования, и еще, может быть, раньше, еще на этапе сбора и анализа требований.
К слову, отсюда и произрастает понимание того, что тестировщики не отвечают за качество. Они помогают тем, кто за него отвечает.
Синонимы термина «тестирование»
С точки зрения того, что тестирование — это предоставление отрицательной обратной связи, всемирно известная аббревиатура QA (англ. Quality Assurance — Обеспечение качества) синонимом термина «тестирование» уж совершенно точно НЕ является.
Нельзя считать обеспечением качества простое предоставление отрицательной обратной связи, ведь Обеспечение — это некоторые позитивные меры. Подразумевается, что в этом случае мы именно обеспечиваем качество, своевременно предпринимаем какие-то меры для того, чтобы качество разработки ПО повысилось.
А вот «контроль качества» — Quality Control, можно считать в широком смысле синонимом для термина «тестирование», потому что контроль качества это и есть предоставление обратной связи в самых разных ее разновидностях, на самых разных этапах программного проекта.
Иногда тестирование подразумевается как некоторая отдельная форма контроля качества.
Путаница приходит из истории развития тестирования. В разное время под термином «тестирование» подразумевались различные действия, которые можно разделить на 2 больших класса: внешние и внутренние.
Внешние определения
Определения, которые в разное время дали Майерс, Бейзер, Канер, описывают тестирование как раз с точки зрения его ВНЕШНЕЙ значимости. То есть, с их точки зрения, тестирование — это деятельность, которая предназначена ДЛЯ чего-то, а не состоит из чего-то. Все три этих определения можно обобщить как предоставление отрицательной обратной связи.
Внутренние определения
Это определения, которые приведены в стандарт терминологии, используемой в программной инженерии, например, в стандарт де-факто, который называется SWEBOK.
Такие определения конструктивно объясняют, ЧТО представляет из себя деятельность по тестированию, но не дают ни малейшего представления о том, ДЛЯ ЧЕГО нужно тестирование, для чего потом будут использоваться все полученные результаты проверки соответствия между реальным поведением программы и ее ожидаемым поведением.
тестирование — это
Что такое тест
Разработчик тестов занимается тем, что он из огромного потенциально бесконечного набора тестов выбирает некоторый ограниченный набор.
Ну и таким образом мы можем заключить, что тестировщик делает в процессе тестирования две вещи.
1.Во-первых, он управляет выполнением программы и создает эти самые искусственные ситуации, в которых мы собираемся проверять поведение программы.
2.И, во-вторых, он наблюдает за поведением программы и сравнивает то, что он видит с тем, что ожидается.
Если тестировщик автоматизирует тесты, то он не сам наблюдает за поведением программы — он делегирует эту задачу специальному инструменту или специальной программе, которую он сам написал. Именно она наблюдает, она сравнивает наблюдаемое поведение с ожидаемым, а тестировщику выдает только некоторый конечный результат — совпадает ли наблюдаемое поведение с ожидаемым, или не совпадает.
Вот это и есть тестирование.
Другие классификации видов тестирования
Под системным тестированием подразумевается тестирование на уровне пользовательского интерфейса.
Иногда используются также некоторые другие термины, такие, как «компонентное тестирование», но я предпочитаю выделять именно эти три, по причине того, что технологическое разделение на модульное и системное тестирование не имеет большого смысла. На разных уровнях могут использоваться одни и те же инструменты, одни и те же техники. Разделение условно.
Практика показывает, что инструменты, которые позиционируются производителем как инструменты модульного тестирования, с равным успехом могут применяться и на уровне тестирования всего приложения в целом.
А инструменты, которые тестируют все приложение в целом на уровне пользовательского интерфейса иногда хотят заглядывать, например, в базу данных или вызывать там какую-то отдельную хранимую процедуру.
То есть разделение на системное и модульное тестирование вообще говоря чисто условное, если говорить с технической точки зрения.
Используются одни и те же инструменты, и это нормально, используются одни и те же техники, на каждом уровне можно говорить о тестировании различного вида.
То есть, можно говорить о модульном тестировании функциональности.
Можно говорить о системном тестировании функциональности.
Можно говорить о модульном тестировании, например, эффективности.
Можно говорить о системном тестировании эффективности.
Либо мы рассматриваем эффективность какого-то отдельно взятого алгоритма, либо мы рассматриваем эффективность всей системы в целом. То есть технологическое разделение на модульное и системное тестирование не имеет большого смысла. Потому что на разных уровнях могут использоваться одни и те же инструменты, одни и те же техники.
Наконец, при интеграционном тестировании мы проверяем, если в рамках какой-то системы модули взаимодействуют друг с другом корректно. То есть, мы фактически выполняем те же самые тесты, что и при системном тестировании, только еще дополнительно обращаем внимание на то, как именно модули взаимодействуют между собой. Выполняем некоторые дополнительные проверки. Это единственная разница.
Давайте еще раз попытаемся понять разницу между системным и модульным тестированием. Поскольку такое разделение встречается достаточно часто, эта разница должна быть.
И разница эта проявляется тогда, когда мы выполняем не технологическую классификацию, а классификацию по целям тестирования.
Классификацию по целям удобно выполнять с использованием «магического квадрата», который был изначально придуман Брайаном Мариком и потом улучшен Эри Тенненом.
В этом магическом квадрате все виды тестирования располагаются по четырем квадрантам в зависимости от того, чему в этих тестах больше уделяется внимания.
По вертикали — чем выше располагается вид тестирования, тем больше внимания уделяется некоторым внешним проявлениям поведения программы, чем ниже он находится, тем больше мы внимания уделяем ее внутреннему технологическому устройству программы.
По горизонтали — чем левее находятся наши тесты, тем больше внимания мы уделяем их программированию, чем правее они находятся, тем больше внимания мы уделяем ручному тестированию и исследованию программы человеком.
В частности, в этот квадрат можно легко вписать такие термины как приемочное тестирование, Acceptance Testing, модульное тестирование именно в том понимании, в котором оно чаще всего употребляется в литературе. Это низкоуровневое тестирование с большой, с подавляющей долей программирования. То есть это все тесты программируются, полностью автоматически выполняются и внимание уделяется в первую очередь именно внутреннему устройству программы, именно ее технологическим особенностям.
В правом верхнем углу у нас окажутся ручные тесты, нацеленные на внешнее какое-то поведение программы, в частности, тестирование удобства использования, а в правом нижнем углу у нас, скорее всего, окажутся проверки разных нефункциональных свойств: производительности, защищенности и так далее.
Так вот, исходя из классификации по целям, модульное тестирование у нас оказывается в левом нижнем квадранте, а все остальные квадранты — это системное тестирование.
- как доехать до арбата в москве на метро какая
- Что у акулы внутри живота