Balik sa eskuylahan: kung giunsa pagbansay ang mga manwal nga tigsulay sa pag-atubang sa mga awtomatiko nga pagsulay

Upat sa lima ka mga aplikante sa QA gusto nga makat-on unsaon pagtrabaho sa mga automated nga pagsulay. Dili tanan nga mga kompanya ang makatuman sa ingon nga mga tinguha sa mga manual tester sa oras sa pagtrabaho. Naghimo si Wrike og usa ka eskwelahan sa automation alang sa mga empleyado ug nakaamgo niini nga tinguha alang sa kadaghanan. Miapil ko niini nga eskwelahan sa tukma isip usa ka estudyante sa QA.

Nakakat-on ko unsaon pagtrabaho uban sa Selenium ug karon independente nga nagsuporta sa usa ka piho nga gidaghanon sa mga autotest nga halos walay tabang sa gawas. Ug, base sa mga resulta sa among hiniusang kasinatian ug sa akong personal nga mga konklusyon, sulayan nako nga makuha ang mismong pormula alang sa labing sulundon nga eskuylahan sa automation.

Ang kasinatian ni Wrike sa pag-organisar sa usa ka eskwelahan

Sa diha nga ang panginahanglan alang sa usa ka automation nga eskwelahan nahimong tin-aw, ang organisasyon niini nahulog sa Stas Davydov, ang teknikal nga nanguna sa automation. Kinsa pa gawas niya ang makapatin-aw kung nganong nahimo nila kini nga inisyatiba, kung nakab-ot ba nila ang mga sangputanan ug kung nagbasol ba sila sa oras nga gigugol? Atong ihatag kaniya ang salog:

— Sa 2016, misulat kami og bag-ong balangkas alang sa mga autotest ug gihimo kini aron sayon ​​ang pagsulat sa mga pagsulay: mitungha ang mga normal nga lakang, ang istruktura nahimong mas masabtan. Naghimo kami og usa ka ideya: kinahanglan namon nga iapil ang tanan nga gusto magsulat og bag-ong mga pagsulay, ug aron mas dali masabtan, naghimo kami usa ka serye sa mga lektura. Kami sa tingub naghimo sa usa ka plano sa mga hilisgutan, ang matag usa sa umaabot nga mga magtutudlo nagkuha usa alang sa ilang kaugalingon ug nag-andam usa ka taho bahin niini.

— Unsang mga kalisdanan ang nasinati sa mga estudyante?

— Sa panguna, siyempre, arkitektura. Adunay daghang mga pangutana bahin sa istruktura sa among mga pagsulay. Sa feedback, daghan ang gisulat bahin niini nga hilisgutan ug kinahanglan namon nga maghimo dugang nga mga lektyur aron ipasabut sa mas detalyado.

— Nagbayad ba ang eskuylahan?

- Oo, sigurado. Salamat kaniya, daghang mga tawo ang nalambigit sa pagsulat sa mga pagsulay, ug, sa kasagaran, sa ospital, ang tanan nagsugod nga mas masabtan kung unsa ang mga autotest, kung giunsa kini gisulat ug kung giunsa kini gilunsad. Ang karga sa mga inhenyero sa automation mikunhod usab: nakadawat kami karon sa daghang mga higayon nga mas gamay nga mga hangyo alang sa tabang sa pag-analisar sa mga pagsulay, tungod kay ang mga tigsulay ug mga developer nagsugod na sa pagsagubang niini sa halos tanan nga mga sitwasyon. Aw, adunay daghang mga internal nga bentaha alang sa departamento: nakakuha kami kasinatian sa mga presentasyon ug mga lektyur, salamat nga ang pipila nga mga inhenyero sa automation nakahimo na sa paghimo sa mga presentasyon sa mga komperensya, ug nakadawat usab usa ka kusgan nga hugpong sa mga video ug mga presentasyon alang sa mga bag-ong nangabot.

Sa akong kaugalingon nga ngalan, akong idugang nga ang komunikasyon tali sa among mga departamento gipasimple sa usa ka labi ka kataw-anan nga lebel. Pananglitan, karon halos dili nako kinahanglan nga maghunahuna kung unsang mga kaso ug kung unsang lebel sa atomicity ang awtomatiko. Ingon usa ka sangputanan, ang tanan nga mga interesado nga partido hingpit nga nag-atiman sa sakup sa pagsulay, nga kanunay nga nagtubo. Walay usa nga nangayo sa imposible gikan sa uban.

Sa kinatibuk-an, ang epekto sa trabaho sa mga team siguradong positibo. Tingali ang mga kauban nga nagbasa niini nga artikulo naghunahuna usab bahin sa pagbuhat sa usa ka butang nga parehas? Unya ang tambag mahimong yano: takus kini kung ang mga awtomatiko nga pagsulay usa ka prayoridad alang kanimo. Sunod, maghisgot kami bahin sa usa ka labi ka komplikado nga pangutana: kung giunsa ang pag-organisar sa tanan niini nga husto kutob sa mahimo, aron ang mga gasto sa tanan nga mga partido gamay ra ug ang output labing kataas.

Mga tip sa pag-organisar

Mapuslanon ang eskuylahan, apan, ingon nga giangkon ni Stas, adunay pipila ka mga kalisud, tungod niini kinahanglan nga maghikay sa dugang nga mga lektyur. Ug kini ingon usa ka bag-o nga estudyante nga nagtandi sa akong kaugalingon-sa-pagkaignorante ug sa akong kaugalingon-karon nga akong giporma ang mga mosunud nga mga lakang aron mahimo, sa akong opinyon, ang sulundon nga paagi aron matudloan ang mga pagsulay aron masabtan ang mga awtomatiko nga pagsulay.

Lakang 0. Paghimo og diksyonaryo

Siyempre, kini nga lakang gikinahanglan dili lamang alang sa QA. Bisan pa, gusto nako nga ipatin-aw kini: ang automation codebase kinahanglan ibutang sa usa ka mabasa nga porma. Mga pinulongan sa programming - labing menos mga sinultian, ug gikan niini makasugod ka sa imong dive.

Balik sa eskuylahan: kung giunsa pagbansay ang mga manwal nga tigsulay sa pag-atubang sa mga awtomatiko nga pagsulay

Ania ang usa ka screenshot sa usa ka taskview nga adunay mga ngalan sa mga elemento. Hunahunaa nga imong gisulayan ang taskview ingon usa ka itom nga kahon ug wala pa nimo makita ang Selenium sa imong kinabuhi. Unsa ang gibuhat niini nga code?

Balik sa eskuylahan: kung giunsa pagbansay ang mga manwal nga tigsulay sa pag-atubang sa mga awtomatiko nga pagsulay

(Spoiler - ang buluhaton gitangtang pinaagi sa pagpahulay alang sa admin, ug unya atong makita nga adunay usa ka rekord niini sa sapa.)

Kini nga lakang nga nag-inusara nagdala sa QAA ug QA nga mga sinultian nga magkasuod. Mas sayon ​​alang sa mga tim sa automation ang pagpatin-aw sa mga resulta sa usa ka run; ang mga manual tester kinahanglan nga mogasto og gamay nga paningkamot sa paghimo og mga kaso: mahimo silang dili kaayo detalyado. Bisan pa, ang tanan nagsinabtanay sa usag usa. Nadawat namo ang mga kadaugan bisan sa wala pa magsugod ang aktwal nga pagbansay.

Lakang 1. Balika ang mga hugpong sa mga pulong

Atong ipadayon ang parallel sa pinulongan. Kung makat-on kita sa pagsulti isip mga bata, wala kita magsugod sa etimolohiya ug semantiko. Gisubli namo ang "mama", "pagpalit og dulaan", apan dili dayon moadto sa Proto-Indo-European nga mga gamot niini nga mga pulong. Mao nga ania dinhi: wala’y kapuslanan ang pag-dive sa kinahiladman sa mga teknikal nga bahin sa mga autotest nga wala pagsulay sa pagsulat sa usa ka butang nga molihok.
Kini paminawon nga usa ka gamay nga counterintuitive, apan kini molihok.

Sa una nga leksyon, angayan nga hatagan og basehan kung giunsa pagsulat ang mga autotest nga direkta. Nagtabang kami sa pag-set up sa development environment (sa akong kaso, Intellij IDEA), ipasabut ang minimum nga mga lagda sa pinulongan nga gikinahanglan sa pagsulat og laing pamaagi sa usa ka kasamtangan nga klase gamit ang kasamtangan nga mga lakang. Nagsulat kami og usa o duha ka mga pagsulay uban kanila ug gihatagan sila og homework, nga akong i-format sama niini: usa ka sanga nga nagsanga gikan sa agalon, apan daghang mga pagsulay ang gikuha gikan niini. Ang ilang mga paghulagway na lang ang nagpabilin. Gihangyo namon ang mga tester nga ibalik kini nga mga pagsulay (dili pinaagi sa show diff, siyempre).

Ingon nga resulta, ang usa nga naminaw ug nagbuhat sa tanan makahimo sa:

  1. pagkat-on sa pagtrabaho uban sa development environment interface: paghimo sa mga sanga, hotkeys, commits ug pagduso;
  2. master ang mga sukaranan sa istruktura sa pinulongan ug mga klase: asa ibutang ang mga injection ug asa i-import, nganong gikinahanglan ang mga anotasyon, ug unsa nga matang sa mga simbolo ang makita didto, gawas sa mga lakang;
  3. sabta ang kalainan tali sa aksyon, paghulat ug pagsusi, asa gamiton kung unsa;
  4. matikdi ang kalainan tali sa mga autotest ug mga manual nga pagsusi: sa mga autotest mahimo nimong ibira ang usa o lain nga handler imbes nga maghimo mga aksyon pinaagi sa interface. Pananglitan, ipadala ang usa ka komento direkta sa backend imbes nga magbukas sa usa ka taskview, pagpili sa input, pag-type sa teksto ug pag-klik sa Send button;
  5. paghimo og mga pangutana nga matubag sa sunod nga lakang.

Ang kataposang punto importante kaayo. Kini nga mga tubag dali nga mahatag sa sayo pa, apan kini usa ka importante nga baruganan sa pagtudlo nga ang mga tubag nga walay giporma nga mga pangutana dili mahinumduman ug dili gamiton kon sa katapusan gikinahanglan.

Maayo unta kon niining panahona ang usa ka automation engineer gikan sa QA team mohatag kaniya og buluhaton sa pagsulat og duha ka mga pagsulay sa gubat ug tugotan siya nga mo-subcommit sa iyang branch.

Unsa ang dili ihatag:

  1. mas lawom nga kahibalo sa pag-andar sa development environment ug sa programming language mismo, nga gikinahanglan lamang kung nagtrabaho sa mga sanga nga independente. Dili kini mahinumduman, kinahanglan nimo nga ipasabut kini kaduha o katulo, apan gipabilhan namon ang oras sa mga inhenyero sa automation, di ba? Mga pananglitan: pagsulbad sa mga panagbangi, pagdugang sa mga file sa git, paghimo sa mga klase gikan sa scratch, pagtrabaho uban sa mga dependency;
  2. tanan nga may kalabutan sa xpath. Seryoso. Kinahanglan nimo nga hisgutan kini nga gilain, kausa ug labi ka gipunting.

Lakang 2. Pagsusi pag-ayo sa gramatika

Atong hinumdoman ang taskview screenshot gikan sa lakang #0. Kami adunay usa ka lakang nga gitawag checkCommentWithTextExists. Nasabtan na sa among tester kung unsa kini nga lakang ug mahimo namon tan-awon ang sulod sa lakang ug madugta kini gamay.

Ug sa sulod aduna kitay mosunod:

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

Asa ang onCommentBlock

onCommonStreamPanel().commentBlock(userName);

Karon nakakat-on na kami sa pag-ingon nga dili "pagpalit usa ka dulaan," apan "pagpalit usa ka dulaan gikan sa tindahan sa Detsky Mir, nga nahimutang sa asul nga kabinet sa ikatulo nga estante gikan sa taas." Kinahanglang ipatin-aw nga atong gipunting ang usa ka elemento nga sunud-sunod, gikan sa dagkong mga elemento (stream -> block nga adunay mga komento gikan sa usa ka tawo -> kana nga bahin niini nga block diin ang gitakda nga teksto naglingkod).

Dili, dili pa panahon nga maghisgot bahin sa xpath. Isulti lang sa makadiyot nga kining tanan nga mga panudlo gihulagway nila ug ang kabilin moagi kanila. Apan kinahanglan naton nga hisgutan ang tanan nga kini nga mga matchers ug waiters; kini nga piho nga may kalabutan sa kini nga lakang ug kinahanglan aron masabtan kung unsa ang nanghitabo. Apan ayaw pag-overload: ang imong estudyante mahimong magtuon sa mas komplikado nga mga pahayag sa iyang kaugalingon sa ulahi. Lagmit, kinahanglan, maghulatUntil, gipakita ();, anaa ();, dili (); igo na.

Ang homework klaro: usa ka sanga diin ang mga sulud sa daghang mga lakang nga gikinahanglan alang sa usa ka piho nga gidaghanon sa mga pagsulay gikuha na. Pasagdi nga ibalik kini sa mga tester ug himoa nga berde pag-usab ang dagan.

Dugang pa, kung ang tim sa pagsulay adunay dili lamang mga bag-ong bahin sa trabaho niini, apan usab pipila ka mga pag-ayo sa bug, mahimo nimo siyang hangyoon nga isulat dayon ang mga pagsulay alang niini nga mga bug ug buhian kini. Lagmit, ang tanan nga mga elemento gihulagway na; pipila ra nga mga lakang ang mahimong kulang. Kini ang hingpit nga pag-ehersisyo.

Lakang 3. Bug-os nga pagpaunlod

Ingon nga kompleto kutob sa mahimo alang sa usa ka tester nga magpadayon sa paghimo sa iyang direkta nga mga katungdanan. Sa katapusan, kinahanglan natong hisgutan ang xpath.

Una, ipatin-aw nato nga kining tanan saCommentBlock ug komento gihulagway nila.

Balik sa eskuylahan: kung giunsa pagbansay ang mga manwal nga tigsulay sa pag-atubang sa mga awtomatiko nga pagsulay

Total:

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

Ang han-ay sa istorya importante kaayo. Una, gikuha namo ang bisan unsang kasamtangan nga xpath ug gipakita kung giunsa ang tab nga mga elemento adunay usa ug usa ra ka elemento. Sunod, maghisgot kami bahin sa istruktura: kung kinahanglan nimo gamiton ang WebElement, ug kung kinahanglan nimo nga maghimo usa ka lahi nga file alang sa usa ka bag-ong elemento. Makatugot kini kanimo nga mas masabtan ang kabilin.

Kinahanglang klaro nga ipahayag nga ang usa ka elemento mao ang tibuok nga taskview, kini naglangkob sa usa ka bata nga elemento - ang tibuok nga sapa, nga adunay usa ka bata nga elemento - usa ka bulag nga komentaryo, ug uban pa. Ang mga elemento sa bata anaa sa sulod nga mga elemento sa ginikanan sa panid ug sa istruktura sa autotest framework.

Niini nga punto, ang mga mamiminaw kinahanglan nga lig-on nga nakasabut kung giunsa sila napanunod ug kung unsa ang mahimo nga isulod pagkahuman sa tulbok sa onCommentBlock. Niini nga punto, among gipasabut ang tanan nga mga operator: /, //, ., [] ug uban pa. Gidugang namo ang kahibalo bahin sa paggamit sa load @class ug uban pang kinahanglanon nga mga butang.

Balik sa eskuylahan: kung giunsa pagbansay ang mga manwal nga tigsulay sa pag-atubang sa mga awtomatiko nga pagsulay

Kinahanglang masabtan sa mga estudyante kung unsaon paghubad ang xpath niining paagiha. Sa pagkonsolida - husto kana, homework. Gitangtang namon ang mga paghubit sa mga elemento, ibalik nila ang trabaho sa mga pagsulay.

Nganong kini nga partikular nga dalan?

Kinahanglan nga dili naton sobra ang gibug-aton sa usa ka tawo nga adunay komplikado nga kahibalo, apan kinahanglan naton ipasabut ang tanan sa usa ka higayon, ug kini usa ka lisud nga problema. Kini nga dalan magtugot kanato sa paghimo una sa mga tigpaminaw nga mangutana ug dili makasabut sa usa ka butang ug tubagon kini sa sunod nga higayon. Kung maghisgot ka bahin sa tibuuk nga arkitektura, unya sa oras nga pag-analisar ang hilisgutan sa mga lakang o xpath, ang labing hinungdanon nga mga bahin niini makalimtan na tungod sa ilang pagkadili masabtan.

Bisan pa, ang pipila sa inyo mahimo’g makapaambit sa imong kasinatian kung giunsa ang proseso mahimo’g ma-optimize pa. Malipay ako nga magbasa sa parehas nga mga sugyot sa mga komento!

Source: www.habr.com

Idugang sa usa ka comment