*Автор на текста: Ваня Станева, Mobile Tester в DXC Technology
С над 3,2 милиарда потребители на смартфони по целия свят, не е изненада, че индустрията за мобилни приложения процъфтява. Все повече компании пускат критични за бизнеса мобилни приложения, като мобилно банкиране, търговия или здравни приложения, тяхното излагане на риск също нараства. Наред с нарастващото търсене на крайните потребители за бързо обслужване и отлично потребителско изживяване, компаниите се нуждаят от решения за мобилно тестване, които им позволяват да внедряват и поддържат разработването на мобилни приложения по навременен и рентабилен начин, като същевременно намаляват излагането на риск.
Тестването на софтуер отдавна е неразделна част от процеса на разработка. Въпреки това, тестването на мобилни приложения се откроява като област на тестване на софтуер, която изисква най-голямо внимание днес. Тестването на мобилно приложение вече не се разглежда като намалена версия на приложението за браузър. Според проучване на Statcounter, около 52% от потребителите предпочитат да използват мобилно приложение пред десктоп.
Тестването е едно от най-големите предизвикателства, пред които са изправени мобилните приложения в днешно време. Qualitest съобщава, че 51% от потребителите биха изоставили едно приложение напълно, ако изпитат една или повече грешки на ден. Но с нарастващия брой на мобилните потребители, количеството и разнообразието от използвани устройства също се увеличават.
Тестването е достатъчно трудно, без да се налага да се притеснявате за огромното разнообразие от устройства. И това разнообразие означава различни възможности на устройството, размери на екрана, операционна система и други. Има два начина за мобилно тестване – емулатори и реални устройства.
Емулаторите се използват широко както за ръчно, така и за автоматизирано тестване на мобилни приложения. Те са мощни инструменти за създаване на мобилни приложения, имат уникални функции, които предоставят богат набор от инструменти за разработка, както и интегрирана среда за отстраняване на грешки.
Мобилните приложения се използват на реални устройства, а не на емулатори, ясно е, че колкото по-близо се доближим до действителната платформа по време на QA процеса, толкова по-добро качество ще постигнем. От друга страна, използването само на реални устройства за разработка и тестване, може да е безмислено за всяко приложение. Компромисът по отношение на удобство и цена спрямо необходимостта от управление на риска и качество трябва да бъде внимателно обмислен в стратегията за тестване.
Предимства на мобилните емулатори
Най-очевидното предимство е цената, тъй като в повечето случаи мобилните емулатори са безплатни. Всичко, което трябва да направите е да изтеглите софтуера и сте готови за работа.
Емулаторът обикновено е част от SDK, предоставен на разработчиците. Поради своята интеграция със средата за разработка, мобилните емулатори дават на разработчика или QA специалиста, достъп до подробна информация, което позволява удобно отстраняване на грешки стъпка по стъпка.
Освен това има случаи, в които мобилните емулатори могат да дадат предимство за симулиране на трудни за възпроизвеждане сценарии (ниска батерия, определени GPS координати и т.н.). Тази симулация обаче в най-добрия случай е непълна, тъй като няма гаранция, че устройствата ще се държат по същия начин в реална ситуация.
Недостатъци на мобилните емулатори
Дори ако тестването върви перфектно не може да сте 100 % сигурни, че вашите данни могат да се прилагат към реално устройство. Това повдига въпроса – кои тестове трябва да бъдат проверени повторно на реално устройство и кои могат да се приемат за надеждни резултати от емулатора? В случай на неуспешен тест на емулатора, QA специалистите трябва да решат дали да извършат теста на реално устройство или просто да приемат, че функцията не работи и изисква корекция.
Хардуерни и софтуерни недостатъци
Емулаторът обикновено е “plain vanilla“ версия на операционната система и често не отразява специфичните хардуерни и софтуерни характеристики на всяко поддържано устройство. Например, Google пуска софтуер за емулатор на Android ( да речем версия 2.2), който след това се доставя на Motorola, Samsung и Xiaomi. Всеки от тези доставчици трябва да окаже влияние върху пазара, по отношение на хардуера или софтуера. Всеки доставчик ще се опита да предложи по-привлекателни хардуерни функции, които в много случаи никога не са били тествани срещу „обикновената“ версия на софтуера.
В компании като Apple, емулаторът представлява по-точно представяне на устройството, защото доставчиците на софтуер и хардуер са една и съща компания и имат една и съща цел.
Различна мрежова среда
По отношение на мрежовата конфигурация мобилните емулатори работят на компютъра свързани с LAN и имат достъп до интернет чрез вашата лична или корпоративна мрежа. В много случаи реалните устройства могат да бъдат свързани към интернет с ниско качество (например, лоша връзка, което да доведе до това вашето приложение да се държи по друг начин).
Мобилна мрежа
В сравнение с мобилните емулатори, работещи на компютри, реалните устройства имат ограничени ресурси. Мобилният телефон е компактна платформа с ограничена мощност на процесора и паметта. Приложение, работещо на компютър, не отразява точно потребителското изживяване на вашия телефон, което в крайни случаи може дори да не работи.
Мобилните мрежи влияят върху поведението на приложенията. Мобилното устройство все още е телефон – свързаните с мрежата събития ( входящи повиквания, текстови съобщение и др.) трябва да бъдат тествани, за да се определи тяхното въздействие върху вашето приложение. Емулаторите не са свързани към мобилната мрежа, затова те не са в състояние да дадат отговор как ще повлияят на вашето приложение.
Предимства на реалните устройства
Тестването на реални устройства винаги дава точни резултати. Няма нужда да се притеснявате за „фалшиви негативни“ или, което е по -важно, за винаги опасните „фалшиви положителни“ резултати.
Тестването на приложение на реално устройство обикновено се извършва в мрежа на живо. Това е жизненоважно, тъй като свързаните с мрежата събития могат да повлияят на качеството на вашето приложение. Какво се случва, например, когато обаждане или текстово съобщение постъпи по средата на банкова транзакция? В допълнение различни мрежови технологии (HSPDA, UMTS, LTE и др.) могат да повлияят на начина, по който се държи вашето приложение.
Тестването на реални устройства е единственият начин да разберете потребителското изживяване, като вземете предвид процесора, паметта, размера на екрана и т.н. за дадено устройство. Когато става въпрос за качеството на вашите услуги, няма заместител на използването на истински телефон. Освен това е много по -лесно да се открият дефекти в производителността с реални телефони, както и дефекти, които са резултат от самия телефон или неговата среда. Тези видове дефекти обикновено не могат да бъдат открити с помощта на емулатори.
Недостатъци на реалните устройства
Реалните устройства са физически ресурси, които трябва да бъдат управлявани. Логистиката и разходите, свързани с набавянето и управлението на тези устройства, са значителни. Колко различни типа устройства трябва да тествате? Кои да изберете? Това са въпроси, на които е трудно да се отговори, защото има толкова много телефони на пазара.
В началните етапи на разработка реалните устройства са по – трудни за свързвани към IDE, отколкото емулаторите, което може да забави процеса на отстраняване на грешки. Това изискване обаче е по-малко уместно в следващите етапи.
Разгледахме както предимствата, така и рисковете от използването на емулатори за тестване на мобилни приложения. Разгледахме необходимостта от тестване на реални устройства, за да гарантираме по-високо качество по отношение на мрежови проблеми, услуги базирани на местоположението и истинско потребителско изживяване. По този начин, когато става въпрос за избор между емулатори или реални устройства, оптималното решение за тестване не е „ или/или“ , а по-скоро комбинация от двете.