October 6, 2022

Robotic Notes

All technology News

Направете тестването на e2e по-лесно с правилните инструменти – Java Code Geeks

1 min read


Тестването от край до край (e2e по-нататък в текста) е изключително важно, тъй като има проблеми, които могат да бъдат открити само докато се тества системата като цяло, като се тества от един край до друг.

Това също добавя по-високо ниво на сложност към e2e тестовете, което ги прави по-дълги, по-бавни за изпълнение и с повече точки на потенциален неуспех, в сравнение с тестове от по-ниско ниво с по-малък обхват, особено в сравнение с малки и светкавично бързи модулни тестове. Тъй като e2e тестовете носят много стойност, ние не искаме да ги пренебрегваме. Също така искаме да улесним живота си, когато правим e2e тестване, което можем да направим с правилните инструменти. Освен автоматизирането на нашите e2e тестове, ние можем да ускорим нашите e2e тестове, ако не са автоматизирани. Нека се задълбочим в това какво точно можем да направим, за да направим тестването на e2e по-лесно и по-бързо за изпълнение.

Как да направим e2e тестването по-лесно и по-бързо за изпълнение

Анализирайте стойността, която тестовете e2e ще донесат

Въпреки че имаме предвид споменатото по-горе (e2e са скъпи и по-бавни от другите тестове), трябва да обърнем внимание на това коя част от нашето тествано приложение трябва да бъде покрита с e2e тестове и кои части могат да бъдат покрити на по-ниски нива на тестване. Когато балансираме разходите и потенциалната възвръщаемост на инвестицията, трябва да имаме предвид клиента – извършването на обширно e2e тестване на секцията с често задавани въпроси няма да бъде толкова ценно, колкото покриването на цялото плащане или целия път на регистрация с e2e тестове. Наблюдаването и покриването на най-важните клиентски пътувания с e2e тестове ще добави значително ниво на сигурност – аларма, която ще се включи, когато нещо в това пътуване се провали. Ето защо този вид тестове трябва да се провеждат редовно, като например част от нощно изграждане, например. Освен това, когато решавате кои пътувания да автоматизирате, трябва да говорите със заинтересованата страна и членовете на вашия екип, особено с експертите по темата (или експертите по домейна) и с членовете на техническия екип, като други инженери по автоматизация и разработчиците, за да достигнете до информирани решения относно покритието на e2e.

Избягвайте дублиране – тествайте каквото е възможно на по-ниски нива

Всъщност не се нуждаете от два e2e теста, проверяващи части от един и същи поток – това трябва да се избягва, ако изобщо е възможно. Много по-евтино е да се провери цялата бизнес логика на ниво единица и да се покрият по-сложни бизнес правила с автоматизирани проверки на API – които са много по-бързи от проверката на същата функционалност с помощта на потребителския интерфейс. Поддържайте малък брой e2e UI тестове, проверявайте само това, което дава голяма стойност на клиента.

Използвайте облачна инфраструктура, за да намалите разходите и да увеличите скоростта

Предимствата на използването на облачна инфраструктура, над on-prem, са лекотата на конфигуриране и наличието на ресурси (почти безкрайни). Освен това цените на облачните услуги спадат, тъй като има повече конкурентни играчи на облачната арена. За целта можете да използвате платформа за оркестриране на тестове, базирана на облак, като HyperExecute на LambdaTest. Можете също така да използвате облачни контейнери, за да управлявате и организирате тестовете си по-добре и да ускорите времето за изпълнение! Съществува и корпоративна опция за тази функция, тъй като някои организации не могат да използват облака поради законови ограничения.

Използвайте инструменти като LambdaTest, за да покриете множество браузъри

Необходимостта да покривате множество браузъри или мобилни платформи може да отнеме много време усилията ви за тестване. Само си представете, че имате доста сложно уеб приложение, което трябва да бъде тествано във всички съвременни браузъри, за да сте сигурни, че всички важни функции работят. Такъв вид тестване трябва да се направи по-бързо с използването на подходящи инструменти. Тези инструменти могат да бъдат особено полезни, ако трябва да поддържате множество версии на различни браузъри и операционни системи и да проверявате с множество различни размери на разделителната способност на екрана, за да извършите онлайн тестване на браузъра.

Може да бъде много полезно да можете да тествате върху реален физически хардуер, без да се налага да купувате цял куп специални устройства за тестване – на практика просто бихте наели използването им за определен период от време. Друга важна характеристика, която трябва да търсите, е дали инструментите за тестване на различни браузъри имат собствени интеграции с инструментите за разработчици в поддържаните браузъри, така че да можете да отстранявате грешки и да тествате по-задълбочено. Други употреби на такива инструменти са възможността да тествате на локалния хост, ако имате приложение в локална разработка, или да тествате геолокации с различен IP адрес. Също така използвайте разширения на браузъра за инструменти за тестване на различни браузъри.

Правенето на екранни снимки автоматично в различни браузъри, на които тествате, е още една удобна функция, която идва с този вид инструменти. LambdaTest идва със собствен браузър – LT Browser, който се доставя предварително пакетиран с разширени функции, като създаване на собствени размери на персонализираната разделителна способност за тестване на отзивчивостта на вашите уеб приложения.

Използвайте съществуващите инструменти за визуално тестване

Тестването с визуална регресия може да улови много проблеми, които или са много трудни за откриване с помощта на инструменти като Selenium, или не са възможни с обикновени инструменти за функционално тестване на потребителския интерфейс. Много проблеми, засягащи клиентите, могат да бъдат предотвратени, ако бъдат уловени чрез извършване на визуално тестване. Това може да се направи и в облака с инструмента Smart UI на LambdaTest.

Проблеми като грешни цветове на елемента, различни проверки на размера, валидиране на подложки, проблеми с оформлението (като отзивчивост), проблеми, свързани с текста и позициониране на елемента, могат да бъдат добри кандидати за проверка с помощта на сравнение Pixel-by-Pixel, което може да се стартира в над 3000 настолни и мобилни устройства. Автоматизираните визуални проверки трябва да се изпълняват успоредно, за да се ускорят вашите цикли на освобождаване и да се направи изпълнението на теста много по-бързо, като същевременно се намалят значително веригите за обратна връзка.

Визуалните регресионни тестове също са страхотни кандидати за включване в CI/CD тръбопровода. Друга полезна практика би била да използвате разширения и да ги интегрирате в другите инструменти, които използвате.

Включете e2e тестове във вашия конвейер за изграждане отрано

Веднага щом имате поне един работещ e2e тест, трябва да го включите във вашия CI/CD тръбопровод или се уверете, че сте включили изпълнението на теста като част от процеса на изграждане, ако имате планирани издания.

Интегрирайте инструменти за отчитане с вашите e2e тестове

Като се има предвид скъпото естество на e2e тестовете, наличието на добри и подробни отчети е чудесен начин да получите допълнителна стойност от вашите e2e тестове. Има много библиотеки, които ви позволяват да получите достъп до техните възможности за отчитане (обикновено чрез API) от вашата рамка за автоматизация. Примери биха били ReportNG, Allure reports, Report Portal и т.н. Тези библиотеки могат да генерират много визуално привлекателни отчети, като кръгови диаграми и ленти на състоянието за вашето тестване, така че можете да визуализирате колко от вашите тестове преминават, неуспешни, пропускани и т.н.

За неуспешни тестове обикновено можете да се задълбочите в детайлите. Но за хората, които не тестват, тази информация обикновено не е много интересна. Не забравяйте, че може да бъде много ценно за тестерите, поддържайки (така че да могат да отстраняват грешки при неуспешните проверки и да ги коригират или да докладват за грешки) решението за автоматизация, както и за разработчиците – ако ги включите в процеса на автоматизация, което почти винаги е добра идея!

Повечето съвременни инструменти за управление на тестове също имат обширни възможности за отчитане за изпълнението на вашия тест.

Друга страхотна практика е отчитането за вашата автоматизация да е свързано с най-често срещаните ви комуникационни канали, като например да имате Slack известие, съобщение на Teams или подобни. Това ще ви помогне да сте в крак с неща като— кога тестовете в конвейера за изграждане се провалят, какъв е статусът на изпълнението на теста и т.н. В този смисъл вашите e2e тестове (особено ако сте ги конфигурирали да бъдат, напр. , изпълнявана многократно – като част от нощно изграждане) може да действа като аларма – да ви предупреждава навреме, когато важна функция спре да работи или се държи зле. Винаги е по-добре да намерите проблем вътрешно и да го коригирате, отколкото клиентът да го докладва на вашия отдел за поддръжка, защото това може да означава загуба на този клиент и много други, които са имали същия проблем. Известен факт е, че поради многото конкуренти на пазара днес, клиентите имат много възможности за избор, което означава, че ако имат проблем с използването на вашето приложение, много от тях дори няма да ви кажат за това, те просто ще се преместят при конкурента. Така че винаги имайте удовлетворението на клиента като ваш основен приоритет!

Общи подходи за тестване на e2e

Ето някои от най-важните неща, които трябва да имате предвид, когато правите e2e тестване.

  1. Уверете се, че приложението ви е внедрено правилно и може да се тества. Това ще ускори тестването и ще предотврати появата на някои проблеми, като проблеми с тестовата среда. За тези неща можете да използвате облачни услуги, за да направите живота си малко по-лесен.
  2. Уверете се, че другите дейности по тестване са завършени — всички функции вече са тествани изолирано, точките за интеграция са тествани и всички тестове на единици преминават успешно. Това се прави, за да се гарантира, че системата работи добре и всички уникални части са свързани заедно и взаимодействат както трябва. Направете тестване на e2e, след като всички други етапи на тестване вече са завършени. Това означава, че трябва да изчакате, докато всички отделни компоненти бъдат тествани.
  3. Имайте предвид опита на крайните потребители. Говорете с клиента, ако е възможно, и се свържете със собствениците на продукта и хората от техническата поддръжка, за да научите повече за това как реалните потребители използват вашето приложение. Имайки предвид тези знания, вашите e2e тестове ще бъдат по-ценни и успешни.
  4. Когато дойде време за тестване на e2e, уверете се, че разполагате с процес, който се приема от всички. Избягвайте значителни отклонения от процеса на тестване, тъй като те могат да доведат до по-бавни издания и могат да струват допълнително време и пари.

Заключение

За да се тества от край до край, е изключително важно да се следва съгласувания набор от практики – за да се гарантира, че тестването е изпълнимо и рентабилно.

Каква е целта на теста e2e? Опитайте се да мислите като потребителя, представете си, че използвате приложението за първи път и задайте няколко въпроса. Приложението лесно ли е за навигация и дали всички важни потребителски опции са лесно достъпни и достъпни? Дали пътуването е очевидно за потребителя – функциите са доста ясни за използване. Може ли потребителят да стигне от точка а до точка б – като завършване на регистрацията или процеса на плащане? Имайте предвид и страната на приемане на тестването и създайте своите тестове според това.

Опитайте се да покриете с e2e тестове частите от приложението, където се очакват много проблеми, и най-важните части за клиента. Опитайте се да използвате базирания на риска подход тук, за да определите какво да покривате. Има таблици с решения, които можете да използвате, за да определите визуално колко рискова е дадена функция.

Не тествайте за изключения, когато правите тестване на e2e, това може да бъде покрито на по-ниски нива на тестване, за да спестите ресурси и да тествате по-бързо.

Поддържайте редовно набора си от тестове e2e – тъй като тестовете e2e обхващат големи части от приложението, те обикновено са по-дълги и по-сложни от другите тестове. Ако един e2e тест може логически да бъде разделен на два или повече теста, тогава трябва да направите това, тъй като с всяка нова голяма стъпка в теста (като цял екран или страница в приложението) сложността на теста ще се увеличи значително и ще бъде по-трудно да се отстранят грешки, тъй като ще има множество точки на неуспех – което е една от най-големите болезнени точки при наличието на e2e тестове.

Уверете се, че вашите тестове са добре организирани и използвайте последователно наименуване – най-добре е да го направите очевидно само като прочетете заглавието на теста, за да разберете какво прави.

Имате предварително дефинирана настройка и разрушаване на теста – e2e тестовете ще изискват тестови данни и обикновено също ще пишат в базата данни. Уверете се, че почиствате, тъй като може да рискувате да имате дублирани данни, което може да доведе до грешки, които може да са били избегнати. Например като нарушения на първичния ключ, ако се опитате, да речем, да регистрирате тестов потребител с един и същ имейл два пъти.

Планирайте вашите e2e тестове добре и възможно най-рано. e2e тестовете, които сте автоматизирали, също трябва да бъдат проверени ръчно от истински човек, тъй като има много проблеми, които автоматизацията ще игнорира – тя ще проверява само това, което й кажете.

Освен това използвайте вашите e2e тестове, за да ускорите проучвателното си тестване – ако имате e2e тест, който попълва дълъг формуляр, трябва да го използвате, за да спестите време.

В зависимост от естеството на вашия проект може да искате да третирате тестването от край до край като съществена част от конвейера за изграждане. Подгответе e2e тестовете възможно най-рано, инвестирайте време в тях и се уверете, че разполагате с необходимите ресурси, за да имате възможност да тествате e2e дори преди функцията да започне да работи в производство. Късмет!



Source link