test data management concept
В последния урок се фокусирахме върху как да подготвим тестовото легло за минимизиране на дефектите на тестовата среда . В продължение на същия урок днес ще научим как да настроите и поддържате Тестова среда и важноТестово управление на даннитехники.
Процес на настройка на тестовата среда
Най-важният фактор за тестовата среда е да я репликира възможно най-близо до средата на крайния потребител. Обикновено от крайните потребители не се очаква да извършват каквито и да било конфигурации или инсталации, тъй като цялостен продукт или система им се изпращат. Следователно, от тази дефиниция, дори тестовите екипи не трябва изрично да изпълняват такива конфигурации.
Ако такива конфигурации са необходими само с цел тестване (но ще бъдат конфигурирани за крайни потребители), тогава администраторите трябва да бъдат идентифицирани. Тези администратори, които конфигурират средата за разработка, трябва да бъдат същите хора, които конфигурират тестовата среда.
Ако самият екип за разработки поеме инициативата при инсталирането / конфигурирането, те трябва да помогнат да се направи същото дори в тестовата среда.
Например, ако трябва да тествате приложение (със свързания с него междинен софтуер, който да бъде инсталиран и конфигуриран) в система на различни платформи на ОС и т.н. - най-добрият начин да се справите с това е да използвате виртуализация или облачни среди .
Имате главна система, в която всички приложения и необходимия междинен софтуер са правилно инсталирани и конфигурирани. След това направете тази система главно изображение, като я заснемете и клонирате няколко екземпляра от същото това изображение, така че всеки потребител да се чувства така, сякаш има специална система с тестваното приложение.
Тук по-долу е изобразено изображението на това, което би довел процесът на тестовата среда:
Процес на настройка на тестовата среда
Какво ще научите:
Поддържане на тестова среда
Толкова много казано за подготовката на тестовата среда, макар и предизвикателствата, това несъмнено е повече от основание да се изисква поддръжка или стандартизиране на тестовата среда. Много пъти тестерът губи време за тестване поради проблеми със средата или настройката.
С бързото нарастване на операционните системи и обхвата на хардуера и софтуера, средата трябва да има почти динамичен характер, за да се справи с нуждите. Тестовите екипи могат да гарантират, че доставят висококачествен продукт с добър процес на управление на теста и това би спомогнало за оптимално използване на ресурсите, които са ограничено достъпни.
Основни насоки за осигуряване на ефективно поддържане на тестовата среда
Като тестови среди, повечето пъти съдържат хетерогенни платформи и стекове, представени по-долу са някои ключови насоки за осигуряване на ефективна поддръжка на тестовата среда.
# 1) Ефективно споделяне и разпространение на околната среда:
Както вече споменахме по-рано, едно от ключовите предизвикателства при подготовката на тестовата среда е, че много екипи или хора трябва да използват един и същ набор от ресурси за целите на тестването си. Следователно трябва да се разработи подходящ механизъм за споделяне, който да отговаря на нуждите на всички екипи и хора, без да забавя графиците.
Това може да се постигне чрез поддържане на хранилище или информационна връзка, където всички данни относно:
- който използва околната среда,
- когато средата е свободна за използване и
- как точно се въвежда разпределението на времето за използване на околната среда.
Чрез проактивно определяне къде изискването на ресурсите е голямо спрямо ограничената наличност от тях, голямо количество хаос автоматично се обезсилва.
Вторият аспект на това е да се преразгледат изискванията на екипите за ресурси за всеки тестов цикъл и потърсете кои ресурси не се използват много силно. Анализирайте дали тези конкретни ресурси могат да бъдат заменени с нови ресурси или системи, които може да са необходими.
# 2) Проверки на здравословното състояние:
Някои изисквания на теста се нуждаят от изчерпателна настройка или настройка на теста, която включва сложни стъпки, които са изключително време за консумация. Това е конкретно случаят по време на тестване от край до край което включва два или повече компонента за съвместна работа. Следователно една и съща тестова среда може да се наложи да се използва повторно от множество екипи.
В такива случаи доброто разбиране на цялата среда като цяло, съпоставянето на тестовете, които се извършват от различни екипи, ще създаде разумна картина, която да помогне да се предоставят тези специфични ресурси на съответните екипи.
Имайки предвид горните фактори - може да се извърши основно тестване за здравословно състояние, което ще помогне за ускоряване на тестовете за отделни екипи или незабавно да ги алармира, ако средата трябва да претърпи някои промени или поправки в резултат на тези проверки за здравословно състояние.
# 3) Проследяване на всички прекъсвания:
Както всеки екип, който притежава тестова среда, има своите, една организация има всички възможни тестови среди, поддържани от глобален екип за поддръжка.
Освен това, точно както екипите, притежаващи своята тестова среда, имат свои локални престои в случай на надстройки на фърмуер / софтуер, глобалните екипи също трябва да гарантират, че всички среди спазват най-новите стандарти, които могат да включват прекъсване на електрозахранването или мрежата.
Следователно онези, които поддържат тестовата среда, трябва да следят всякакви подобни прекъсвания и да информират предварително тестовия екип, за да планират съответно работата си.
# 4) Виртуализирайте навсякъде, където е възможно:
Това отново е много уместно, когато трябва да се направи тестване, като се споделя обкръжението и има остра необходимост от оптимизиране на ресурсите. В такива случаи използването на виртуализирана среда като облак за целите на тестването е отговорът.
Когато се използва такава среда, всичко, което тестерите трябва да направят, е да осигурят незабавно и този екземпляр, след като бъде предоставен, ще формира независим Test Bed или Test Environment, съдържащ всички разнообразни ресурси като специална операционна система, база данни, мидълуер, рамки за автоматизация и т.н., необходими за тестването.
След като тестването приключи, тези случаи могат да бъдат унищожени, като по този начин значително намаляват разходите за организация. Облачните среди са особено полезни за тестване на функционална проверка, тестове за автоматизация.
# 5) Регресионно тестване / автоматизация:
как да премахна елемента от масива в java с пример
Както и когато се разработват нови функции и функции, регресионни тестове трябва да се изпълни за тези функции за всеки цикъл на освобождаване. Следователно, въпреки че отзад, тестовите среди за регресионно тестване изглежда работят на една и съща тестова настройка с едни и същи данни, всъщност те непрекъснато развиват всяка версия в съответствие с внедрените функции.
Всеки цикъл на пускане на продукта ще има един или повече кръга на регресионно тестване. По този начин създаването на регресионни тестови среди за всеки цикъл на пускане на продукта и повторното им използване в цикъла определено би показало стабилността на тестовата среда.
Разработването на рамки за автоматизация и използването на автоматизация за регресивни тестове също помага за подобряване на ефективността на тестова среда, тъй като автоматизацията ще приеме, че средата е стабилна и възникналите дефекти са чисто ориентирани към функции / код.
# 6) Общо управление:
Когато има някои проблеми с хардуера или софтуера на тестовата среда, тези проблеми трябва да бъдат насочени към правилните хора, за да се осигурят корекции, ако не могат да бъдат коригирани вътрешно от тези, които поддържат лабораторията.
Например, ако някое тестване води до дефект, който се състои от ограничение във фърмуера или софтуера, който се използва в текущата среда, това обикновено не може да бъде поправено само от отговорните за поддръжката на околната среда.
Следователно потребителят (който в този случай е изпитател) трябва да бъде помолен да повдигне подходящи заявки за услуги. Те трябва да бъдат насочени към съответния доставчик или екип, а координацията трябва да се извършва редовно с тях, за да се гарантира, че следващата версия е фиксирана за конкретния проблем.
Друг аспект на управлението би бил предоставянето на подробни доклади за околната среда на ръководството или заинтересованите страни от време на време, което помага за постигане на прозрачност и формира добра основа за всеки анализ.
Подготовка на тестовите данни
Нека сега разгледаме последната част на Създаване на тестово легло - което включва настройка на тестовите данни . С толкова голям дял, който се казва за тестовата среда, истинската същност на тестовата среда, нейната устойчивост и ефективност могат да бъдат измерени с тестовите данни. По дефиниция тестовите данни са всякакъв вид вход, даден на софтуерния код, който се тества.
Въпреки че отделяме доста време за проектиране на тестови казуси, причината за тестовите данни е важна, защото осигурява пълно покритие на тестовете за всички видове сценарии, като по този начин подобрява качеството. Може да има някои данни от теста, които са необходими за всяко щастливо или положително тестване на пътя.
Някои други данни могат да бъдат проектирани за тестване на грешки или отрицателни резултати, което е много полезно при откриването на това как приложението се представя, когато е поставено в необичайни ситуации.
Тестовите данни обикновено се създават, преди да започне изпълнението на текста, тъй като всяка тестова среда има свой собствен набор от сложности или подготовката на самите данни може да е дълго изтеглен процес. Така че обикновено тестовите източници на данни могат да бъдат вътрешният екип за разработка или крайните потребители, консумиращи кода или функцията.
Например,Тестване на функциите
Да вземем пример, където трябва да извършите функционално тестване или тестване на черна кутия. Тук целта е кодът да трябва функционално да отговаря на посочените изисквания.
Така че в такива случаи - подготовката на тестови случаи обикновено трябва да обхваща следните видове данни:
- Положителни данни за пътя: С документа за случай на употреба за разработка като референтен, това са данните, които обикновено се синхронизират с изпълнението на сценариите с положителен път.
- Данни за отрицателен път: Това са данни, които обикновено се считат за „невалидни“ по отношение на правилната функционална работа на кода.
- Null данни: Предоставяне на данни, когато приложението или кодът очаква тези данни.
- Грешни данни: Определяне на ефективността на кода, когато данните се предоставят в нелегален формат.
- Данни за гранични условия: Тествайте данните, предоставени от индекса или масива, за да определите как се изпълнява кодът.
Данните от теста играят ключова роля при идентифицирането на мястото, където даден продукт или функция могат да се счупят напълно. Винаги имайте практика за анкетиране и валидиране на вида данни, подадени към тестовата среда в различни фази на тестване.
Тестово управление на данни
Когато данните от тестовете играят толкова важна роля за гарантиране на качеството на продукта, разумно е да се каже, че управлението и рационализирането му също играят еднакво важна роля в осигуряването на качеството на всеки продукт, който трябва да бъде предоставен на клиентите.
Необходимост от управление на тестови данни и най-добри практики:
# 1) Голям брой организации имат бързо променящи се бизнес цели за да отговори на нуждите на крайния потребител и следователно е излишно да се споменава, че подходящите данни от теста са от ключово значение за определяне на качеството на теста. Това ще включва настройка на точния вид данни за съответните тестови среди и наблюдение на поведенческите модели.
Както вече беше обсъдено, голяма част от времето на екипа за тестване се изразходва за планирането на данните от теста и свързаните с него задачи. Много пъти тестването на каквато и да е функционалност обикновено е затруднено поради липсата на подходящи тестови данни, което представлява критично предизвикателство по отношение на пълното покритие на тестването.
# две) Също така понякога за определени изисквания за тестване данните от теста трябва постоянно да се обновяват . Това само по себе си причинява много закъснения в цикъла поради непрекъснато преработване, което също увеличава цената на приложението, достигащо до пазара.
В някои други случаи, ако продуктът, който се изпраща, има участие с различни звена на работната група в голяма организация, създаването и обновяването на тестовите данни изисква сложно ниво на координация между тези работни групи.
# 3) Въпреки че тестовите екипи трябва да създадат всички видове данни, които са възможни, за да осигурят адекватно тестване, организациите също трябва да помислят, че това би означавало, че всички различни видове данни трябва да се съхраняват в някакво хранилище.
Въпреки че наличието на хранилище е добра практика, съхраняването на прекомерни и нежелани данни не само значително ще увеличи пространството за съхранение на тези големи парчета данни, но и ще направи все по-предизвикателно извличането на подходящите данни за въпросното тестване, ако няма поддръжка на версията и архивиране на това хранилище.
Повечето организации обикновено са изправени пред тези общи предизвикателства по отношение на данните от тестовете. По този начин трябва да има някои управленски стратегии, които трябва да бъдат въведени, за да се сведе до минимум степента на тези предизвикателства.
Тук по-долу са някои препоръчани методологии за управление на данните от теста и поддържането им в съответствие с нуждите на теста. Следните практики са много основни и общи, които обикновено работят за повечето организации. Начинът, по който се приема, е чисто преценка на съответните организации.
Тествайте стратегии за управление на данни
# 1) Анализ на данни
По принцип тестовите данни се изграждат въз основа на тестовите случаи, които трябва да бъдат изпълнени. Например в екип за тестване на системата, сценарий от край до край на теста трябва да бъде идентифициран въз основа на който са проектирани данните от теста. Това може да включва едно или повече приложения за работа.
Да речем, в продукт, който прави управление на натоварването - той включва приложението на контролера за управление, приложенията на междинния софтуер, приложенията на базата данни, за да функционират в взаимна връзка. Необходимите данни за теста за същото могат да бъдат разпръснати. Трябва да се направи задълбочен анализ на всички различни видове данни, които може да са необходими, за да се осигури ефективно управление.
# 2) Настройка на данни за отразяване на производствената среда
Това обикновено е разширение от предишната стъпка и дава възможност да се разбере какъв ще бъде крайният потребител или производствен сценарий и какви данни се изискват за същото. Използвайте тези данни и ги сравнете с данните, които в момента съществуват в текущата тестова среда. Въз основа на това може да се наложи да бъдат създадени или модифицирани нови данни.
# 3) Определяне на почистването на данните от теста
Въз основа на изискването за тестване в текущия цикъл на освобождаване (където цикълът на освобождаване може да обхваща дълго време), може да се наложи да се променят или създадат данните от теста, както е посочено в горната точка. Тези данни от изпитването, макар и да не са от значение веднага, може да са необходими по-късно. Следователно трябва да се формулира ясен процес на определяне кога данните от теста могат да бъдат почистени.
# 4) Идентифицирайте чувствителни данни и ги защитете
Много пъти, за да тествате правилно приложенията, може да се изисква голямо количество много чувствителни данни. Например, облачна базирана тестова среда е популярен избор, тъй като прави тестване при поискване на различни продукти.
Въпреки това, нещо толкова основно, колкото гарантирането на поверителност на потребителите в облака, е причина за безпокойство. Така че особено в случаите, когато ще трябва да репликираме потребителската среда, трябва да бъде идентифициран механизмът за защита на чувствителни данни. Механизмът се управлява до голяма степен от обема на използваните тестови данни.
# 5) Автоматизация
Точно както приемаме автоматизация за провеждане на повтарящи се тестове или за провеждане на едни и същи тестове с различни видове данни, също така е възможно да автоматизираме създаването на тестови данни. Това би помогнало при излагането на грешки, които могат да възникнат по отношение на данни по време на тестване. Възможен начин да направите това е чрез сравняване на резултатите, получени от набор от данни от последователни тестови пробези. След това автоматизирайте този процес на сравняване.
# 6) Ефективно опресняване на данни с помощта на централно хранилище
Това е най-важната методология и формира сърцевината на прилагането на управлението на данни. Всички точки, споменати по-горе, особено тези по отношение на настройката на данните, почистването на данните са пряко или косвено свързани с това.
Много усилия за създаване на тестови данни могат да бъдат спестени чрез поддържане на централно хранилище, което съдържа всички видове данни, които може да са необходими за различни видове тестване. Как се прави това? В последователни тестови цикли, за нов тест или модифициран тест, проверете дали данните съществуват в хранилището. Ако не съществува, първо подайте тези данни в тестовата среда.
След това това може да бъде насочено към това хранилище за бъдещи справки. Сега за последователни цикли на освобождаване тестовият екип може да използва всички или подгрупа от тези данни. Не е ли очевидно предимството? В зависимост от често използваните набори от данни, остарелите данни могат лесно да бъдат елиминирани и по този начин да се гарантира, че винаги присъстват правилни данни, като по този начин се намаляват разходите за съхранение на тези ненужни данни.
На второ място, можете също така да запазите няколко версии на това хранилище или да го преработите, ако е необходимо. Наличието на различни версии на хранилището може да помогне значително при регресионното тестване, за да се идентифицира каква промяна в данните може да доведе до счупване на кода.
Заключение
Тестовата среда трябва да бъде от първостепенно значение във всеки тестов екип. Всеки цикъл на издаване ще донесе цял куп нови предизвикателства за борба с ненадеждна и непланирана тестова среда.
Като революционна мярка сега много организации въвеждат стратегии като формиране на специални екипи за поддръжка на тестовата среда, които създават определени рамки за ефективно поддържане на тестовите среди, за да осигурят по-плавни цикли на освобождаване.
Подобреното тестване е само очевиден ефект от рационализирането на управлението на тестовите данни. Ключовата същност на това е, че осигурява рентабилно решение за организациите, като същевременно не прави компромис с надеждността на продукта.
Уведомете ни как управлявате тестовата си среда и как подготвяте тестови данни? Искате ли да добавите някакви съвети?
Препоръчително четене
- Топ 14 НАЙ-ДОБРИ инструмента за управление на тестови данни през 2021г
- 10 най-добри инструмента за анализ на данни за перфектно управление на данните (2021 СПИСЪК)
- Урок за управление на тестове: Крайно ръководство за управление на тестове
- Какво са тестовите данни? Изпробвайте техниките за подготовка на данните с пример
- Функция на пула от данни в IBM Rational Quality Manager за управление на тестови данни
- Създаване на Framework Selenium и достъп до тестови данни от Excel - Урок № 21 за Selenium
- Тествайте генерирането на данни с онлайн инструмента GEDIS Studio (част 2)