Якая тыповая структура аўтаматызаванага тэсту?

Як нам структураваць нашы аўтаматызаваныя тэсты? Што яшчэ больш важна, як мы можам зрабіць нашы аўтаматызаваныя тэсты дэтэрмінаванымі і паўтаральнымі?

Кожны аўтаматызаваны тэст павінен правяраць адно ці некалькі прадпісаных умоў. Гэта значыць, ствараючы аўтаматызаваны тэст, мы павінны ведаць, якім павінен быць вынік дзеяння, каб мы маглі паставіць адпаведныя ацэнкі.

Аўтаматызаваныя тэсты павінны запускацца аўтаматычна без умяшання ўручную. Больш за тое, вынікі аўтаматызаваных тэстаў павінны быць дэтэрмінаванымі і надзейнымі.


Але як мы можам гэтага дасягнуць?

Адказ досыць просты, але той, якім часта грэбуюць, а значыць, выкарыстанне кантраляваныя дадзеныя .




Кампаненты тэсту

Для запуску тэсту нам патрэбныя тры кампаненты:

  • Ужыванне
  • Сцэнар
  • Дадзеныя

Адзін кампанент, які моцна ўплывае на паводзіны прыкладання, - гэта дадзеныя ; Дадзеныя, якія патрэбны дадатку, і дадзеныя, якія яму падаюцца.

Каб праілюстраваць гэта, падумайце аб дадатку для электроннай камерцыі, дзе карыстальнікі могуць шукаць прадукты.

Старонка вынікаў пошуку будзе выглядаць і паводзіць сябе па-іншаму, калі ў базе дадзеных ёсць прадукты, чым калі база дадзеных пустая.


Відавочна, што нашы аўтаматызаваныя тэсты павінны ўлічваць розныя станы прыкладанняў і правяраць розныя паводзіны.

Калі мы шукаем тавар і бачым спісы, як мы можам праверыць вынікі? Як мы можам быць абсалютна ўпэўнены, што гэтыя дадзеныя чакаюць нас? Больш за тое, як мы можам зрабіць гэты працэс паўторным, каб пры кожным новым разгортванні мы атрымлівалі аднолькавыя вынікі?



Як зрабіць аўтаматызаваныя тэсты дэтэрмінаванымі

Навошта нам патрэбныя кантраляваныя дадзеныя ў аўтаматызаваных тэстах?

Я прыводжу вам прыклад дрэннай практыкі, якую я часта бачу ў аўтаматызаваных тэстах:


Вельмі дрэнны тэст заключаецца ў тым, што мы шукаем тавар і сцвярджаем, што мы паказваем некаторыя спісы. Мы не збіраемся глыбока правяраць - пакуль на старонцы адлюстроўваюцца прадукты, значыць, у нас усё добра. Шалёнае!

На жаль, некаторыя пытанні застануцца без адказу:

  • Як мы ведаем, што дадзеныя паступаюць з правільнай базы дадзеных? Мы падключаны да фальшывага сервера з выдзеленымі дадзенымі?
  • Адкуль мы ведаем, што вернутыя дадзеныя - гэта тое, што мы шукалі?
  • Як мы даведаемся, што правільная колькасць элементаў адлюстроўваецца на старонцы вынікаў пошуку?

Мы павінны мець магчымасць сцвярджаць аб выніках выпрабаванняў. Сцвярджэнні павінны мець сэнс і быць сапраўднымі праверкамі.

Калі мы не кантралюем дадзеныя, мы не маем магчымасці даведацца і праверыць вышэйпаказаныя пытанні.


Каб зрабіць аўтаматызаваныя тэсты дэтэрмінаванымі, нам трэба самастойна загрузіць дадзеныя. Аўтаматызаваныя тэсты павінны ўводзіць вядомыя дадзеныя і пацвярджаць вынікі гэтых дадзеных.

Калі мы проста абапіраемся на дадзеныя, якія выкарыстоўваюцца іншымі працэсамі і якія могуць быць зменены, нашы аўтаматызаваныя тэсты не будуць надзейнымі. Мы не маем магчымасці вызначыць вынікі.



Як зрабіць аўтаматызаваныя тэсты паўторнымі

Аўтаматызаваныя тэсты павінны запускацца аўтаматычна. Па-сапраўднаму аўтаматызавана, тэсты запускаюцца такім працэсам, як канвеер зборкі CI / CD, які кантралюе выкананне і справаздачнасць тэстаў.

Зноў жа, тое, як мы працуем з дадзенымі, уплывае на надзейнасць і паўтаральнасць аўтаматызаваных тэстаў.


Тыповая структура для добрага аўтаматызаванага тэсту

  • 1 - Налада [Стварэнне вядомых дадзеных]
  • 2 - Тэст [Выкарыстоўваць створаныя дадзеныя]
  • 3 - Teardown [Знішчыць створаныя дадзеныя]

Стварэнне тэставых дадзеных

Чаму нам трэба кожны раз наладжваць дадзеныя тэсту? Хіба гэта не будзе тармазіць нас кожны раз, калі мы запускаем тэсты? Ці не можам мы проста наладзіць яго адзін раз, а потым паўторна выкарыстоўваць тыя самыя дадзеныя?

Ну, як мы ведаем, што адбываецца з дадзенымі пасля заканчэння тэсту? Можа, тэст іншага чалавека змяніў альбо выдаліў дадзеныя?

Як мы можам быць упэўнены, што ў наступны раз, калі мы захочам правесці той жа тэст, дадзеныя ўжо ёсць для выкарыстання?

Знішчыць дадзеныя тэсту

Чаму нам трэба знішчаць створаныя дадзеныя тэсту?

Паколькі пры наступным выкананні пры спробе стварыць тэставыя дадзеныя паўстануць дублікаты дадзеных альбо, што яшчэ горш, у тэстах могуць быць выкінуты выключэнні.

Калі мы не выдалім тэставыя дадзеныя і працягнем узнаўляць выпадковыя тэставыя дадзеныя, добра, звышурочна, у базе дадзеных будзе шмат тэставых дадзеных, і ў нас будуць іншыя праблемы.

Таму не забудзьцеся стварыць і знішчыць дадзеныя тэсту.



Рэзюмэ

Для таго, каб атрымаць максімальную карысць ад нашых намаганняў па аўтаматызацыі выпрабаванняў, нам трэба распрацаваць добрыя тэсты з добрай структурай.

Адзін са спосабаў зрабіць тэсты прадказальнымі і дэтэрмінаванымі - гэта кантраляваць дадзеныя тэстаў. Замест таго, каб спадзявацца на існуючыя дадзеныя для тэставання, аўтаматызаваныя тэсты павінны ствараць дадзеныя як папярэдні этап да запуску сцэнарыяў.

Пасеяўшы ўласныя дадзеныя тэстаў, мы можам праверыць розныя ўмовы. Больш за тое, мы можам быць упэўнены, што заявы assert правяраюць наяўнасць дадзеных. Гэта зробіць тэсты дэтэрмінаванымі.

Каб неаднаразова запускаць аўтаматызаваныя тэставыя сцэнарыі, нам неабходна пераканацца, што нашы тэсты ствараюць тэставыя дадзеныя перад запускам сцэнарыяў. Гэта робіцца ў раздзеле наладкі аўтаматызаванага тэсту.

Затым сцэнарыі будуць выкарыстоўваць дадзеныя, створаныя на этапе налады.

Нарэшце, калі мы скончым з тэставаннем, у нас павінен быць спосаб ачысткі тэставага асяроддзя, выдаліўшы ўсе створаныя дадзеныя. Гэта робіцца ў раздзеле аўтаматызаванага тэсціравання.

Звязаныя: