Android Посібник з тестування APP із платформою автоматизації
Чому Android Тестування?
Android є найбільшою операційною системою у світі. У той же час, Android є фрагментованим. існує безліч пристроїв і Android версії, з якими має бути сумісна ваша програма.
Не має значення, скільки часу ви вкладаєте в дизайн і реалізацію, помилки неминучі, і помилки з’являться.
Android Стратегія тестування
Правильна стратегія тестування Android має включати наступне
- Тестовий блок
- Інтеграційний тест
- Operaнаціональний тест
- Тест системи
Блокові тести
Модульні тести включають набори однієї чи кількох програм, які призначені для перевірки атомарної одиниці вихідного коду, наприклад методу чи класу.
Android платформа постачається попередньо інтегрованою Юніт фреймворк 3.0. Це платформа з відкритим кодом для автоматизації Unit Testing. Android Testing Framework — це потужний інструмент для розробників, який дозволяє написати ефективну програму модульного тестування.
.png)
Доповненням до модульного тестування є тести інтерфейсу користувача (UI). Ці тести стосуються компонентів інтерфейсу користувача вашої цільової програми. Тести інтерфейсу користувача гарантують, що ваша програма повертає правильний вихід інтерфейсу користувача у відповідь на послідовність дій користувача на пристрої.

Загальний спосіб виконання тестів інтерфейсу користувача на пристрої Android Вимірювальні прилади. Але це має проблеми з продуктивністю. Один із найкращих інструментів для тестування інтерфейсу користувача Android is Роботіум.
Інтеграційні тести
In Інтеграційне тестування, усі модульні випробувані модулі об’єднані та перевірені. в Android, інтеграційні тести часто включають перевірку інтеграції зAndroid такі компоненти, як тестування служби, тестування активності, тестування постачальника вмісту тощо

Для проведення інтеграційного тесту використовується багато тестових фреймворків Android такі як Troyd, Robolectric, Robotium.
Operaнаціональних тестів
- Operaтакож називаються функціональними або приймальними тестами. Це тести високого рівня, призначені для перевірки повноти та правильності заявки.
- In Android, FitNesse це фреймворк з відкритим вихідним кодом, який дозволяє легко проводити операційні тести для цільової програми.
Системні тести
In Тестування системи система тестується в цілому і перевіряється взаємодія між компонентами, програмним і апаратним забезпеченням.
In Android, Тестування системи зазвичай включає
- GUI тести
- Тести на зручність використання
- Тести продуктивності
- Стрес-тести
У наведеному вище списку Тестування продуктивності приділяється більше уваги. Ви можете використовувати такі інструменти, як Traceview провести перевірку продуктивності Android .Цей інструмент може допомогти вам налагодити вашу програму та профілювати її продуктивність.
Автоматизоване ТЕСТУВАННЯ ANDROID
Оскільки Android фрагментований, необхідно тестувати на багатьох пристроях. Але це також коштуватиме вам грошей. Автоматизований Android Тестування може допомогти зменшити витрати
Переваги автоматизованого тестування Android
- Скоротіть час на виконання тестів
- Підвищте продуктивність процесу розробки
- Раннє виявлення помилок, економія витрат на обслуговування програмного забезпечення
- Швидко знаходив і виправляв помилки в реалізації
- Забезпечити якість програмного забезпечення
Ми вивчимо наступні 2 рамки
- Android Структура тестування
- Robolectric Testing framework
Android рамки тестування
Один із стандартних фреймворків для тестування Android додаток Android рамки тестування. Це потужна та проста у використанні платформа тестування, яка добре інтегрована з Android Інструменти SDK.
.png)
- Пакет додатків це ваша цільова програма, яку потрібно протестувати
- InstrumentationTestRunner є Тестовий випадок бігун, який виконує тестовий приклад у цільовій програмі. Це включає:
2a) Інструменти тестування: Інструменти SDK для тестування побудови. Вони інтегровані в Eclipse IDE або запустити як командний рядок.
2b) MonkeyRunner: Інструмент, який надає API для написання програм, які керують Android пристрій або емулятор за межами Android Код.
- Тестовий пакет організовані в тестові проекти. Цей пакет відповідає правилам іменування. Якщо тестова програма має назву пакета «com.mydomain.myapp», тестовий пакет має бути «com.mydomain.myapp.test». Тестовий пакет містить 2 об’єкти, як показано нижче:
3a) Класи тестових прикладів: включають методи тестування для виконання в цільовій програмі.
3b) Фіктивні об’єкти: включає фальшиві дані, які використовуватимуться як зразки вхідних даних для тестових випадків.
Android Тестові класи

- Тестовий випадок includes JUnit методи запуску JUnit тест
- TestSuite використовується для запуску набору тестів
- InstrumentationTestSuite це TestSuite, який вводить Instrumentation в InstrumentationTestCase перед їх запуском.
- InstrumentationTestRunner це засіб запуску тестів, який виконує тестовий приклад у цільовій програмі.
- AndroidТестовий випадок продовжується JUnit TestCase. Він містить методи доступу до таких ресурсів, як Контекст діяльності.
- ApplicationTestCase перевіряє класи програми в контрольованому середовищі.
- InstrumentationTestCase перевіряє конкретну функцію або поведінку цільової програми, наприклад, перевірка виводу інтерфейсу користувача програми.
- ActivityTestCase є базовим класом, який підтримує тестування діяльності програми.
- ProviderTestCase це клас для тестування одного ContentProvider.
- ServiceTestCase використовується для тестування класів обслуговування в середовищі тестування. Він також підтримує життєвий цикл служби.
- SingeLauchActivityTestCase використовується для тестування однієї активності за допомогою InstrumentationTestCase.
- ActivityUnitTestCase використовується для тестування окремої ізольованої активності.
- ActivityInstrumentationTestCase2 розширює JUnit Клас TestCase. Він підключає вас до цільової програми за допомогою приладів. За допомогою цього класу ви можете отримати доступ до компонента графічного інтерфейсу програми та надіслати подію інтерфейсу користувача (подію натискання клавіші або торкання) до інтерфейсу користувача.
Нижче наведено приклад ActivityInstrumentationTestCase. Він перевіряє роботу інтерфейсу користувача програми Calculator, перевіряє правильність виходів інтерфейсу користувача.

Robolectric платформа тестування
Тестування за допомогою Android Тестувати структуру за допомогою пристрою чи емулятора складно. Збірка та запуск тесту повільні та потребують багато зусиль у розробці. Щоб вирішити цю проблему, є інший вибір – Роболектрик структура тестування.
Фреймворк Robolectric дозволяє бігати Android Тести безпосередньо на JVM без потреба в пристрої або емуляторі.
.png)
Класи Robolectric Test Case
.png)
- Як показано вище, Robolectric може виконувати такі дії:
- Зареєструйтеся та створіть клас Shadow
- Перехопити завантаження Android клас
- Використовує javaassist для перевизначення тіл методів Android клас
- Прив’язати об’єкт Shadow до Android клас
- Це дозволяє тестованому коду виконуватися без нього Android довкілля.
Інші рамки тестування
Окрім згаданих вище платформ тестування, існує багато інших платформ тестування, таких як:
- Android Звіт Junit, спеціальна програма для тестування приладів для Android який створює звіти XML для інтеграції з іншими інструментами.
- Експрес
- Appium
Міфи про Android Тестування
Багато підприємств розробляють Android Тестування стратегії, які базуються на поширених помилках. У цьому розділі розглядаються кілька популярних міфів і реальності Android тестування.
Міф №1: Все Android пристрої однакові... тесту на емуляторах достатньо
Почнемо з простого прикладу. Програма ідеально працює на емуляторах, але на деяких реальних пристроях вона аварійно завершує роботу під час виконання

Емулятори є недостатня для вашого мобільного тестування. Ви повинні протестувати свою програму на реальних пристроях.
Міф №2: тестування на деяких звичайних пристроях достатньо
- На різних пристроях ваша програма виглядає по-різному, оскільки різні пристрої мають різне апаратне забезпечення, розмір екрану, пам’ять тощо. Ви повинні протестувати свою програму на різних пристроях, версіях ОС, мережах операторів і місцях.
Міф №3: дослідницького тестування безпосередньо перед запуском достатньо
- Зазвичай у всіх тестуваннях ми розробляємо тестові випадки, а потім виконуємо їх. Але в дослідницькому тестуванні розробка та виконання тестів виконуватимуться разом.
- У дослідницькому тестуванні немає плану та підготовки, тоді тестувальник проводить тести, які він хоче зробити. Деякі функції перевірятимуться повторно, а деякі не будуть перевірятися взагалі.
Міф № 4: якщо в програмі є якісь помилки, користувачі це зрозуміють
- Якщо програма не працює та має помилки, користувачі видалять вашу програму
- Проблеми з якістю є першою причиною поганого відгуку в Google Play. Це впливає на вашу репутацію, і ви втрачаєте довіру клієнтів.
Тому важливо мати належну стратегію тестування Android
Кращі практики в Android Тестування
- Розробники додатків повинні створювати тестові приклади одночасно з написанням коду
- Усі тестові випадки мають зберігатися в системі керування версіями разом із вихідним кодом
- Використовуйте безперервну інтеграцію та запускайте тести щоразу, коли змінюється код
- Уникайте використання емуляторів і рутованих пристроїв