Като разработчици на софтуер една от най-важните части на нашата работа е тестването. Използват се десетки формати за тестване, като тестерите проверяват всеки ред код, за да доставят перфектния продукт.
Тестването “от край до край” е крайният тест за даден код, при който програмата се оценява от гледна точка на потребителя и се търсят потенциални грешки, които биха могли да развалят преживяването на някого с работата.
Научете повече за това какво представлява тестването “от край до край”, за някои от предимствата на този вид тестване и за някои от идеалните инструменти за завършване на процесите на тестване на работното място.
Какво представлява тестването “от край до край”?
Тестването “от край до край” се използва в процеса на разработване на софтуер за тестване на функциите и нивата на производителност на дадено приложение, когато се използва като продукт.
Целта на тестването “от край до край” (или E2E) е да се получи по-добра представа за работата на продукта при използването му в реална среда.
Тази форма на тестване се фокусира върху проверката на кода от началото на взаимодействието на потребителя с него до края, откъдето идва и терминът “от край до край”.
Това е много подробен начин за изследване на софтуера и откриване на проблеми, които могат да възникнат в работата ви.
1. Кога и защо се прави тестване “от край до край”?
Най-доброто време за извършване на E2E тестване е към края на процеса на разработка. Това е така, защото повечето от функциите, които клиентът използва, са налични в софтуера, което означава, че тестът “от край до край” обхваща всички необходими аспекти на програмата, с които потребителите ще се сблъскат.
Завършването на тестването преди този срок може да доведе до проблеми, свързани с факта, че то представлява непълна версия на програмата или софтуера.
Организациите извършват E2E тестване по очевидни причини, най-вече свързани с функционалността. Преминаването през този процес на тестване означава, че сте разбрали проблемите на проекта си до този момент и можете да ги разрешите, преди да пуснете продукта си в публичното пространство.
2. Кога не е необходимо да правите тестване “от край до край
Има няколко случая, в които не е необходим тест от край до край, като например случаите, в които тестовете на единици са по-ефективни.
Тестовете на единици изследват специфични единици от даден код, като например отделни функции и изолирани връзки между две различни функции в програмата. Тестовете на единици могат да бъдат по-бързи, но имат недостатъка да не симулират напълно потребителското изживяване.
Обмислете тестване на единици, когато има сравнително малко единици, например в уеб приложение, което има само една функция.
По-големите приложения изискват експоненциално по-голям екип за цялостно тестване на всички единици.
В тези случаи връщането към тестовете “от край до край” е много по-лесен процес.
3. Кой участва в тестовете E2E?
Това зависи изцяло от характера на организацията. В някои компании има специален екип за тестване, в който самите разработчици извършват процеса на тестване за някои фирми.
По-големите организации обикновено разполагат с отделни екипи за тестване и разработване, като поддържат двата органа независими един от друг, за да не внасят пристрастия в резултатите от тестовете E2E.
Когато е възможно, помолете някой, който не е разработвал дадена функция, да я тества. По този начин се отстранява присъщата на теста предубеденост, когато това е възможно, и се запазва възможно най-точен крайният тест.
По-малките независими разработчици, като например разработчиците на приложения за първи път или тези с по-ограничени бюджети, сами извършват тестовете E2E.
В тези случаи се съсредоточете върху използването на автоматизирано тестване. Автоматизираните системи елиминират всякаква пристрастност и не допускат грешки при изготвянето на резултатите.
Когато е възможно, е идеално тестовете да се извършват от няколко души и да се повтарят, тъй като това осигурява допълнителни нива на сигурност както при автоматичните, така и при ръчните резултати.
И накрая, инструментите за автоматизация от край до край като ZAPTEST предлагат модел “софтуер + услуги”, което означава, че сертифициран от ZAP експерт ще работи заедно с екипа на клиента и като част от него, за да поддържа и максимизира възвръщаемостта на инвестициите, генерирани от различни автоматизирани тестове, включително от край до край.
Предимства на тестването “от край до край
Тестването “от край до край” има няколко предимства за екипа на разработчиците, които варират в зависимост от конкретния тип софтуер, който тествате.
Някои от основните ползи от използването на E2E тестване във вашата организация включват:
1. Откриване на недостатъци
Тестването “от край до край” е идеално за откриване на грешки и други недостатъци в даден софтуер.
По време на процеса на тестване записвайте всички проблеми и съобщения за грешки, които виждате, както и мястото, където се намират тези проблеми. Това прави процеса на отстраняване на грешки много по-бърз и лесен.
Някои примери за проблеми, които трябва да се търсят, включват незавършване на функция на приложението, пълно сриване на приложението или неправилно зареждане на функциите на потребителския интерфейс, което се отразява на външния вид на програмата.
2. Разбиране на гледната точка на потребителя
Един от проблемите, с които се сблъскват разработчиците, е неразбирането на гледната точка, която потребителите имат към тяхната работа. В края на краищата разработчиците виждат предимно задния край на работата и не разбират как потребителят взаимодейства.
Този процес запълва тази празнина и насочва вниманието на разработчиците към проблеми като тези с потребителския интерфейс.
Съставете пълна версия на приложението, за да получите пълно потребителско изживяване в тези случаи – от първоначалното отваряне на приложението до преминаването през всички налични функции.
Тестерите, които не са разработчици, са полезни в тези случаи, тъй като те са по-малко снизходителни, като се фокусират върху това как приложението “трябва” да работи и виждат изключително външна перспектива.
3. Повишаване на доверието на разработчиците
Дори след като са извършили няколко теста, разработчиците трудно могат да бъдат напълно уверени в работата си.
Тестването от край до край показва, че преживяването на потребителите е положително и че е налице добра основа за пускане на продукта.
Дори и в случай на проблем, знанието за това къде се намират тези проблеми е от полза за създаването на стратегия и за увереността в другите области и функционалност на приложението.
Предизвикателства при тестовете “от край до край
Използването на тестове от типа “от край до край” при разработването на софтуер се сблъсква с няколко предизвикателства, включително:
1. Бавно изпълнение
Извършването на тест “от край до край” означава взаимодействие с потребителския интерфейс, за да се подтикне към действие, а не използване на бекенда, което може да отнеме повече време за навигация и използване на приложението.
Това се подобрява частично, когато се използва автоматизация на тестовете от край до край.
2. Сложни среди за изпитване
Тестването от край до край е проектирано така, че да се фокусира върху пресъздаването на точна версия на начина, по който клиентът взаимодейства със софтуера, което прави изграждането на по-точна тестова среда по-трудно от провеждането на по-малки тестове.
3. Трудно отстраняване на грешки
Процесът на отстраняване на грешки е по-сложен при тестовете “от край до край”, тъй като е малко вероятно автоматичен тест, който се връща със съобщение “Fail”, да определи причината за проблема.
В тези случаи разработчиците трябва да проведат допълнително проучване, за да разрешат проблемите, особено ако няма интеграция на конкретни съобщения за грешки.
Характеристики на тестовете “от край до край
Има няколко основни теста, които трябва да се проверят, когато се установява дали даден тест е от типа “от край до край”.
Някои от характеристиките, които отличават този тип тестове, включват:
1. Оценка от начало до край
Всички тестове “от край до край” са оценки на софтуера от първото до последното взаимодействие на потребителя с продукта, като обхващат всеки аспект на софтуера, с който потребителите взаимодействат.
Това превръща E2E в един от най-всеобхватните формати за тестване в областта на разработването на софтуер.
2. Сценарий от реалния свят
Тестовете E2E акцентират върху симулацията на реалния свят, като всички тези тестове имат за цел да създадат реален сценарий, който точно да изобразява начина, по който потребителят взаимодейства с наличната информация.
Това включва изграждане на точна среда и потребител за тестовия случай.
3. Ясни резултати
Резултатите от E2E тестването са ясни и прости, като разработчиците научават дали софтуерът им е бил успешен или дали е имало неуспехи в даден момент от пътя на потребителя.
Това важи особено за ръчното тестване, тъй като тестерите могат да докладват за всякакви проблеми.
Видове дейности при E2E тестване
Съществуват няколко вида дейности, които разработчиците и тестерите извършват в процеса на E2E тестване.
Те включват:
Функции на потребителя
Потребителските функции са едно от първите неща, върху които трябва да се съсредоточите, когато работите с E2E тестване.
1. Какво представляват потребителските функции?
Потребителските функции са списък на всички функции и взаимосвързани системи, които съществуват в даден софтуер.
Това включва всичко, с което потребителят ще взаимодейства и което осигурява по-високо ниво на функционалност на програмата.
Без потребителски функции няма нужда от програма, тъй като просто имате код, който създава потребителски интерфейс, който не прави нищо.
2. Примери
Менюто в дадено приложение се счита за потребителска функция, тъй като е нещо, което потребителят използва, когато подобрява стандарта на своята работа.
Допълнителни примери включват алгоритми в бек енда, като например такива, които предоставят на потребителите повече информация и разрешават или отказват достъп до избрани програми.
3. Изграждане на потребителски функции
Избройте всички функции и взаимосвързани системи, преди да проследите и отбележите всички взаимодействия, които се случват в системата.
Това включва всички въведени данни и резултатите, които се получават от програмата.
Бъдете възможно най-подробни в този процес, тъй като цялостното разбиране на функционалността и данните в програмата прави тестването много по-просто и разбираемо.
Условия
Условията се отнасят до параметрите, които се задават в рамките на теста “от край до край”, като определят начина, по който се провежда тестът, и начина, по който тестващият оценява резултата.
1. Какво представляват условията?
Условията се отнасят до набор от параметри, които определят даден тест. Те са в две форми, включително параметър TRUE/FALSE, който определя дали данните или изходът са валидни, и параметър за данни.
Използването на тези условия определя състоянието на теста и дали средата е точна за реален потребител.
2. Примери за условия при тестове “от край до край
Пример за условие TRUE/FALSE е браузърът, в който е включен потребителят при достъп до уеб приложение, като TRUE/FALSE определя дали потребителят е във версията за настолни компютри.
Пример за условие за данни е времето, необходимо на даден потребител да завърши определено действие, или IP адресът, от който се свързва даден потребител.
3. Условия на сградата
Определете идеалните условия за тестване, включително местоположението на потребителя, времето, в което се провежда тестът, и някои други условия за данни, които допринасят за точността на теста.
Когато е необходимо, използвайте “потребителски профил”, за да осигурите последователност и точност на данните си. Колкото по-реалистични са условията на теста, толкова по-точни са резултатите от него.
Тестови случаи за тестване от край до край
Тестовият случай е набор от действия, които потребителят извършва в дадена система, за да провери дали тя функционира според очакванията на разработчика.
Завършването на поредица от тестови случаи означава, че разработчиците могат да имат по-голяма увереност в качеството на работата си и да видят, че продуктите им работят според очакванията.
1. Какви са тестовите случаи за тестовете “от край до край”?
Тестовите случаи за тестове от край до край се изпълняват от тестери, които работят от самото начало на взаимодействието на даден потребител с програмата до края.
Чрез разработването на тези задълбочени тестови случаи и тяхното проследяване за всяка итерация на софтуера разработчикът гарантира, че има функционалност във всяка итерация на софтуера.
Поддържайте тестовите си случаи последователни от версия до версия, за да виждате промените в качеството на работата и резултатите от тестовете.
2. Как да проектираме тестови случаи E2E?
В процеса на проектиране на тестови случаи E2E има няколко стъпки, всяка от които води до по-добри резултати по време на тестването.
Тези стъпки включват:
Познайте целите си
Започнете с разбирането на целите на всеки отделен тестови случай.
В първия кръг от тестове се проверява основната функционалност и се гарантира, че приложението работи, а в последствие се проверяват нивата на производителност и бързина на реакция.
Това включва разбиране на конкретните условия на теста, включително демографската информация, с която се тества, и гарантиране, че тя отговаря на средния потребител.
Поставянето на целите ви в съзнанието от самото начало осигурява по-голям фокус и яснота в процеса.
Фокус върху простотата
Започнете от сравнително проста основа.
Ако още в първия тест изброите поредица от сложни условия и изисквания към работата си, вие правите преминаването на теста все по-трудно и усложнявате работата си.
Завършете първоначалното тестване с много основни условия и цели, преди да надграждате в по-късните тестове и да добавяте повече подробности, когато е необходимо.
Тестването може да бъде по-сложно, но преди да се разширите, завършете най-основните неща.
Бъдете задълбочени
Работете върху това да бъдете възможно най-внимателни при попълването на тестовете E2E.
Това означава, че трябва да завършите напълно всеки тест и да записвате всяка информация, получена в процеса.
По този начин откривате въздействието на всяка промяна в кода.
Това е особено полезно при оптимизиране на програмата на по-късен етап от процеса и измерване на времето, необходимо за изпълнение на конкретни задачи.
3. Примери за тестови случаи E2E
Някои примери за тестови казуси, които компаниите използват, когато установяват качеството на своя софтуер по време на E2E тестването, включват:
Функционално изпитване
Тестването на функциите включва установяване на това дали конкретни функции в софтуера работят според очакванията.
Това е един от най-ранните етапи на E2E тестването и установява дали кодът работи на базово ниво, преди да се направи опит за подобряване на производителността на софтуера в следващите итерации.
Скорост на реагиране
Установяване дали софтуерът реагира бързо на потребителя и дали изпълнява задачите своевременно.
Някои E2E тестове се фокусират върху гарантирането на бързото връщане на валидни резултати от системата, като измерват времето, необходимо за преминаване през процеса на потребителя, и го сравняват с предишни итерации, като по-кратките периоди са идеални за потребителя.
Запазването на валидни и точни резултати остава важно през целия този процес.
Отговори на базата данни
Някои системи са проектирани така, че да връщат на потребителя поредица от отговори от база данни.
Когато тествате тези приложения, задайте определен период от време, през който приложението трябва да отговори, и измерете броя на отговорите, които получава от базата данни, в сравнение с предишните итерации на същия тестови случай.
Два вида тестване и методи “от край до край
Както и при другите форми на тестване, има различни видове тестване от край до край, които разработчиците използват, като всеки от тях има различни предимства в зависимост от целите ви.
Тестването “от край до край” включва хоризонтални и вертикални тестове, които се различават значително по мащаба на тестването и методите, които разработчиците използват в процеса.
Те включват:
1. Хоризонтални тестове
Хоризонталният тест се извършва, когато потребителските потоци се проверяват едновременно в няколко приложения, като всички приложения се изпълняват от начало до край. По този начин гарантирате, че всеки процес работи правилно в редица различни случаи на употреба, като различните форми на данни не оказват отрицателно въздействие върху работата на приложението.
Основното предимство на хоризонталното тестване е, че се гарантира правилната работа на системите за редица потребители, които използват една и съща версия на приложението.
За да завършите хоризонталното тестване, съсредоточете се върху създаването на среди за всички случаи, преди да стартирате теста от край до край.
Всички приложения трябва да функционират по едно и също време, което означава, че това също не е идеално за компании, които все още не са завършили процеса на разработка на своите приложения.
Този вид тест за електронно управление е задълбочен от гледна точка на потребителя и гарантира, че освен основната функционалност, потребителите ви разполагат и с нивото на производителност, което очакват.
2. Вертикални тестове
Вместо да се фокусира върху начина, по който работи цялото приложение, вертикалното тестване “от край до край” се фокусира върху приложението слой по слой.
Това включва по-подробен процес, при който многократно се тестват всички отделни аспекти на дадено приложение, като се тества в рамките на една система, а не в рамките на всички приложения, както е при хоризонталното тестване.
Основното предимство на вертикалното тестване е, че получавате по-подробен и детайлен поглед върху начина, по който работи вашата система. Виждате какви са проблемите на всяко конкретно ниво на системата и работите за отстраняването им след процеса на тестване, а не просто знаете, че някъде в приложението има проблем.
Това обаче може да отнеме повече време за правилно изпълнение в сравнение с работата с хоризонтални тестове.
Изясняване на някои неясноти – тестване от край до край срещу тестване на системата срещу UAT тестване срещу функционално тестване
Съществуват няколко различни вида тестване, които хората бъркат с тестването “от край до край”, когато обсъждат начина, по който организациите оценяват и разрешават проблеми със своя софтуер.
Тъй като различните организации и части от софтуера имат уникални нужди, е необходимо да се обърне внимание на тези нужди с подходяща форма на тестване.
Вижте някои от различните форми на тестване по-долу, с определения, примери и кога да ги прилагате.
1. Какво представлява системното тестване? (определение, примери, кога го прилагаме)
Системното тестване е версия на софтуерното тестване, която разглежда софтуерния продукт в контекста на цялата система.
Това е форма на изпитване от край до край, тъй като обхваща целия продукт; изпитването на системата обаче отива по-далеч и установява как продуктът взаимодейства с останалия хардуер и фърмуер на въпросната система.
Например системното тестване включва проверка дали дадена програма ще работи на определена система и проверка на ресурсите, които тя използва в този процес.
Извършвайте тестване на системата в последните етапи от цикъла на разработване на продукта, малко преди пускането на крайния продукт.
Чрез тази форма на тестване от край до край софтуерните инженери гарантират, че програмите им работят надеждно на различни машини, и могат да използват резултатите в процеса на оптимизация, като направят програмата още по-ефективна от предишната.
2. Какво представлява UAT тестването? (определение, примери, кога го прилагаме)
Тестването UAT е съкращение от User Acceptance Testing (Тестване за приемане от потребителя) и представлява форма на тестване, която не се извършва от някой от екипа за разработка, а от член на целевата аудитория.
Крайните потребители могат да взаимодействат пълноценно със софтуера преди пускането му в експлоатация, което дава възможност на разработчиците да разполагат с време, за да отстранят всички проблеми, открити от потребителите.
Най-често срещаният пример за това е безплатен бета тест на игра преди пускането ѝ на пазара, при който разработчиците избират конкретна аудитория за обратна връзка.
Прилагайте този процес в самия край на процеса на разработка. Това е първата версия на продукта, която представяте на външни лица, така че е необходимо да разполагате с възможно най-много функционални възможности и да ги доусъвършенствате.
Единствените неща, които компанията трябва да направи след провеждането на тестовете UAT, са отстраняването на грешки, възникнали в процеса на UAT, и отговорът на обратната връзка, която получавате от потребителите.
3. Какво представлява функционалното тестване? (определение, примери, кога го прилагаме)
Функционалното тестване е форма на софтуерно тестване, което се извършва, за да се гарантира, че програмата изпълнява всички основни функции, които са били част от проекта.
Това включва предоставяне на подходящи входни данни за тестовете и сравняването им с изходните данни, което показва, че основната функционалност на системата е налице.
Пример за това е създаването на механизъм за игра на шах или друга подобна игра и гарантирането, че той познава основните правила и действа по подходящ начин, когато играе.
Завършете това тестване по средата на процеса на разработване, когато смятате, че сте създали всички основни функции на програмата.
Това показва, че основните функции на приложението са функционални и че имате добро базово ниво на производителност, без да се налага да коригирате кода на бекенда, като остава да се решат само въпросите, свързани с потребителския интерфейс и други естетически характеристики.
4. Каква е разликата между тестването “от край до край” и системното тестване?
Докато тестването “от край до край” е просто анализ на софтуера и ефективността на работата му, тестването на системата включва също така оценка на хардуера, на който работи, и на някои елементи от фърмуера, като например операционната система, с които взаимодейства.
5. Каква е разликата между тестването “от край до край” и UAT тестването?
Основната разлика между E2E и UAT тестването е, че UAT тестването преминава през външен потребител.
Това означава, че трябва да имате приложение в приличен вид, за което сте сигурни, че ще впечатли потребителя.
Освен това, докато E2E тестването може да се извърши на всеки етап от процеса, UAT тестването се извършва едва когато продуктът е готов да бъде опакован и изпратен на потребителите, като са необходими само малки промени в софтуера.
6. Каква е разликата между тестване “от край до край” и функционално тестване?
Макар че и при E2E тестването, и при функционалното тестване се проверява функционалността на въпросните програми, те все пак са различни форми на тестване по няколко причини.
Първата е, че при тестването на функционалността се разглежда единствено дали дадена програма е функционална, а не се разглеждат естетическите и интерфейсните аспекти на програмата.
Функционалното тестване също се извършва сравнително рано в процеса, а не е полезно във всеки момент от работния процес.
7. Заключение: E2E тестове срещу системни тестове срещу UAT тестове срещу функционално тестване
Въпреки че и трите форми на тестване си приличат по това, че осигуряват функционирането на продукта, те се различават по съществени начини.
Използването на тези термини като взаимозаменяеми може да доведе до лоши практики за тестване и проблеми с процесите за осигуряване на качеството, които се бъркат един с друг, затова се съсредоточете върху изучаването на тези термини и правилното им използване, преди да предприемете стъпки за използването им на работното място.
Ръчни или автоматизирани тестове “от край до край”?
Разработчиците могат да изберат няколко начина за извършване на тестове от край до край в зависимост от наличните ресурси и персонал. Това се отнася до промяната между ръчното тестване от край до край и автоматизирането на тези тестове.
Вижте какви са ползите, предизвикателствата и процесите на ръчното и автоматизираното тестване от край до край:
1. Ръчно тестване “от край до край” – ползи, предизвикателства, процес
Ръчното тестване “от край до край” се състои в самостоятелно извършване на тестовете “от край до край”, като участвате във всеки от тестовете “на ръка”, вместо да използвате автоматичен инструмент за тестване “от край до край”, който да го направи вместо вас.
Компаниите обикновено използват специализиран екип за тестване, за да завършат ръчните процеси за електронно управление, тъй като те имат опит в тестването на софтуер и разбират как да отбелязват естеството на грешките и бъговете в системите.
Едно от основните предимства на процеса на ръчно тестване от край до край е фактът, че сами виждате всички потенциални проблеми, като отбелязвате недостатъци в софтуера, които компютърът може да не забележи.
Процесът обаче може да бъде сравнително бавен в сравнение с автоматизирането на процесите на тестване.
В тези случаи човек, например един от разработчиците, преминава през приложението и завършва всички функции, като бързо научава какво работи и какво не от наличния софтуерен пакет.
Това се случва след процес на планиране, при който тестерът от край до край подготвя конкретен набор от тестове и научава показателите, които се стреми да проследи по време на процеса, следвайки строг набор от цели.
2. Автоматизация на тестовете от край до край – ползи, предизвикателства, процес
Автоматизацията на тестовете се отнася до процеса на извършване на E2E тестове с помощта на компютърна програма за автоматизиране на тестовете. По-голямата част от автоматизацията се осъществява чрез специализирани инструменти за тестване от край до край, предназначени за работа с конкретни езици за кодиране и видове програми.
В този процес все още има човешко участие, но само на етапите на първоначално кодиране и окончателен анализ.
Едно от основните предимства на автоматизираното тестване от край до край е, че по-големите приложения и програми изискват много по-задълбочена оценка и анализ, тъй като все повече функционалности и елементи на потребителския интерфейс стават част от работния процес.
Автоматизираните тестове e-to-e откриват тези по-малки отклонения. Едно от предизвикателствата на автоматизираното тестване обаче е, че човешкото око забелязва някои разлики, които компютърът не може да забележи, което води до това, че автоматизираното тестване от край до край понякога пропуска грешки, които човешките тестери не забелязват.
За да завършите цялостното автоматизирано тестване, вземете решение за тестовите случаи и ги напишете като код, като ги интегрирате в инструмента за тестване на софтуер.
След това стартирайте теста и получете резултатите, като използвате информацията, за да научите за потенциални промени в приложението.
Когато е възможно, завършете всеки от тестовите случаи от край до край поотделно, тъй като различните тестови случаи търсят различни неща. Независимото им изпълнение намалява вероятността тестовете да си пречат един на друг.
3. Заключение: Ръчна или цялостна автоматизация на тестовете?
Решението дали ръчното тестване или автоматизацията е идеалният вариант зависи изцяло от нуждите на вашия екип за разработка.
По-малките проекти могат да бъдат тествани обстойно от екип ръчно, като се преглежда кодът за евентуални грешки и те се отбелязват незабавно.
Напротив, по-големите проекти са твърде големи, за да се тестват ръчно, и изискват много автоматизация на софтуерното тестване.
Помислете за специфичните нужди на вашия проект и адаптирайте плановете си за електронно тестване в съответствие с това, което научавате за мащаба на вашето тестване.
Бюджетът не е непременно фактор, тъй като в повечето случаи автоматизацията на тестове се предлага както в безплатни, така и в корпоративни версии.
Какво ви е необходимо, за да извършите тестване от край до край
Има няколко неща, от които се нуждаете, преди да започнете тестване от край до край, независимо дали се фокусирате върху ръчния метод или автоматизирате работата си.
Те включват:
1. Представителен хардуер
Много разработчици имат достъп до хардуер от висок клас и използват съвременни компютри като инструмент за разработване на своя софтуер. Това е идеално за строги тестове и проверка на функционалността на различни аспекти на софтуера, но не представлява точно избрания от крайния потребител хардуер.
Придобийте хардуер, който е по-подходящ за профила на средния потребител, тъй като ще получите по-точна представа за проблемите, които те имат с програмата, която тествате от край до край.
Например, идеално е да се използва мобилен телефон за приложение за телефон, а индустриален компютър – за производствен софтуер.
2. Инструменти за автоматизация на тестването
Когато работите с автоматизация на тестването, се уверете, че разполагате със софтуер за тестване от самото начало на електронното тестване.
Изберете внимателно софтуера си, тъй като както безплатните, така и корпоративните версии на софтуера за тестване имат своите предимства и потенциални недостатъци. Проучете софтуера, който използвате, и направете няколко тренировъчни теста, за да намалите времето, което отделяте за адаптиране към платформата за тестване.
Много цялостни софтуерни пакети предлагат подробни ръководства или експерти, като например поддръжката за тестване на ZAPTEST, а някои експерти създават уроци в YouTube и други свързани сайтове, за да предоставят повече информация.
3. Съгласуван план
Едно от най-важните неща, които трябва да притежавате, когато навлизате в процеса на тестване от край до край, е съгласуван план за тестване.
Това е документ, в който се записват версията на софтуера, който тествате, конкретните тестове, които извършвате върху софтуера, хардуерът, който използвате, и използваната платформа за тестване.
Колкото по-подробна е документацията ви, толкова повече полезни уроци ще извлечете от проведените тестове e to e.
Ако организацията ви разработва много софтуер, създайте шаблон за планиране на тестовете и го използвайте за всеки тест, за да постигнете по-голяма последователност.
4. Пълен софтуер
Процесът на тестване на софтуера изисква цялостен софтуер, който да е на разположение на екипа за тестване от край до край.
В тези случаи е от съществено значение да разполагате с най-актуалния софтуерен пакет, тъй като по-новата версия означава, че всички констатации са възможно най-представителни спрямо окончателната версия.
Колкото по-близо до пускането на пазара е софтуерният пакет, толкова по-полезни резултати получава екипът от тестовете E2E.
Компилирайте от най-новия код, с който разполагате непосредствено преди теста, за да сте сигурни, че случайно не работите със стара версия.
Процес на тестване на автоматизация от край до край
Съществува подробен процес, който трябва да се следва при завършване на тестването от край до край чрез автоматизирани средства, като стъпките включват:
1. Обмислете вашите случаи за изпитване e-to-e
Започнете да обмисляте тестовите случаи, които разглеждате при тестването “от край до край”.
Например тестовите случаи в ранните тестове включват гарантиране на правилната функционалност и проверка на всички функции на софтуера, които работят и осигуряват правилните резултати.
На по-късен етап от процеса разгледайте тестови случаи, като например ефективността на програмата и скоростта, с която работи.
Балансирайте тестовите случаи спрямо нуждите на проекта в зависимост от етапа на разработване и количеството тестове от край до край, които са били извършени преди това.
2. Кодиране на тестовите случаи от край до край
След като сте избрали тестовите случаи, кодирайте конкретните тестови случаи в използвания софтуер за тестване.
Обърнете внимание на кодирането на тестовите случаи от край до край, тъй като неточно кодираният тестов случай може да не тества правилното нещо или да търси грешна метрика в края на процеса.
Това е изключителна част от процеса на автоматизирано тестване, тъй като ръчното тестване се състои просто в това, че тестерът оценява качеството на програмата, без да изисква компютърна намеса.
Когато е възможно, изпълнявайте по един тест, за да бъдат резултатите последователни и без смущения.
3. Извършване на тестовете E2E
След като всички тестове са кодирани в софтуера за тестване, стартирайте тестовете.
В зависимост от естеството на тестовете, които провеждате, това може да отнеме от няколко минути до няколко минути, като различаващите се фактори включват размера на приложението, което тествате, и конкретните тестове, които извършвате.
По-голямата част от програмите за автоматизация на E2E тестове ще ви информират за оставащото време до края на процеса и за етапа, на който се намира.
Ръчните тестове изискват повече време и усилия, тъй като тестерът преминава през всички функции и процеси на приложението.
4. Учете се от резултатите
В края на самия тест програмистите и тестерите получават поредица от показатели и друга информация, свързана с теста.
Използвайте тази информация, за да научите повече за вашето приложение или програма, например за областите, които изискват подобрение, и за конкретните процеси, които изискват повече настройки, за да работят по по-висок стандарт.
Тестовите метрики са едни от най-ценните данни, които организацията получава, и чрез правилното им използване значително повишавате качеството на крайния продукт. Съхранявайте дългосрочни данни от предишни тестове, за да направите по-задълбочено сравнение между отделните версии.
Най-добри практики за тестване “от край до край
Спазването на най-добрите практики във всяка индустрия и компетентност е първата стъпка към постигането на по-добри резултати.
Някои от най-добрите практики за цялостно тестване в процеса на разработване на софтуер включват:
1. Определете обхвата на тестовете си
Когато извършвате E2E тестване на софтуер, определете правилно обхвата на теста.
Това включва каква част от приложението се тества и какви конкретни показатели се търсят при тестовете.
Ако ясно определите тази информация в самото начало на процеса, ще знаете какво търсите по време на целия процес и резултатите ви ще бъдат лесно интерпретирани. Премахва се “шумът от данни”, като например информация от други приложения или тестове.
2. Фокусиране върху ефективни тестове
Ефективността е основна част от тестването, тъй като колкото повече ресурси използвате в програмата за тестване, толкова повече отнемате от самото приложение.
За да се противопоставите на това, се съсредоточете върху създаването на много прости и ефективни тестове.
Ако всеки тест е свързан с отделни и относително малки параметри, той отнема по-малко ресурси и означава, че резултатът е възможно най-точен, което осигурява по-полезни данни в края на проекта.
3. Създаване на прост набор от уведомления
Наборите от известия са инструменти, които тестващите използват, за да получават информация за тестовете.
Когато създавате набор от известия, наблегнете на яснотата и простотата. Ако разбирате лесно кодовете за грешки, например като създадете такъв, в който се посочва естеството на проблема и къде в системата се намира проблемът, подобрявате шансовете си да откривате проблемите своевременно и да реагирате на тях по начин, който да отстрани програмата възможно най-скоро.
Видове резултати от тест “от край до край
Когато извършвате тест от край до край, трябва да търсите няколко различни вида резултати, всеки от които предоставя уникална информация.
Някои от тези видове резултати, които трябва да се търсят, включват:
1. Данни
Това се случва, когато резултатът от крайното тестване е проста метрика за данни.
Данните включват времето, което е необходимо на даден процес, за да върне точен резултат, резултат от изчисление или дори изображение, взето от база данни.
2. TRUE/FALSE
Някои E2E тестове връщат резултатите с TRUE или FALSE, като посочват дали даден набор от параметри или условия е верен или неверен в края на процеса.
Това е полезно за системите за безопасност, тъй като връщането на FALSE в условията за безопасност може да бъде причина за задействане на аларма.
3. Състояния на отказ
Един полезен тип изходни данни е представата за състоянието на неуспех и дали процесите в дадено приложение са работили според очакванията.
В тези случаи след стартиране на програмата тя ще отговори, като посочи дали е завършила процесите си или не, като в случай на неуспех ще се появят специфични съобщения за грешки и кодове.
Примери за тестове “от край до край
Разбирането на тестовете “от край до край” е много по-лесно, когато разполагате с няколко примера – както успешни, така и неуспешни опити за процеса.
Ето някои примери за цялостно тестване в процеса на разработка:
1. Ръчни тестове от край до край
Едно дружество е в последния етап от разработването на продукта си и е създало прост уеб инструмент за изчисляване на данъците върху доходите на лица, работещи на свободна практика.
Екипът на разработчиците преминава през ръчен процес на тестване E2E, като проверява дали програмата реагира с правилните стойности и дали всички функции на потребителския интерфейс работят според очакванията на разработчиците.
Екипът открива някои малки грешки в изчисленията и реагира на тях, като актуализира програмата, преди да завърши следващия тест.
2. Автоматичен тест от край до край
Разработчик на голямо уеб приложение, предназначено за изчисляване на бизнес финанси, е на път да пусне продукта си, като преди това преминава през процес на E2E тестване.
Екипът кодира тестовете си в платформа за автоматично тестване и получава резултатите, като използва показателите, за да гарантира функционалността и ефективността.
Тъй като програмата е ефективна, тестерите продължават да подобряват производителността на софтуера и да намаляват използването на ресурсите преди тестовете UAT.
3. Нискокачествено тестване от край до край
Фирма иска да публикува своя софтуер възможно най-скоро.
Разработчиците преглеждат приложението бързо и накратко, без да планират предварително тестването от край до край.
Бизнесът пропуска някои от проблемите в софтуера, които клиентите виждат след пускането на продукта. Загубата на репутация е едно от най-големите последствия от това лошо тестване, като компанията също така възстановява суми за някои покупки.
Видове грешки и недостатъци, открити чрез тестване “от край до край
Откриването на грешки и недостатъци е една от основните цели на процеса на тестване при разработването на софтуер, като някои грешки и проблеми са често срещани, като например:
1. Визуални грешки
Визуалните грешки се появяват, когато програмата изглежда по различен начин от този, който разработчиците са предвидили.
В този случай някои от проблемите включват незареждане на текстури във виртуални среди, изкривяване на изображения или неправилен размер, както и неизписване на текст в потребителския интерфейс.
Софтуер, който има визуални недостатъци, може да отблъсне потребителите, които първоначално оценяват софтуера от пръв поглед.
2. Неработеща функционалност
Функционалността е начинът, по който се очаква даден софтуер да се държи, като неизправната функционалност просто означава, че приложението не изпълнява очакваната работа.
Това може да включва неправилно отпечатване на текст, невъзможност за събиране на информация от база данни или бавна работа в сравнение с очакванията на клиента и разработчика.
3. Недостатъци при обработка на грешки
Проблемите с обработката на грешки се отнасят до случаите, когато даден софтуер има проблем, но не може да определи какъв е той. Това е причината за дългите и сложни съобщения за грешки в софтуера.
Основният проблем при обработката на грешки е, че потребителят не може да определи какъв е проблемът и следователно не може да го реши.
Обработката на грешки също е важен проблем за разработчиците, тъй като представлява пречка за ефективното отстраняване на грешки.
Общи показатели за тестване от край до край
Когато завършвате процеса на E2E тестване, задължително трябва да разполагате с прости показатели, които да ви осигурят стабилна основа за сравнение на различните итерации на приложението.
Някои примери за показатели за тестване от край до край са:
1. Време за изпълнение на теста
Това е времето, което е необходимо на автоматизираната система, за да извърши всички тестове от край до край. Колкото по-бързо е това време, толкова по-ефективен е софтуерът.
Чрез сравняване на времето за изпълнение на тестовете между отделните тестове разработчиците могат да видят дали ефективно са увеличили скоростта на софтуера след последната итерация.
2. Брой неуспешни опити
Някои разработчици проследяват броя на неуспехите от една версия до друга. Това е необработена цифра, а като видят, че сумата намалява значително от версия до версия, разработчиците знаят, че решават значителни проблеми в кода.
3. Плътност на отказите
Гъстотата на отказите се отнася до броя на отказите, които се случват при отчитане на размера на кода.
Например, ако кодът на дадено приложение нарасне четири пъти, но честотата на отказите се увеличи само с 50%, плътността на отказите показва, че това е подобрение, а не увеличаване на проблемите, които има приложението.
Най-добрите безплатни инструменти за тестване от край до край
Когато създавате тест “от край до край”, можете да започнете с безплатен инструмент.
5 най-добри безплатни инструмента за автоматизирано тестване от край до край
Някои от най-добрите безплатни инструменти за автоматизирано тестване от край до край са:
1. ZAPTEST FREE Edition
ZAPTEST Free Edition е версията на платформата ZAPTEST, която е достъпна за всички потребители без заплащане.
Безплатната версия се фокусира върху автоматизацията, като ви позволява да изпълнявате упражненията за отстраняване на грешки по график Just-in-Time. Извършването на електронни тестове по този начин е особено полезно за организациите, използващи гъвкаво разработване, тъй като осигурява много по-кратки срокове за изпълнение.
2. Каталон
Опция с отворен код, която предоставя основните инструменти за автоматизация в система без код.
Лесно се разширява, но изисква някои разширения и допълнителни функции, които са зад платена стена, за да се възползвате максимално от софтуера.
Друг проблем е, че работи по-бавно от някои алтернативи като Selenium.
3. Селен
Освен това, като платформа с отворен код, Selenium работи с редица различни езици за кодиране и браузъри, което я прави изключително гъвкава.
Може да е малко прекалено сложно за потребители, които искат да научат повече за автоматизацията на тестове. Това също не е само за тестване и действа като общ инструмент за автоматизация на браузъра.
4. Watir
Watir е изключително лек инструмент за тестване с отворен код. Той е идеален за тестване на много малки части от кода, но зависимостта от ръчно въвеждане означава, че се справя трудно с по-интензивни задачи и процеси.
Използвайте Watir за подпомагане на ръчното E2E тестване, но не и като инструмент за автоматизация на работата ви.
5. Капибара
Capybara се опитва да имитира поведението на потребителя при работа със софтуер, но работи предимно с уеб приложения, което я прави малко по-ограничена от идеалното за нея средство.
За по-малки тестове “от край до край” това може да е добре, но при самостоятелните програми Capybara трудно успява да се справи с конкурентите си.
5 най-добри инструмента за тестване “от край до край” в предприятието
Ако безплатен инструмент за тестване от край до край не е достатъчен, тъй като приложението ви е твърде голямо или инструментът не разполага с необходимата функционалност, винаги можете да използвате корпоративен инструмент.
Някои от инструментите за тестване от край до край на ниво предприятие, които можете да използвате, включват:
1. ZAPTEST ENTERPRISE Edition
Изданието Enterprise Edition на ZAPTEST е по-задълбочен инструмент от безплатната версия, предлагащ функции като неограничени лицензи, безкодов интерфейс, 1SCRIPT технология за различни платформи, устройства и приложения и постоянен достъп до сертифициран експерт на ZAP, който работи дистанционно заедно с екипа на клиента, като част от него.
От гледна точка на съотношението цена-качество това е идеалният вариант за цялостно тестване на софтуер, независимо от съществуващото ви ниво на опит.
2. BugBug
BugBug е инструмент за тестване на браузъри, предназначен за гъвкави екипи, и въпреки че е сравнително лесен за използване, неговият интензивен фокус върху браузърите и гъвкавата разработка не помага за гъвкавостта му.
Когато се разработва голям софтуер в по-традиционен процес, BugBug изпитва затруднения и става по-малко подходящ за електронния тестер.
3. Cypress
Широко разпространен инструмент за тестване, Cypress е предназначен за тестване на потребителския интерфейс, което означава, че не поддържа backend тестване, което е необходимо за ефективни E2E тестове.
Инструментът е силен в последните етапи на разработката, но липсата на използване за тестване на функционалността го прави сравнително слаб E2E инструмент.
4. Тестсигма
Инструмент с отворен код, който се фокусира върху поддръжката на тестовете за изкуствен интелект, като съхранението в облак може да представлява заплаха за сигурността при вече висока цена.
Достатъчно функционален, но му липсва личната поддръжка, която предлагат такива като ZAPTEST.
5. Autify
Идеален за начинаещи и за паралелно тестване, но ценообразуването при поискване може да доведе до объркване около дългосрочното планиране на организацията.
Полезни са в по-ранните етапи на тестването, но могат да се справят трудно с някои от по-сложните задачи, които се изпълняват в процеса на тестване “от край до край”.
Контролен списък за тестване от край до край
Извършването на тестване от край до край трябва да бъде задълбочен процес, поради което много екипи използват контролен списък, за да гарантират, че тестват всички важни аспекти на дадено приложение.
Някои неща, които трябва да добавите в контролния списък за E2E тестване, включват:
1. Тестване на функционалността
Тествайте функционалността на софтуера като цяло от гледна точка на потребител, като отбелязвате ефективността на функционалността и кои от функциите имат проблеми.
2. Изпитване на ефективността
Тествайте производителността на софтуера и се уверете, че той работи ефективно, без да отнема ресурси, включително оценка на времето, необходимо на софтуера за изпълнение на задачите, и тестване на натоварването.
3. Тестване на данните
Тествайте съхранението на приложението, като се уверите, че всички данни са защитени и организирани по правилния начин, като същевременно е лесно да се намерят конкретни записи, когато е необходимо.
4. Тестване на ползваемостта
Тествайте дали целият потребителски интерфейс е удобен за използване и дали има смисъл да се взаимодейства с него от гледна точка на клиент, който не е участвал в процесите на проектиране и разработване.
5. Тестване на сигурността
Тестване на всички пропуски или уязвимости в сигурността на приложението, за да се защити приложението от трети страни или за всички пропуски, които вече съществуват в кодовата база, за да остане в рамките на стандартите на GDPR.
Заключение
В заключение, тестването “от край до край” е изключително задълбочен метод за гарантиране, че дадена програма работи така, както очаквате.
Особено полезно преди пускането на пазара, използването на тестване от край до край е изключително гъвкав инструмент, който разработчиците от всякакъв мащаб могат да внедрят в своите процеси и да използват, за да гарантират, че доставят качествен продукт на крайния потребител.
Отделете време, за да обмислите конкретния вид тестване, което използвате, независимо дали е ръчно и хоризонтално или автоматично и вертикално, но всички разработчици трябва да разглеждат тестването от край до край като възможност за подобряване на крайните продукти.
Често задавани въпроси и ресурси
Тъй като тестването от край до край е обширна област на развитие, тя може да предизвика много въпроси. Прочетете нашите често задавани въпроси, за да научите повече за тестовете “от край до край” и как да подобрите качеството на тестовете си в бъдеще.
1. Най-добрите курсове за автоматизация на тестовете от край до край
Един от най-добрите начини да подобрите стандартите си за тестване от край до край е да участвате в курс. Някои от най-популярните курсове за хора, които искат да подобрят възможностите си за E2E тестване, включват:
– Изпълнение на тестване от край до край от Skillsoft – курс, който отнема малко повече от час и осигурява начална основа на обучението.
– Курс за автоматизирано тестване от PluralSight, който учи потребителите как да извършват тестове с помощта на автоматизация и софтуер.
– E2E Web Testing от TestCafe – кратък курс, обхващащ основите на автоматизирането на процесите на тестване с помощта на NodeJS.
– Специализация по тестване на софтуер и автоматизация от Coursera, която обхваща повечето умения и компетенции за тестване на софтуер.
– “Въведение в софтуерното тестване” от Coursera, идеален за всички, които са напълно нови в професията на софтуерния тестер.
2. Най-добрите книги за тестване от край до край?
Някои хора предпочитат да развиват уменията си със собствена скорост и да преминават през процес на четене, вместо да преминават през сложен курс като част от развитието на уменията си за E2E тестване.
Някои от най-добрите налични книги, посветени на E2E тестването на софтуер, включват:
– “Пълно ръководство за автоматизация на тестовете” от Арнон Акселрод
– “Съвети за автоматизация на софтуерното тестване” от Генадий Алпаев
– “Практическо тестване на мобилни приложения” от Даниел Кнот
– “Проучвателно тестване на софтуер” от James A. Whittaker
– “Тестване на разработчици: Вграждане на качеството в софтуера” от Александър Тарлиндър
3. Кои са 5-те най-важни въпроса за интервюта за тестване от край до край?
Когато кандидатствате за роля в компания за разработка, много от екипите за подбор на персонал задават въпроси, свързани конкретно с E2E тестването.
Някои от основните въпроси, които се задават на кандидатите за интервю, са:
– Какъв опит имате с E2E тестване на активно работно място и с какви предизвикателства се сблъскахте в процеса?
– Можете ли да ми разкажете за разликите между UAT и E2E тестването и кога бихте използвали всеки от видовете тестване в цикъла на разработка?
– По какво автоматизираното E2E тестване се различава от ръчното E2E тестване и защо компаниите използват всеки от тези методи?
– Как сте разрешавали проблеми, когато сте използвали E2E тестване в миналото?
– Какви са ползите от използването на E2E тестване на работното място на разработчика и защо тези ползи са важни?
4. Най-добрите уроци в YouTube за тестване от край до край
YouTube е една от най-добрите дестинации за усвояване на различни умения, като потребителите могат да се възползват от множество уроци в YouTube, за да развият своите умения. Някои идеални уроци в YouTube за всички, които работят върху уменията си за тестване на E2E, включват:
– “Software Testing Tutorial #28 – End to End Testing in Software Testing” от Software Testing Mentor
– “Безплатен цялостен курс за ръчно тестване – юли Batch 2022” от Performance Testing Basic and Advanced
– “Време е за тестване от край до край!” от Academind
5. Как да поддържаме тестове “от край до край”?
Поддържането на тестове “от край до край” означава да поддържате протоколите за тестване през целия процес на разработка.
Един от най-добрите начини да се уверите, че поддържате тестовете си, е да извършвате едни и същи тестове многократно, което гарантира по-високо ниво на последователност при отделните тестове.
В този процес също така се съсредоточете върху простотата, тъй като колкото по-прости са тестовете, толкова по-лесно се поддържат данните и толкова по-лесно се повтарят тестовете за бъдещи набори от данни.
6. Какво представлява тестването “от край до край” в QA?
Тестването “от край до край” в осигуряването на качеството се отнася до ролята на E2E тестването в процесите на осигуряване на качеството. В тези случаи процесът е сходен, като тестващите проверяват цялото приложение или програма, но конкретните цели на тестването се различават.
В тези случаи целта е да се осигури високо ниво на качество на потребителското изживяване, а не да се гарантира, че всичко е възможно най-функционално и ефективно.
Тестването за осигуряване на качеството обикновено се извършва след приключване на процеса на разработка.