ios app testing beginners guide with practical approach
Събиране на основни знания за тестване на приложения за iOS:
„Знаете ли, всеки има мобилен телефон, но не познавам човек, който да харесва мобилния си телефон. Искам да направя телефон, който хората да обичат. ' - Стийв Джобс.
Това беше за iPhone от Стив Джобс. Стив наистина накара Apple да работи за превръщането на мобилното им устройство във фаворит за всички времена.
Потребителите винаги са обичали мобилните устройства на Apple, било то iPhone, iPod Touch или iPad. Настоящите данни показват, че в света работят почти 1 милиард устройства на Apple, които работят с iOS.
Това са цели милиарди от тях.
Следва анализ на пазарния дял на iPhone през 2016 г .:
(изображение източник )
Какво ще научите:
- iOS
- iOS тестване
- Видове тестване на приложения на iOS
- Ръчно тестване - Използване на устройство
- Ръчно тестване - Използване на емулатор
- Автоматизация на iOS
- Най-добри практики за тестване на приложения за iOS
- iOS Automation Frameworks
- Заключение
- Препоръчително четене
iOS
iOS е мобилна операционна система, която е проектирана от Apple точно за техните устройства, често наричани iDevices. От 2007 г., когато iOS е направен само за iPhone, операционната система се е развила, за да поддържа Touch устройствата и iPad-ите също.
Текущи изследвания показват, че iOS е втората най-популярна мобилна операционна система на пазара. Android работи на устройства, създадени от различни производители, но красотата на iOS е, че той е ограничен само до хардуера на Apple, което ясно посочва популярността на операционната система.
iOS е видял общо 10 големи издания през годините и е предложил забележителни актуализации на функциите във всяка своя версия.
Тази операционна система iOS е известна със своята лекота на ползване, плавност в операциите, приложения без сривове и т.н. Докато обсъждаме приложенията, Apple iTunes магазинът за приложения за iOS е твърде богат с брой приложения, които изстрелват до 2,2 милиона. Изтеглянето на приложения бързо се е увеличило до огромните 130 милиарда.
iOS е операционна система, която не е ограничена от никаква зонална или езикова бариера. Това е един от основните фактори на тази операционна система, която става толкова известна само след 10 години от своето развитие. Той поддържа 40 различни езика.
Не само езиците, дори потребителският интерфейс на устройства с iOS е много привлекателен и елегантен, в сравнение с устройствата с Android.
Докато говорим за приложенията подробно, по-долу са споменати някои от статистическите данни за него:
- Магазинът за приложения на Apple iTunes получава почти 1000 нови заявления за подаване всеки ден.
- Около 1/3rdот общия брой приложения в магазина за приложения на Apple iTunes са безплатни за изтегляне.
- Таксите за платено приложение за iOS варират средно от 1,10 до 1,30 $.
- Средната цена за игра за iOS варира от 0,55 до 0,65 $.
Колко приложения сте използвали на вашия iPhone, iPod Touch или iPad?
Доста шепа! Нали? Започвайки от Gmail и Facebook до Clash of Clans and Asphalts. Този вид приложения, цифрите и разнообразието на потребителите носят софтуерни тестери сериозен бизнес. Нали ??
Въпроси за интервю за .net уеб услуги
Като тестер трябва да се направи не само функционалността, но и задълбочено тестване на потребителския интерфейс, за да се провери приложението на iPhone, iPod и iPad поради вариацията в техните размери.
iOS тестване
Както беше обсъдено по-рано, iOS е ограничен само до хардуер на Apple или устройства, направени от Apple. Това наистина е огромно облекчение. Съществуват обаче многобройни устройства на Apple и техните версии, които поддържат iOS.
Най-долу е, че Apple има затворена система, за разлика от Android, която е отворена система. Изданията на ОС или устройства са добре планирани.
Това е допълнително предимство, защото:
- Размерът на устройствата, които са на разположение или ще бъдат пуснати, е фиксиран и като QA трябва да имаме много ясна представа за това какви устройства са извън пазара. За QA става лесно да вземе решение за изпитване за изпитване
- Подобно на устройствата, не е необходимо да правим задълбочен анализ за операционната система, тъй като тя е затворена система, отнема по-малко време (и усилия) за вземане на решение за тестовото легло за тестване на операционната система.
- Apple разполага с голямо разнообразие от свои собствени инструменти за автоматизация, въпреки че са малко трудни за учене.
- Спомням си, че за GPS тестване за Android трябваше да прекарам 2-3 дни, за да разбера как да създам фиктивни скриптове за изпращане на фалшиво местоположение. Но това беше много просто и ясно в iOS, тъй като има вградена функционалност за изпращане на фалшив GPS за ходене, бягане, колоездене и т.н.
- За първоначалното тестване не се препоръчва да тествате GPS чрез полеви тест, препоръчително е изпращането на фиктивни GPS данни и това също спестява време.
- Apple има стриктни указания за подаване на заявление, това е голяма помощ по някакъв начин, а не отхвърляне след подаване и добър шанс за успех, за разлика от други ОС, където няма строги указания.
- Функционалността на устройството и самата операционна система е фиксирана и ясна, поради което намалява шансовете да пропуснете начините, по които дадено приложение може да работи. В iOS няма начин да принудим спиране на приложение, докато можем да убиваме и насилствено да спираме приложения на android. По този начин сложността е намалена за тестване тук.
Това са някои от предимствата, които получаваме от продуктите на Apple, но не е задължително това да са предимствата на всеки продукт или приложение. Докато за приложенията, които са разработени в кръстосана платформа, iOS е труден за работа.
The високо ниво класификацията е както е показано по-долу:
Първата стъпка в влизането в тестването на приложения за iOS е да се обмисли вида на внедряването.
Прилагането на приложението може да бъде всеки от следните 3 типа:
1) Уеб-базирани приложения: Това са приложенията, които се държат подобно на вградените в iOS приложения. Това са нормалните уебсайтове, до които потребителят влиза в браузъра Safari на iPhone.
2) Родно приложение: Приложение, което е разработено с помощта на iOS SDK (Software Development Kit), се изпълнява в оригинал на поддържаните iOS устройства като VLC, Flipboard, Uber и др.
3) Хибридно приложение: Това е сместа или хибрида и на двата вида, споменати по-горе. Това дава достъп до уеб съдържанието чрез зона за гледане на уеб съдържание и също така има някои елементи на потребителския интерфейс за iOS. Напр. Zomato, Twitter, Gmail и др
Видове тестване на приложения на iOS
Различните видове тестване на приложения на iOS (както се прави в типични условия) могат да бъдат както следва:
- Ръчно тестване - Използване на устройство
- Тестване на системата
- UI / UX тестване
- Тестване на сигурността
- Полеви тестове
- Ръчно тестване - Използване на емулатор
- Единично тестване
- Тестване на интеграцията
- Тестване на потребителския интерфейс
- Тестване за автоматизация
- Тестване на регресия
- BVT тестване
- Тестване на съвместимост
- Тестване на производителността
Пример за заявление:
Преди да преминем към различните аспекти на процесите на тестване на iOS, нека вземем пример за типично приложение за iOS.
Нека вземем под внимание заявлението за набиране на средства за спортен екип. Приложението ще има вход за социален акаунт (Google / Facebook) и страница за плащане.
Преди да отидете на страницата за плащане, трябва да има опция за избор на дефинираните от системата суми или персонализирано поле за въвеждане на сумата. След като плащането приключи, PDF сертификат трябва да се покаже на екрана и в същото време PDF файлът също трябва да бъде изпратен по имейл до имейл акаунта на потребителя, който в момента е влязъл.
Ръчно тестване - Използване на устройство
а) Тестване на системата:
Този тип тестване на iOS се извършва в системата, за да се провери дали различните компоненти на системата работят заедно.
В този процес на тестване приложението iOS се стартира на истинско устройство на Apple, последвано от взаимодействието му с потребителския интерфейс, за да задейства определен набор или набори от действия на потребителя. Типичните действия на потребителя могат да бъдат докосване или плъзгане по екрана.
И накрая, резултатът се тества спрямо очаквания резултат.
За нашитеПримердаден по-горе, типичен системен тест може да включва следните стъпки:
какви са етапите на sdlc
- Влезте в спортния екип на iOS и приложението за набиране на средства, като използвате влизането във Facebook акаунта, като използвате отворено удостоверяване.
- Изберете предварително зададена системна сума от $ 10 от дадените опции.
- Продължете към шлюза за плащане.
- Изберете опцията за мобилен портфейл PayTm за процеса на плащане.
Системните тестове са операциите, които обхващат най-вече различните потоци от край до край в системата. Всеки тест трябва да бъде изпълнен с различните налични конфигурации. И това също зависи от устройството и версията на iOS, на която е инсталирано приложението.
б) Тестване на потребителския интерфейс на iOS
UI / UX на устройствата с iOS е ключов елемент в историята им за успех.
Тестването на UI / UX в устройства с iOS може да бъде класифицирано в следните категории:
- Входове: Тестване на функционалностите на сензорния екран (като дълго / кратко докосване, 3D докосване, превъртане), размери на бутоните, позициониране на бутоните, цвят на шрифтовете и техния размер и т.н., попадат в тази категория.
- Твърди клавиши: Вградените приложения функционират безпроблемно с вградените хардуерни клавиши / твърди клавиши, присъстващи на устройството, като клавиш за дома, бутони за звук и др. Тестваното приложение също трябва да взаимодейства с твърдите клавиши по подобен начин.
- Меки клавиши / мека клавиатура: Колко досадно е, когато клавиатурата не се появява, когато сте в страницата си за съобщения в Whatsapp? Необходим е външният вид на клавиатура, съоръжение за скриване, когато нямате нужда от него, поддръжка за усмивки, символи, всички символи / символи и т.н.
- В нашата Пример , клавиатурата може да влезе в картината на множество места, като въвеждане на персонализирана сума, въвеждане на идентификационни данни / данни за картата в шлюза за плащане и т.н.
- Екран: Приложението, ако се поддържа на множество устройства, трябва да бъде тествано за ориентация във всички устройства. Възможно е да има някои промени в разделителната способност въз основа на устройството, което е избрано за процеса на тестване. В същото време трябва да се извърши и тестване за портретен / пейзажен режим и използването на клавиатурата във всеки от случаите.
Ако приложението ви е създадено не само за iOS, има няколко указателя, които трябва да бъдат специално тествани за iOS като:
- Списъци: В iOS, когато има списък за показване, той винаги показва изцяло нов екран, за разлика от Android, където се появява изскачащ прозорец.
Следва пример за същото:
( източник )
- Съобщения: Когато дадено приложение се срине, съобщението, показано в iOS, е различно от това в Android. Също така, ако сте забелязали, малки съобщения мигат на телефони с Android, когато освобождавате памет като ‘#GB освободена памет’ и т.н., но никога не можем да видим флаш съобщения в iOS.
Следва пример:
( източник )
- Изтриване на потвърждение: Ако наблюдавате отблизо приложение за iOS, в изскачащия прозорец за потвърждение на изтриване действието Отказ е вляво от опцията Изтриване. Докато в Android или друга операционна система е обратно.
Това са някои от примерите, които се нуждаят от отделни тестови случаи и тестване, тъй като iOS има потребителски интерфейс по подразбиране, съобщения и т.н., които не могат да бъдат променени.
в) Тестване на сигурността:
В нашата пример , имаме приложение с шлюз за плащане и страница за вход, поддържана от интеграция на социална страница.
Например , нека приемем, че имате приложение ICICI на телефона си и когато влезете, а не информация за вашия акаунт, ако се показва информация на някой друг или ако извършите паричен превод и приложението изпраща OTP на друг телефонен номер, който не е ваш , можете да си представите какво ще се случи. По този начин тестването на сигурността е задължително.
Данните по отношение на влизането в социалните медии и шлюза за плащане трябва да бъдат шифровани или защитени, така че приложението да бъде защитено от хакове.
г) Полеви тестове:
Извършва се полеви тест, за да се провери поведението на приложението в мрежата за данни на телефона.
Този тест обикновено се прави, когато приложението достигне стабилен етап и не се срива при вътрешно тестване и всички проблеми с функционалността са отстранени. Това се прави главно, за да се тества ефективността на приложението в бавната мрежа за данни.
Ръчно тестване - Използване на емулатор
а) Единично тестване:
Това се прави най-вече от екипа за разработка / индивидуалния разработчик. Това тестване проверява дали определен модул на изходния код функционира според очакванията или не.
Разработчиците проектират тестови случаи за единичен компонент, т.е. изолиран модул, върху който работят. Този тест доказва функционирането на отделния модул, след което той се инжектира в изходния код, за да работи като елемент на интегрираната архитектура. Както се казва в заглавката, това е предимно ръчно тестово изпълнение и направено с помощта на тестова емулация.
б) Интеграционно тестване:
В предишните стъпки обсъдихме повече за модулното тестване. Сега, тъй като сме сигурни във функционалността на отделните единици / модули, става необходимо да се провери и интеграцията. Това тестване се извършва, за да се открият проблемите, свързани с различни точки на интеграция.
В нашата Примери , можем да наречем влизането като един модул, а шлюза за плащане като друг модул.
Единичното тестване ще обхваща тестването и на двете поотделно. Интеграционното тестване обаче ще тества целостта на двата модула.
в) Тестване на потребителския интерфейс:
Както беше обяснено по-горе, трябва да се направи тестване на потребителския интерфейс за приложение, тъй като това е ключов фактор за успеха на приложението.
Закупуването на всички модели телефони за тестване на практика не е възможно, защото би струвало много. Следователно използването на емулатор е най-добрият вариант, тъй като е безплатно, а също така очевидни грешки в потребителския интерфейс лесно се улавят в емулаторите.
Автоматизация на iOS
а) Регресионно тестване:
В постоянно променящата се среда непрекъснато се правят промени, за да се подобри приложението или да се отстранят проблемите, открити в предишната му версия. Докато внедрявате промените, има шанс, когато направените промени в приложението могат да променят съществуващата функционалност.
С прости думи, направените промени могат да въведат нов набор от проблеми в приложението.
За да се провери дали приложението се изпълнява по същия начин дори след внедряването на промените, трябва да се извърши тестване за регресия. И тъй като това е повтаряща се дейност, автоматизацията е полезна за този вид тестване.
б) BVT тестване:
Добър обичай е да се пусне автоматизиран пакет на новата компилация, пусната за тестване, тъй като спестява много време и ако основните функционалности се сринат, той се отчита незабавно. В сравнение с ръчно усилие резултатите от автоматизираните основни тестове за проверка за приемане или отхвърляне на компилация могат да бъдат взети за минути.
в) Тестване на съвместимост:
Както беше обсъдено, има многобройни устройства / типове, които се пускат от Apple. За да бъдем точни, на пазара има 15 различни типа iPhone, 6 модела iPod Touch, 10 модела iPad и 2 модела iPad Pro.
Сега, когато е разработено приложение като нашето (приложение за набиране на средства за спортен екип), то трябва да се поддържа от всички гореспоменати устройства. Това предполага едно нещо - Всички тестови случаи трябва да се изпълняват на всички тези устройства.
Сега ръчните усилия не са възможни, когато броят на устройствата е огромен като този. За съвместимост се предпочита тестване за автоматизация.
г) Тестване на производителността:
Някои от тези, които са тествани при тестване на производителността, са:
- Как се държи приложението, когато е пуснато в експлоатация или работи много дълго време. По време на оперативния период, накарайте приложението да комуникира / взаимодейства / да остане без работа.
- Всеки път трябва да се извършва една и съща операция с различно количество товари.
- Как се държи системата, когато прехвърлянето на данни е наистина огромно.
Тези случаи имат повтарящ се характер и се извършват предимно с помощта на автоматизация.
Най-добри практики за тестване на приложения за iOS
Тестването на приложения за iOS може да бъде трудно, трудно, предизвикателно, освен ако не е направено правилно.
За да се придвижи тестването на приложения за iOS в правилната посока, могат да бъдат внедрени следните практики:
# 1) Забравете емулаторите: В повечето случаи емулаторите са предпочитани пред реалните устройства. Но това не е идеалният случай. Неща като взаимодействия с потребители, консумация на батерия, наличност на мрежата, производителност при използване, разпределение на паметта не могат да бъдат тествани на емулаторите. Така че, опитайте се да тествате на реални устройства през цялото време.
# 2) Автоматизирайте нещата, вместо да правите ръчно: Колко бързо изпълнявате конкретна задача? В днешния свят всички са загрижени главно за прекараното време. Автоматизацията не само намалява времето за изпълнение, но също така увеличава ефективността, ефективността и обхвата на тестването на софтуера.
# 3) Споделете работата: Споделете тестването между екипи, включително екипа за разработка. Можем да получим помощ по отношение на ръчното изпълнение на тестовите случаи, както и да получим помощта от екипа на разработчиците по отношение на автоматизирането на ръчните тестови случаи.
# 4) Уловете регистрационните файлове за сривове: Приложението за iOS може да замръзне или да се срине при определени обстоятелства. За да отстранят проблема, дневниците за сривове играят жизненоважна роля.
Следните стъпки могат да бъдат изпълнени за заснемане на регистрационните файлове за сривове:
- За MacOS:
- Синхронизирайте iOS устройството с компютъра (Mac).
- За Mac OS задръжте клавиша Option, за да отворите лентата с менюта.
- Отидете в менюто Go и кликнете върху Library.
- Отидете до ~ / Library / Logs / CrashReporter / MobileDevice //.
- Името на регистрационния файл трябва да започва с името на приложението.
- За ОС Windows:
- Синхронизирайте iOS устройството с компютъра (Windows).
- Отидете до C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- Името на регистрационния файл трябва да започва с името на приложението.
# 5) Заснемане на регистрите на конзолата:
Дневниците на конзолата дават общата информация за приложенията на устройството с iOS.
Това може да се направи с помощта на инструменти като iTools. В приложението iTools кликнете върху иконата „Кутия с инструменти“, когато устройството с iOS е свързано към системата, на която работи iTools. Кликването върху „Регистрация в реално време“ дава регистър на конзолата в реално време.
най-добрите приложения за шпиониране на някого
# 6) Заснемане на екран: Става лесно да се разбере проблемът и следователно е лесно да се поправи, ако стъпките са визуални.
Препоръчително е да запишете екрана или да направите екранни снимки на проблемите, за да накарате екипа на разработчиците да ги разбере по-добре. Екранната снимка може да бъде направена с помощта на вградената функция, като едновременно натиснете бутона за захранване и начало.
Записът на екран може да се извърши с помощта на Quick Time Player запис, докато iOS устройството е свързано към Mac с помощта на мълниезащитния кабел.
iOS Automation Frameworks
Някои от най-често използваните рамки за автоматизация са изброени по-долу:
# 1) епохи;
Appium използва Selenium Web драйвер за автоматизиране на тестването на iOS приложения.
Тази платформа е независима и може да се използва както в мрежата, така и на мобилни устройства (както Android, така и iOS). Това е с отворен код и не е ограничено от езика. Промените в приложенията или достъпът до изходния код не се изискват за автоматизиране на използването на Appium.
Appium работи безпроблемно независимо от типа на приложението: било то, естествено, хибридно или уеб.
# 2) Калабаш:
Calabash е платформа с отворен код, която поддържа тестване за автоматизация както на Android, така и на iOS.
Тестовете за калабаш са написани на краставица, която е подобна на тази на спецификацията и е лесна за разбиране. Calabash се състои от библиотеки, които позволяват на потребителя да взаимодейства както с местни, така и с хибридни приложения. Той поддържа взаимодействия като жестове, твърдения, екранна снимка и т.н.
# 3) Ърл Грей:
Earl Gray е собствената вътрешна рамка за тестване на потребителския интерфейс на Google. Това е използвано за тестване на YouTube, Google Photos, Google Play Music, Google Calendar и др.
Earl Gray е направен с отворен код наскоро. Някои от основните предимства на Earl Gray са, вградена синхронизация, проверки на видимостта преди взаимодействията, истинско взаимодействие с потребителя (докосване, плъзгане и др.). Това е много подобно на Espresso от Google, което се използва за автоматизация на потребителския интерфейс на Android.
# 4) Автоматизация на потребителския интерфейс:
UI Automation е разработена от Apple и е много подобна на UI Automator за Android. API-тата се дефинират от Apple, а тестовете са написани на JAVA.
# 5) КАК:
KIF означава „Поддържайте го функционално“. Това е рамка на трета страна и с отворен код.
Това е тестова рамка за интеграция на iOS, която е тясно свързана и използвана за тестовите цели на XCTest. KIF е лесен за конфигуриране или интегриране с проекта Xcode и по този начин не се изискват допълнителни уеб сървъри или допълнителни пакети. KIF има широко покритие по отношение на версиите на iOS.
Заключение
Тестването на приложения за iOS може да бъде най-предизвикателната задача. Надявам се, че сте разбрали добре тестването на приложения за iOS чрез тази статия.
Изборът на правилния подход обаче, възможно най-добрият процес на тестване, методологии, инструменти, емулатори / устройства и т.н. ще направи тестването на iOS приложения много успешно.
Нашият предстоящ урок ще ви запознае с всички основни понятия, включени в Урок за тестване на приложения за Android .
Препоръчително четене
- Най-добри инструменти за тестване на софтуер 2021 г. (Инструменти за автоматизация на QA теста)
- Ръководство за тестване на преносимост с практически примери
- Алфа тестване и бета тестване (Пълно ръководство)
- Функционално тестване срещу нефункционално тестване
- Създайте Appium Test за приложение за iOS
- Изтегляне на eBook за тестване на Primer
- Какво е ранно тестване: Тествайте рано, тествайте често НО как? (Практическо ръководство)
- Уроци за тестване на мобилни приложения (Пълно ръководство с над 30 урока)