Android Посібник з тестування APP із платформою автоматизації

Чому Android Тестування?

Android є найбільшою операційною системою у світі. У той же час, Android є фрагментованим. існує безліч пристроїв і Android версії, з якими має бути сумісна ваша програма.

Android Тестування

Не має значення, скільки часу ви вкладаєте в дизайн і реалізацію, помилки неминучі, і помилки з’являться.

Android Тестування

Android Стратегія тестування

Правильна стратегія тестування Android має включати наступне

  1. Тестовий блок
  2. Інтеграційний тест
  3. Operaнаціональний тест
  4. Тест системи

Android Стратегія тестування

Блокові тести

Модульні тести включають набори однієї чи кількох програм, які призначені для перевірки атомарної одиниці вихідного коду, наприклад методу чи класу.

Android платформа постачається попередньо інтегрованою Юніт фреймворк 3.0. Це платформа з відкритим кодом для автоматизації Unit Testing. Android Testing Framework — це потужний інструмент для розробників, який дозволяє написати ефективну програму модульного тестування.

Інтеграція з Android та  JUnit Рамки
Інтеграція Android та JUnit рамки

Доповненням до модульного тестування є тести інтерфейсу користувача (UI). Ці тести стосуються компонентів інтерфейсу користувача вашої цільової програми. Тести інтерфейсу користувача гарантують, що ваша програма повертає правильний вихід інтерфейсу користувача у відповідь на послідовність дій користувача на пристрої.

Загальні дії користувача інтерфейсу користувача з програмою
Загальні дії інтерфейсу користувача в додатку

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

Інтеграційні тести

In Інтеграційне тестування, усі модульні випробувані модулі об’єднані та перевірені. в Android, інтеграційні тести часто включають перевірку інтеграції з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.

Android Тестування Framework
Android рамки тестування Archiтектура
  1. Пакет додатків це ваша цільова програма, яку потрібно протестувати
  2. InstrumentationTestRunner є Тестовий випадок бігун, який виконує тестовий приклад у цільовій програмі. Це включає:

2a) Інструменти тестування: Інструменти SDK для тестування побудови. Вони інтегровані в Eclipse IDE або запустити як командний рядок.

2b) MonkeyRunner: Інструмент, який надає API для написання програм, які керують Android пристрій або емулятор за межами Android Код.

  1. Тестовий пакет організовані в тестові проекти. Цей пакет відповідає правилам іменування. Якщо тестова програма має назву пакета «com.mydomain.myapp», тестовий пакет має бути «com.mydomain.myapp.test». Тестовий пакет містить 2 об’єкти, як показано нижче:

3a) Класи тестових прикладів: включають методи тестування для виконання в цільовій програмі.

3b) Фіктивні об’єкти: включає фальшиві дані, які використовуватимуться як зразки вхідних даних для тестових випадків.

Android Тестові класи

Android Тестові класи
AndroidДіаграма класів TestCase
  1. Тестовий випадок includes JUnit методи запуску JUnit тест
  2. TestSuite використовується для запуску набору тестів
  3. InstrumentationTestSuite це TestSuite, який вводить Instrumentation в InstrumentationTestCase перед їх запуском.
  4. InstrumentationTestRunner це засіб запуску тестів, який виконує тестовий приклад у цільовій програмі.
  5. AndroidТестовий випадок продовжується JUnit TestCase. Він містить методи доступу до таких ресурсів, як Контекст діяльності.
  6. ApplicationTestCase перевіряє класи програми в контрольованому середовищі.
  7. InstrumentationTestCase перевіряє конкретну функцію або поведінку цільової програми, наприклад, перевірка виводу інтерфейсу користувача програми.
  8. ActivityTestCase є базовим класом, який підтримує тестування діяльності програми.
  9. ProviderTestCase це клас для тестування одного ContentProvider.
  10. ServiceTestCase використовується для тестування класів обслуговування в середовищі тестування. Він також підтримує життєвий цикл служби.
  11. SingeLauchActivityTestCase використовується для тестування однієї активності за допомогою InstrumentationTestCase.
  12. ActivityUnitTestCase використовується для тестування окремої ізольованої активності.
  13. ActivityInstrumentationTestCase2 розширює JUnit Клас TestCase. Він підключає вас до цільової програми за допомогою приладів. За допомогою цього класу ви можете отримати доступ до компонента графічного інтерфейсу програми та надіслати подію інтерфейсу користувача (подію натискання клавіші або торкання) до інтерфейсу користувача.

Нижче наведено приклад ActivityInstrumentationTestCase. Він перевіряє роботу інтерфейсу користувача програми Calculator, перевіряє правильність виходів інтерфейсу користувача.

Тестування ActivityInstrumentationTestCase2
Приклад тестування ActivityInstrumentationTestCase2

Robolectric платформа тестування

Тестування за допомогою Android Тестувати структуру за допомогою пристрою чи емулятора складно. Збірка та запуск тесту повільні та потребують багато зусиль у розробці. Щоб вирішити цю проблему, є інший вибір – Роболектрик структура тестування.

Фреймворк Robolectric дозволяє бігати Android Тести безпосередньо на JVM без потреба в пристрої або емуляторі.

Розширені функції Robolectric
Розширені функції Robolectric

Класи Robolectric Test Case

Operaція Robolectric
Operaція Robolectric
  • Як показано вище, 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 Тестування

  • Розробники додатків повинні створювати тестові приклади одночасно з написанням коду
  • Усі тестові випадки мають зберігатися в системі керування версіями разом із вихідним кодом
  • Використовуйте безперервну інтеграцію та запускайте тести щоразу, коли змінюється код
  • Уникайте використання емуляторів і рутованих пристроїв

Щоденний інформаційний бюлетень Guru99

Розпочніть свій день з останніх та найважливіших новин про штучний інтелект, які ви можете знайти просто зараз.