# Симуляторы и эмуляторы

**Реальное устройство** позволяет запускать мобильные приложения и проверять его функциональность. Тестирование реального устройства гарантирует, что ваше приложение будет работать без проблем на клиентских телефонах. Когда устройств становится слишком много, их иногда собирают в так называемые фермы устройств. Реальными устройствами также не обязательно обладать, сейчас широко распространены облачные решения.

**Эмулятор (emulator)** - это устройство, компьютерная программа или система, которая принимает те же самые входные данные и выдает те же самые выходные данные, что и данная система. (IEEE 610)\
Эмулятор пытается дублировать устройство - это полноценная виртуалка (контейнер) со своей сетевой картой и диском, то есть представляет собой полную повторную реализацию конкретного устройства или платформы изолированно внутри нашей хост-системы. Одним из недостатков такого подхода является невысокая скорость работы и повышенные требования к потреблению ресурсов. Примером служит эмулятор в Android Studio, хотя можно найти и неофициальные эмуляторы и образы Android-устройств.

**Симулятор (simulator)** - это устройство, компьютерная программа или система, используемая в тестировании, работающая или ведущая себя аналогично заданной при тех же входных данных. (IEEE 610, DO178b)\
Симулятор пытается дублировать только поведение устройства. Как правило, симулятор - это имитация лишь отдельных свойств, возможностей или функций симулируемой системы, причем не в полном объеме, а только в том, в каком это необходимо в рамках тех задач, которые были поставлены перед симулятором. Вы как будто бы работаете с настоящим устройством, но при этом под капотом оно является лишь ПО-имитацией, не работающей изолированно от нашей системы и использующей общий диск и сеть. Примером служит симулятор в XCode.

Доп. материал:

* [Как тестировать на эмуляторе (android studio)](https://www.youtube.com/watch?v=ic-sniUEYw4)
* [Как тестировать на симуляторе. Основы тестирования на симуляторе Iphone. Simulator ios xcode](https://www.youtube.com/watch?v=LimscelXdFI)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vladislaveremeev.gitbook.io/qa_bible/mobilnoe-testirovanie/simulyatory-i-emulyatory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
