Retounen lekòl: kijan pou fòme tester manyèl pou fè fas ak tès otomatik yo

Kat sou senk aplikan QA vle aprann kijan pou travay avèk tès otomatik yo. Se pa tout konpayi yo ka akonpli dezi sa yo nan tèsteur manyèl pandan lè travay. Wrike te fè yon lekòl automatisation pou anplwaye yo ak reyalize dezi sa a pou anpil moun. Mwen te patisipe nan lekòl sa a jisteman kòm yon elèv QA.

Mwen te aprann kijan pou travay ak Selenyòm e kounye a, poukont mwen sipòte yon sèten kantite ototès ak nòmalman pa gen èd deyò. Epi, baze sou rezilta yo nan eksperyans jwenti nou yo ak konklizyon pèsonèl mwen, mwen pral eseye derive fòmil la anpil pou lekòl la ki pi ideyal nan automatisation.

Eksperyans Wrike nan òganize yon lekòl

Lè nesesite pou yon lekòl automatisation te vin klè, òganizasyon li te tonbe nan men Stas Davydov, dirijan teknik nan automatisation. Kiyès lòt moun ke li kapab eksplike poukisa yo te vini ak inisyativ sa a, si yo te reyalize rezilta ak si yo regrèt tan yo te pase a? Ann ba li pawòl la:

— An 2016, nou te ekri yon nouvo kad pou ototès e nou te fè li pou li te vin fasil pou ekri tès yo: etap nòmal yo te parèt, estrikti a te vin pi plis konprann. Nou te vini ak yon lide: nou bezwen enplike tout moun ki vle ekri nouvo tès yo, epi pou rann li pi fasil pou konprann, nou kreye yon seri konferans. Nou kolektivman te vini ak yon plan nan sijè, chak nan pwochen konferansye yo te pran youn pou tèt yo epi prepare yon rapò sou li.

— Ki difikilte elèv yo te genyen?

— Sitou, nan kou, achitekti. Te gen anpil kesyon sou estrikti tès nou yo. Nan fidbak, anpil te ekri sou sijè sa a epi nou te oblije fè konferans adisyonèl pou eksplike an plis detay.

— Èske lekòl la peye?

- Wi, definitivman. Gras a li, anpil moun te patisipe nan tès ekri, e, an mwayèn, nan lopital la, tout moun te kòmanse konprann pi byen ki sa ototès yo ye, ki jan yo ekri ak ki jan yo lanse. Chaj la sou enjenyè automatisation tou diminye: kounye a nou resevwa anpil fwa mwens demann pou èd ak analize tès yo, depi tèsteur ak devlopè yo te kòmanse fè fas ak sa a tèt yo nan prèske tout sitiyasyon. Oke, gen plizyè avantaj entèn pou depatman an: nou te genyen eksperyans nan prezantasyon ak konferans, gras a ki kèk enjenyè automatisation te deja jere fè prezantasyon nan konferans, epi tou li te resevwa yon seri pwisan nan videyo ak prezantasyon pou fèk vini abòde.

Pou pwòp non mwen, mwen pral ajoute ke kominikasyon ant depatman nou yo te senplifye nan yon nivo kareman ridikil fasil. Pou egzanp, kounye a mwen pratikman pa bezwen reflechi sou ki ka ak nan ki nivo atomite otomatize. Kòm yon rezilta, tout pati ki enterese yo ap pran tout swen nan pwoteksyon tès la, ki toujou ap grandi. Pa gen moun ki mande enposib nan men lòt moun.

An jeneral, enpak sou travay ekip yo definitivman pozitif. Petèt kòlèg li atik sa a ap panse tou pou yo fè yon bagay ki sanble? Lè sa a, konsèy la pral senp: li vo li si tès otomatik yo se yon priyorite pou ou. Apre sa, nou pral pale sou yon kesyon ki pi konplèks: ki jan yo òganize tout bagay sa yo kòm kòrèkteman ke posib, se konsa ke depans yo nan tout pati yo minim ak pwodiksyon an se maksimòm.

Konsèy Òganize

Lekòl la te itil, men, jan Stas te admèt, te gen kèk difikilte, paske li te nesesè pou fè aranjman pou plis konferans. Epi li te kòm yon etidyan resan konpare tèt mwen-nan-inyorans ak tèt mwen-kounye a ke mwen fòmile etap sa yo pou kreye, nan opinyon mwen, fason ideyal la yo anseye tèsteur yo konprann tès otomatik yo.

Etap 0. Kreye yon diksyonè

Natirèlman, etap sa a nesesè pa sèlman pou QA. Sepandan, mwen vle fè li klè: kodbaz automatisation a dwe kenbe nan yon fòm lizib. Lang pwogramasyon - pa pi piti lang, ak sa a ou ka kòmanse plonje ou.

Retounen lekòl: kijan pou fòme tester manyèl pou fè fas ak tès otomatik yo

Isit la se yon Ekran nan yon vizyon travay ak non yo nan eleman yo. Ann imajine ke w ap teste taskview kòm yon bwat nwa epi ou pa janm wè Selenyòm nan lavi ou. Kisa kòd sa a fè?

Retounen lekòl: kijan pou fòme tester manyèl pou fè fas ak tès otomatik yo

(Spoiler - travay la efase atravè rès sou non administratè a, ak Lè sa a, nou wè ke gen yon dosye sou sa a nan kouran an.)

Etap sa a pou kont li pote lang QAA ak QA pi pre ansanm. Li pi fasil pou ekip automatisation yo eksplike rezilta yo nan yon kouri; tèsteur manyèl yo dwe depanse mwens efò sou kreye ka yo: yo ka fè yo mwens detaye. Poutan, tout moun konprann youn lòt. Nou te resevwa sa ki genyen yo menm anvan fòmasyon aktyèl la te kòmanse.

Etap 1. Repete fraz yo

Ann kontinye paralèl ak lang. Lè nou aprann pale antanke timoun, nou pa kòmanse ak etimoloji ak semantik. Nou repete "manman", "achte yon jwèt", men pa imedyatman antre nan rasin Proto-Indo-Ewopeyen an nan mo sa yo. Se konsa, li isit la: pa gen okenn pwen nan plonje nan pwofondè yo nan karakteristik yo ki teknik nan autotests san yo pa eseye ekri yon bagay ki travay.
Li son yon ti kras counterintuitive, men li travay.

Nan premye leson an, li vo bay yon baz sou kòman yo ekri ototès dirèkteman. Nou ede mete anviwònman devlopman an (nan ka mwen an, Intellij IDEA), eksplike règ yo lang minimòm ki nesesè yo ekri yon lòt metòd nan yon klas ki deja egziste lè l sèvi avèk etap ki egziste deja yo. Nou ekri youn oubyen de tès ak yo epi ba yo devwa lakay mwen, mwen ta fòma tankou sa a: yon branch branch soti nan mèt la, men yo te retire plizyè tès nan li. Se sèlman deskripsyon yo ki rete. Nou mande tèsteur yo retabli tès sa yo (pa atravè show diff, nan kou).

Kòm yon rezilta, moun ki te koute ak fè tout bagay pral kapab:

  1. aprann travay ak koòdone anviwònman devlopman: kreye branch, hotkeys, komèt ak pouse;
  2. metrize Basics yo nan estrikti nan lang ak klas yo: ki kote yo mete piki ak ki kote yo enpòte, poukisa yo bezwen anotasyon, ak ki kalite senbòl yo jwenn la, san konte etap;
  3. konprann diferans ki genyen ant aksyon, tann ak tcheke, ki kote yo sèvi ak ki sa;
  4. remake diferans ki genyen ant ototès ak chèk manyèl: nan ototès ou ka rale youn oswa yon lòt moun kap okipe olye pou yo fè aksyon atravè koòdone a. Pou egzanp, voye yon kòmantè dirèkteman nan backend la olye pou yo louvri yon vizyon travay, chwazi opinyon an, tape tèks epi klike sou bouton an Voye;
  5. fòmile kesyon ki pral reponn nan pwochen etap la.

Dènye pwen an trè enpòtan. Repons sa yo ka fasil pou bay alavans, men se yon prensip ansèyman enpòtan ke repons san kesyon fòmile yo pa sonje epi yo pa itilize lè finalman nesesè.

Li ta ideyal si nan moman sa a yon enjenyè automatisation ki soti nan ekip QA a te bay li yon travay ak ekri yon koup nan tès nan batay ak pèmèt li soumèt nan branch li a.

Kisa pou pa bay:

  1. plis konesans apwofondi nan fonksyonalite anviwònman devlopman ak langaj pwogram nan tèt li, ki pral sèlman bezwen lè w ap travay ak branch poukont li. Li pa pral sonje, ou pral oblije eksplike li de fwa oswa twa fwa, men nou apresye tan an nan enjenyè automatisation, dwa? Egzanp: rezoud konfli, ajoute fichye nan git, kreye klas nan grafouyen, travay ak depandans;
  2. tout bagay ki gen rapò ak xpath. Seryezman. Ou bezwen pale sou li separeman, yon fwa ak anpil konsantre.

Etap 2. Pran yon gade pi pre nan gramè a

Ann sonje ekran tachview ki soti nan etap #0. Nou gen yon etap ki rele checkCommentWithTextExists. Tester nou an deja konprann kisa etap sa a fè epi nou ka gade andedan etap la epi dekonpoze li yon ti kras.

Ak andedan nou gen bagay sa yo:

onCommentBlock(userName).comment(expectedText).should(displayed());

Ki kote onCommentBlock ye

onCommonStreamPanel().commentBlock(userName);

Koulye a, nou aprann di pa "achte yon jwèt," men "achte yon jwèt nan magazen an Detsky Mir, ki sitiye nan kabinè a ble sou etajè a twazyèm soti nan tèt la." Li nesesè eksplike ke nou lonje dwèt sou yon eleman sekans, ki soti nan pi gwo eleman (kouran -> blòk ak kòmantè soti nan yon sèten moun -> pati sa a nan blòk sa a kote tèks la espesifye chita).

Non, li poko tan pou nou pale de xpath. Jis mansyone yon ti tan ke tout enstriksyon sa yo yo dekri pa yo ak eritaj ale nan yo. Men, nou bezwen pale sou tout matchers ak gason sa yo; yo gen rapò espesyalman ak etap sa a epi yo nesesè yo konprann sa k ap pase. Men, pa twò chaje: elèv ou a ka etidye deklarasyon ki pi konplèks poukont li pita. Gen plis chans, ta dwe, waitUntil, parèt ();, egziste ();, pa (); ta dwe sifi.

Devwa a se evidan: yon branch nan ki sa ki nan plizyè etap ki nesesè pou yon sèten kantite tès yo te retire. Kite tèsteur yo retabli yo epi fè kous la vin vèt ankò.

Anplis de sa, si ekip tès la gen pa sèlman nouvo karakteristik nan travay li, men tou, kèk korije ensèk, ou ka mande l 'toujou ekri tès pou pinèz sa yo epi lage yo. Gen plis chans, tout eleman yo te deja dekri; sèlman yon koup de etap ka manke. Sa a pral antrennman pafè a.

Etap 3. Imèsyon konplè

Otank posib pou yon tèsteur ki pral kontinye fè devwa dirèk li yo. Finalman, nou bezwen pale sou xpath.

Premyèman, se pou nou fè li klè ke tout bagay sa yo souCommentBlock ak kòmantè yo dekri pa yo.

Retounen lekòl: kijan pou fòme tester manyèl pou fè fas ak tès otomatik yo

Total:

"//div[contains(@class, ‘stream-panel’)]//a[contains(@class,'author') and text()='{{ userName }}’]//div[contains(@class,'change-wrapper') and contains(.,'{{ text }}’)]"

Lòd istwa a trè enpòtan. Premyèman, nou pran nenpòt xpath ki egziste deja epi montre kijan tab eleman yo gen yon sèl ak yon sèl eleman. Apre sa, nou pral pale sou estrikti a: lè ou bezwen sèvi ak WebElement, ak lè ou bezwen kreye yon dosye separe pou yon nouvo eleman. Sa ap pèmèt ou pi byen konprann eritaj.

Li dwe klèman deklare ke yon sèl eleman se travay la tout antye, li gen yon eleman timoun - tout kouran an, ki gen yon eleman timoun - yon kòmantè separe, elatriye. Eleman timoun yo andedan eleman paran yo tou de sou paj la ak nan estrikti kad ototest la.

Nan pwen sa a, odyans lan ta dwe byen fèm konprann ki jan yo eritye ak sa ki ka antre apre pwen an nan onCommentBlock. Nan pwen sa a, nou eksplike tout operatè yo: /, //, ., [] ak sou sa. Nou ajoute konesans sou itilizasyon nan chaj la @class ak lòt bagay ki nesesè yo.

Retounen lekòl: kijan pou fòme tester manyèl pou fè fas ak tès otomatik yo

Elèv yo ta dwe konprann kijan pou tradui xpath fason sa a. Pou konsolide - sa a dwat, devwa. Nou efase deskripsyon eleman yo, kite yo retabli travay tès yo.

Poukisa chemen an patikilye sa a?

Nou pa ta dwe twò chaje yon moun ki gen konesans konplèks, men nou dwe eksplike tout bagay nan yon fwa, e sa a se yon dilèm difisil. Chemen sa a pral pèmèt nou fè moun k ap koute yo poze kesyon epi yo pa konprann yon bagay epi reponn yo nan moman kap vini an. Si ou pale sou achitekti a tout antye, Lè sa a, lè sijè a nan etap oswa xpath analize, pati ki pi enpòtan nan li yo pral deja bliye akòz enkonpreyansiblite yo.

Sepandan, kèk nan nou pwal pwobableman kapab pataje eksperyans ou sou jan pwosesis la kapab être optimisé plis toujou. Mwen pral kontan li sijesyon menm jan an nan kòmantè yo!

Sous: www.habr.com

Add nouvo kòmantè