Я не являюсь поклонником длинных ответов, но я не справился с этим.
TL: DR:
- Предпочитает функциональное тестирование через модульное тестирование при тестировании совместимости с устройствами.
- Тестирование на эмуляторах не обеспечивает вам такой же уровень уверенности, что и тестирование на реальных устройствах.
- Вероятно, лучшим вариантом будет тестирование на небольшом наборе виртуальных устройств, а затем выполнение тех же тестов на реальных эталонных устройствах.
Длинный ответ:
Прежде всего, вы уже используете решение для автоматизации функционального тестирования? Robotium - отличный вариант для этого и есть много tutorials онлайн. Я не вижу смысла в модульном тестировании (вместо функционального тестирования) на разных устройствах, за исключением проверки совместимости с различными версиями api для Android.
Во-вторых, тестирование на эмуляторах не обеспечивает вам такой же уровень уверенности, как тестирование на реальных устройствах. Некоторые вещи не то же самое, например, нет диспетчера Wii на симуляторах. Учитывая это, даже если вы создаете виртуальное устройство с пользовательским ПЗУ для каждого поддерживаемого устройства, оно не заменяет тестирование на реальных устройствах.
Наконец, на мой взгляд, учитывая мой недостаток знаний в вашем конкретном проекте, вероятно, лучшим вариантом будет тестирование на небольшом наборе виртуальных устройств, имитирующих более высокие, средние и более низкие устройства, которые вы поддерживаете в качестве первого прохода, а затем выполнить те же тесты на реальных контрольных устройствах, подключенных к вашему тестовому серверу, в качестве окончательного теста.
И да, я знаю, что не все готовы покупать кучу устройств для целей тестирования, но это торговля, поскольку вы можете только гарантировать, что она действительно работает так, как ожидалось, в конкретном устройстве при работе на этом устройстве.
Надеюсь, это поможет вам. :)
Любая причина, почему юнит-тесты должны выполняться с реальной ROM? Или вы имеете в виду тесты автоматизации? – hidro
Найдите что-то вроде [облака тестирования Android] в Google, и вы найдете множество поставщиков, которые позволяют запускать автоматические тесты на реальных устройствах Android. Например, нет способа взять произвольные ПЗУ от поставщиков и заставить их работать в эмуляторе Android, например. –
Я уже нашел поставщиков в облаке, но мне бы очень хотелось, чтобы тесты выполнялись локально. Неужели нет никакого способа добиться этого? – swalkner