{"id":37495,"date":"2019-10-31T22:17:57","date_gmt":"2019-10-31T19:17:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya\/"},"modified":"2019-10-31T22:17:57","modified_gmt":"2019-10-31T19:17:57","slug":"unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","title":{"rendered":"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hell\u00f3, Habr!<\/p>\n<p>A nevem Maxim Ponomarenko, \u00e9s a Sportmastern\u00e9l dolgozom fejleszt\u0151k\u00e9nt. 10 \u00e9ves tapasztalatom van az IT szektorban. A karrierem a manu\u00e1lis tesztel\u00e9s ter\u00fclet\u00e9n kezdtem, majd az adatb\u00e1zisok fejleszt\u00e9s\u00e9re v\u00e1ltottam. Az utols\u00f3 4 \u00e9vben, a tesztel\u00e9s \u00e9s fejleszt\u00e9s sor\u00e1n megszerzett tud\u00e1saimat \u00f6sszegy\u0171jtve, az adatb\u00e1zis szint\u0171 tesztel\u00e9s automatiz\u00e1l\u00e1s\u00e1val foglalkozom.<\/p>\n<p>A Sportmaster csapat\u00e1ban t\u00f6bb mint egy \u00e9ve dolgozom, \u00e9s egy nagyobb projekt keret\u00e9ben automatiz\u00e1lt tesztel\u00e9s fejleszt\u00e9s\u00e9n dolgozom. \u00c1prilisban a Sportmaster Lab csapat\u00e1val r\u00e9szt vett\u00fcnk egy konferenci\u00e1n Krasznod\u00e1rban, ahol az el\u0151ad\u00e1som c\u00edme \u201eUnit-tesztek az adatb\u00e1zisokban\u201d volt, \u00e9s most ezt szeretn\u00e9m megosztani veletek. Sok sz\u00f6vegre sz\u00e1m\u00edthattok, ez\u00e9rt \u00fagy d\u00f6nt\u00f6ttem, hogy az el\u0151ad\u00e1somat k\u00e9t bejegyz\u00e9sre bontom. Az els\u0151ben az automatiz\u00e1lt tesztekr\u0151l \u00e9s a tesztel\u00e9sr\u0151l \u00e1ltal\u00e1ban besz\u00e9l\u00fcnk, m\u00edg a m\u00e1sodikban r\u00e9szletesebben meg\u00e1llok a mi unit-tesztel\u00e9si rendszer\u00fcnkn\u00e9l \u00e9s annak alkalmaz\u00e1s\u00e1nak eredm\u00e9nyein\u00e9l.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/464335\/\"><img decoding=\"async\" alt=\"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz\" src=\"\/wp-content\/uploads\/2019\/08\/4e521cc85eb3a3806860a40ab2e4050f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Kezdj\u00fck egy kicsit unalmas elm\u00e9lettel. Mi az automatiz\u00e1lt tesztel\u00e9s? Olyan tesztel\u00e9s, amelyet szoftveres eszk\u00f6z\u00f6kkel v\u00e9geznek, \u00e9s a modern IT vil\u00e1g\u00e1ban egyre gyakrabban alkalmazz\u00e1k szoftverfejleszt\u00e9s sor\u00e1n. Ennek az az oka, hogy a c\u00e9gek n\u00f6vekednek, az inform\u00e1ci\u00f3s rendszereik fejl\u0151dnek, \u00e9s ezzel egy\u00fctt n\u0151 az tesztelend\u0151 funkci\u00f3k sz\u00e1ma is. A manu\u00e1lis tesztel\u00e9s v\u00e9gz\u00e9se egyre k\u00f6lts\u00e9gesebb \u00e9s id\u0151ig\u00e9nyesebb.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDolgoztam egy nagy c\u00e9gn\u00e9l, ahol a kiad\u00e1sok k\u00e9t havonta t\u00f6rt\u00e9ntek. Egy h\u00f3napot t\u00f6lt\u00f6ttek azzal, hogy egy tucat tesztel\u0151 k\u00e9zzel ellen\u0151rizze a funkci\u00f3kat. Az automatiz\u00e1l\u00e1s bevezet\u00e9s\u00e9nek k\u00f6sz\u00f6nhet\u0151en, egy kis fejleszt\u0151csapattal m\u00e1sf\u00e9l \u00e9v alatt a tesztel\u00e9si id\u0151t 2 h\u00e9tre tudtuk cs\u00f6kkenteni. Nemcsak a tesztel\u00e9s sebess\u00e9g\u00e9t n\u00f6velt\u00fck, hanem a min\u0151s\u00e9g\u00e9t is. Az automatikus tesztek rendszeresen futnak, \u00e9s mindig v\u00e9grehajtj\u00e1k az \u00f6sszes be\u00e9p\u00edtett ellen\u0151rz\u00e9st, teh\u00e1t kiz\u00e1rjuk az emberi t\u00e9nyez\u0151t. <\/p>\n<p>A modern IT egyik jellemz\u0151je, hogy a fejleszt\u0151t\u0151l nemcsak a term\u00e9k k\u00f3dol\u00e1s\u00e1t v\u00e1rj\u00e1k el, hanem unit-teszteket is kell \u00edrnia, amelyek ellen\u0151rzik ezt a k\u00f3dot. <\/p>\n<p>De mit tegy\u00fcnk, ha a rendszer\u00fcnk f\u0151leg szerveroldali logik\u00e1ra \u00e9p\u00fcl? Nem l\u00e9tezik egyetemes megold\u00e1s vagy bev\u00e1lt gyakorlat a piacon. \u00c1ltal\u00e1ban a c\u00e9gek saj\u00e1t, egyedi tesztel\u00e9si rendszerek l\u00e9trehoz\u00e1s\u00e1val oldj\u00e1k meg ezt a probl\u00e9m\u00e1t. A mi projekt\u00fcnkben is l\u00e9trehoztunk egy ilyen egyedi automatiz\u00e1lt tesztel\u00e9si rendszert, amelyr\u0151l a besz\u00e1mol\u00f3mban mes\u00e9lek. <\/p>\n<p><img decoding=\"async\" alt=\"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz\" src=\"\/wp-content\/uploads\/2019\/08\/fee34f7214fb2075ee50fa0f4af14a44.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Lojalit\u00e1s tesztel\u00e9se<\/h2>\n<p>\nEl\u0151sz\u00f6r is besz\u00e9lj\u00fcnk arr\u00f3l a projektr\u0151l, ahol az automatiz\u00e1lt tesztel\u00e9si rendszert bevezett\u00fck. A mi projekt\u00fcnk a Sportmaster h\u0171s\u00e9gprogramja (mellesleg m\u00e1r \u00edrtunk r\u00f3la a <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/453252\/\">ezen posztban le\u00edrt eredm\u00e9nyeket, vagy t\u00e1maszkodhattok<\/a><\/noindex>).<\/p>\n<p>Ha a c\u00e9ge el\u00e9g nagy, a h\u0171s\u00e9gprogramja h\u00e1rom standard jellemz\u0151vel fog rendelkezni: <\/p>\n<ul>\n<li>A rendszer intenz\u00edv terhel\u00e9s alatt fog m\u0171k\u00f6dni<\/li>\n<li>A rendszer bonyolult sz\u00e1m\u00edt\u00e1si folyamatokat fog tartalmazni<\/li>\n<li>A rendszer folyamatosan fejleszt\u00e9s alatt lesz. <\/li>\n<\/ul>\n<p>\nRendben, n\u00e9zz\u00fck sorj\u00e1ban\u2026 \u00d6sszess\u00e9g\u00e9ben, ha figyelembe vessz\u00fck a Sportmaster \u00f6sszes m\u00e1rk\u00e1j\u00e1t, Oroszorsz\u00e1g, Ukrajna, K\u00edna, Kazahszt\u00e1n \u00e9s Feh\u00e9roroszorsz\u00e1g ter\u00fclet\u00e9n t\u00f6bb mint 1000 boltunk van. Ezekben a boltokban naponta k\u00f6r\u00fclbel\u00fcl 300 000 v\u00e1s\u00e1rl\u00e1s t\u00f6rt\u00e9nik. Teh\u00e1t m\u00e1sodpercenk\u00e9nt 3-4 blokk \u00e9rkezik a rendszer\u00fcnkbe. Term\u00e9szetesen a h\u0171s\u00e9gprogramunk er\u0151sen terhelt. Mivel akt\u00edvan haszn\u00e1lj\u00e1k, a legmagasabb min\u0151s\u00e9gi norm\u00e1kat kell biztos\u00edtanunk, hiszen b\u00e1rmilyen programhib\u00e1nak komoly p\u00e9nz\u00fcgyi, h\u00edrn\u00e9vbeli \u00e9s egy\u00e9b vesztes\u00e9gei vannak. <\/p>\n<p>A Sportmastern\u00e9l egy id\u0151ben t\u00f6bb mint sz\u00e1z k\u00fcl\u00f6nb\u00f6z\u0151 akci\u00f3 is zajlik. Az akci\u00f3k nagyon v\u00e1ltozatosak: vannak term\u00e9kekhez k\u00f6t\u00f6ttek, vannak a h\u00e9t napj\u00e1hoz kapcsol\u00f3d\u00f3k, vannak konkr\u00e9t boltokra vonatkoz\u00f3ak, akci\u00f3k a blokk \u00f6sszeg\u00e9re, \u00e9s a mennyis\u00e9gre vonatkoz\u00f3 akci\u00f3k. Igaz\u00e1n komoly. Az \u00fcgyfeleknek vannak b\u00f3nuszaik, \u00e9s prom\u00f3ci\u00f3s k\u00f3djaik, amelyeket a v\u00e1s\u00e1rl\u00e1sok sor\u00e1n haszn\u00e1lnak. Mindez azt eredm\u00e9nyezi, hogy b\u00e1rmely rendel\u00e9s kisz\u00e1m\u00edt\u00e1sa rendk\u00edv\u00fcl nem trivi\u00e1lis feladat. <\/p>\n<p>A rendel\u00e9sfeldolgoz\u00e1st megval\u00f3s\u00edt\u00f3 algoritmus igaz\u00e1n borzalmas \u00e9s bonyolult. B\u00e1rminem\u0171 m\u00f3dos\u00edt\u00e1s az algoritmusban meglehet\u0151sen kock\u00e1zatos dolog. \u00dagy t\u0171nik, hogy a legk\u00fcls\u0151leg jelent\u00e9ktelen v\u00e1ltoztat\u00e1sok is elegend\u0151ek ahhoz, hogy meglehet\u0151sen kisz\u00e1m\u00edthatatlan hat\u00e1sokhoz vezessenek. Pedig ezek a bonyolult sz\u00e1m\u00edt\u00e1si folyamatok, k\u00fcl\u00f6n\u00f6sen azok, amelyek kritikus funkci\u00f3t val\u00f3s\u00edtanak meg \u2013 a legjobb jel\u00f6ltek az automatiz\u00e1l\u00e1sra. K\u00e9zi ellen\u0151rz\u00e9se t\u00f6bb tucat azonos t\u00edpus\u00fa esetnek igaz\u00e1n id\u0151ig\u00e9nyes. Mivel a folyamat bel\u00e9p\u00e9si pontja v\u00e1ltozatlan, egyszeri le\u00edr\u00e1s ut\u00e1n viszonylag gyorsan el\u0151\u00e1ll\u00edthatjuk az automatikus teszteket, \u00e9s biztosak lehet\u00fcnk a funkci\u00f3 m\u0171k\u00f6d\u00e9s\u00e9ben.<\/p>\n<p>Mivel a rendszer\u00fcnket akt\u00edvan haszn\u00e1lj\u00e1k, a v\u00e1llalkoz\u00e1s \u00faj dolgokat v\u00e1r t\u0151letek, l\u00e9p\u00e9st tartva az id\u0151vel \u00e9s \u00fcgyf\u00e9lk\u00f6zpont\u00fanak lenni. A h\u0171s\u00e9gprogramunkban a kiad\u00e1sok k\u00e9t\u00e9vente k\u00f6vetkeznek be. Teh\u00e1t k\u00e9t\u00e9vente k\u00f6telez\u0151 teljes regresszi\u00f3t v\u00e9gezni az eg\u00e9sz rendszeren. Ugyanakkor, term\u00e9szetesen, mint b\u00e1rmely modern IT ter\u00fcleten, a fejleszt\u00e9s nem ker\u00fcl k\u00f6zvetlen\u00fcl a fejleszt\u0151t\u0151l a termel\u00e9sbe. A fejleszt\u0151 kont\u00faron kezd\u0151dik, majd fokozatosan \u00e1thalad a tesztk\u00f6rnyezeten, a kiad\u00e1si, az elfogad\u00f3 k\u00f6rnyezete, \u00e9s csak ezut\u00e1n ker\u00fcl a termel\u00e9sbe. Legal\u00e1bb a teszt- \u00e9s kiad\u00f3k\u00f6rnyezeteken k\u00f6telez\u0151 teljes regresszi\u00f3t v\u00e9gezni az eg\u00e9sz rendszeren. <\/p>\n<p>A fent le\u00edrt tulajdons\u00e1gok gyakorlatilag b\u00e1rmely h\u0171s\u00e9gprogramra \u00e9rv\u00e9nyesek. Besz\u00e9lj\u00fcnk a projekt\u00fcnk saj\u00e1toss\u00e1gair\u00f3l.<\/p>\n<p>Technol\u00f3giai szempontb\u00f3l a h\u0171s\u00e9gprogramunk logik\u00e1j\u00e1nak 90%-a szerveroldali, \u00e9s Oracle-on val\u00f3s\u00edtott\u00e1k meg. Van egy Delphi alap\u00fa kliens, amely az APM-adminisztr\u00e1tor funkci\u00f3t l\u00e1tja el. K\u00fcls\u0151 alkalmaz\u00e1sok sz\u00e1m\u00e1ra webszolg\u00e1ltat\u00e1sokat is biztos\u00edtunk (p\u00e9ld\u00e1ul weboldal). Ez\u00e9rt nagyon logikus, hogy ha automatiz\u00e1lt tesztel\u00e9si rendszert akarunk ki\u00e9p\u00edteni, akkor ezt Oracle-on kell tenn\u00fcnk.<\/p>\n<p>A Sportmaster-n\u00e9l m\u00e1r t\u00f6bb mint 7 \u00e9ve m\u0171k\u00f6dik a h\u0171s\u00e9gprogram, amelyet egyedi fejleszt\u0151k hoztak l\u00e9tre\u2026 Az elm\u00falt 7 \u00e9v sor\u00e1n a projekt\u00fcnkh\u00f6z \u00e1tlagosan 3-4 fejleszt\u0151 csatlakozott. Azonban az utols\u00f3 \u00e9vben a csapatunk jelent\u0151sen megn\u00f6vekedett, \u00e9s most m\u00e1r 10 ember dolgozik a projekten. Ez azt jelenti, hogy olyan emberek \u00e9rkeznek a projekthez, akik nincsenek tiszt\u00e1ban a tipikus feladatokkal, folyamatokkal \u00e9s architekt\u00far\u00e1val. Itt megn\u00f6vekedett a kock\u00e1zata annak, hogy hib\u00e1kat fogunk elszalasztani.<\/p>\n<p>A projektre jellemz\u0151, hogy nincsenek dedik\u00e1lt tesztel\u0151k mint \u00e1lland\u00f3 munkav\u00e1llal\u00f3k. A tesztel\u00e9s term\u00e9szetesen zajlik, de ezt az analitikusok v\u00e9gzik, a t\u00f6bbi f\u0151 feladatuk mellett: a business \u00fcgyfelekkel val\u00f3 kommunik\u00e1ci\u00f3, a felhaszn\u00e1l\u00f3i interakci\u00f3k, a rendszer k\u00f6vetelm\u00e9nyeinek kidolgoz\u00e1sa stb. Annak ellen\u00e9re, hogy a tesztel\u00e9s rendk\u00edv\u00fcl alapos (k\u00fcl\u00f6n\u00f6sen \u00e9rdemes megeml\u00edteni, mivel az analitikusok k\u00f6z\u00fcl valakinek szembe j\u00f6het ez a jelent\u00e9s), senki sem vitathatja a specializ\u00e1ci\u00f3 \u00e9s a f\u00f3kusz jelent\u0151s\u00e9g\u00e9t egy adott feladatra.<\/p>\n<p>Figyelembe v\u00e9ve az eddigieket, a kibocs\u00e1tott term\u00e9k min\u0151s\u00e9g\u00e9nek jav\u00edt\u00e1sa \u00e9s a fejleszt\u00e9si id\u0151 cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a tesztel\u00e9s automatiz\u00e1l\u00e1s\u00e1nak \u00f6tlete nagyon logikusnak t\u0171nik. A h\u0171s\u00e9gprogram k\u00fcl\u00f6nb\u00f6z\u0151 szakaszaiban k\u00fcl\u00f6nb\u00f6z\u0151 fejleszt\u0151k tettek er\u0151fesz\u00edt\u00e9seket, hogy a k\u00f3djukat egys\u00e9g tesztekkel lefedj\u00e9k. Ez egy meglehet\u0151sen sz\u00e9tsz\u00f3rt folyamat volt, ahol mindenki a saj\u00e1t architekt\u00far\u00e1j\u00e1t \u00e9s m\u00f3dszereit haszn\u00e1lta. Az egys\u00e9gtesztek k\u00f6z\u00f6s v\u00e9gs\u0151 eredm\u00e9nye az volt: a tesztek kidolgozva, egy ideig haszn\u00e1lva, f\u00e1jlverzi\u00f3s t\u00e1rol\u00f3ba helyezve, de egy id\u0151 ut\u00e1n nem futottak m\u00e1r \u00e9s feled\u00e9sbe mer\u00fcltek. Ez els\u0151sorban amiatt t\u00f6rt\u00e9nt, hogy a tesztek ink\u00e1bb a konkr\u00e9t v\u00e9grehajt\u00f3ra voltak szabva, nem pedig a projektre.<\/p>\n<h2>Seg\u00edts\u00e9g\u00fcnkre van az utPLSQL<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz\" src=\"\/wp-content\/uploads\/2019\/08\/f21dfcb085aace687566dc51cb9b5613.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTud valamit Stephen Feuersteinr\u0151l? <\/p>\n<p>\u0150 egy okos ember, aki karrierje jelent\u0151s r\u00e9sz\u00e9t az Oracle-lel \u00e9s a PL\/SQL-lel val\u00f3 munk\u00e1ra szentelte, \u00e9s emellett sz\u00e1mos m\u0171vet \u00edrt err\u0151l a t\u00e9m\u00e1r\u00f3l. Az egyik legismertebb k\u00f6nyve \u00edgy nevezik: \u201eOracle PL\/SQL. Szakembereknek\u201d. Stephen nev\u00e9hez f\u0171z\u0151dik az utPLSQL megold\u00e1s kidolgoz\u00e1sa, vagyis az Unit Testing framework for Oracle PL\/SQL. Az utPLSQL megold\u00e1st 2016-ban hozt\u00e1k l\u00e9tre, de tov\u00e1bbra is akt\u00edvan dolgoznak rajta, \u00e9s \u00faj verzi\u00f3kat bocs\u00e1tanak ki. A besz\u00e1mol\u00f3 id\u0151pontj\u00e1ban az utols\u00f3 verzi\u00f3 2019. m\u00e1rcius 24-i d\u00e1tumban ker\u00fclt kiad\u00e1sra.<br \/>\nDe mi is ez val\u00f3j\u00e1ban? Ez egy k\u00fcl\u00f6n projekt, amely ny\u00edlt forr\u00e1sk\u00f3d\u00fa. N\u00e9h\u00e1ny megab\u00e1jtot foglal el, bele\u00e9rtve p\u00e9ld\u00e1kat \u00e9s dokument\u00e1ci\u00f3t. Fizikailag egy k\u00fcl\u00f6n s\u00e9mak\u00e9nt jelenik meg az ORACLE adatb\u00e1zisban, amely csomagok \u00e9s t\u00e1bl\u00e1k halmaz\u00e1t tartalmazza az egys\u00e9gtesztel\u00e9s megszervez\u00e9s\u00e9re. A telep\u00edt\u00e9s n\u00e9h\u00e1ny m\u00e1sodpercet vesz ig\u00e9nybe. Az utPLSQL kiemelked\u0151 jellemz\u0151je a haszn\u00e1lat\u00e1nak egyszer\u0171s\u00e9ge. <br \/>\nGlob\u00e1lisan az utPLSQL egy mechanizmus az egys\u00e9gtesztek futtat\u00e1s\u00e1ra, ahol az egys\u00e9gteszt alatt a szok\u00e1sos Oracle csomagproced\u00far\u00e1k \u00e9rtend\u0151k, amelyek szervez\u00e9s\u00e9re bizonyos szab\u00e1lyok vonatkoznak. Az utPLSQL-ben nemcsak a tesztel\u00e9si ind\u00edt\u00e1sokat t\u00e1rolj\u00e1k, hanem van egy bels\u0151 jelent\u00e9si rendszer is.<\/p>\n<p>N\u00e9zz\u00fck meg p\u00e9ld\u00e1ul, hogyan n\u00e9z ki egy egys\u00e9gteszt k\u00f3dja, amelyet ezen m\u00f3dszer szerint val\u00f3s\u00edtottak meg.<\/p>\n<p><img decoding=\"async\" alt=\"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz\" src=\"\/wp-content\/uploads\/2019\/08\/6fc8cc2d84c6c32a8b5269ebad1d2381.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz el\u0151t\u00e9rben a csomag tipikus specifik\u00e1ci\u00f3j\u00e1nak k\u00f3dja l\u00e1that\u00f3 egys\u00e9gtesztekkel. Mik az elv\u00edtett k\u00f6vetelm\u00e9nyek? A csomagnak \u201eutp_\u201d el\u0151taggal kell rendelkeznie. Ugyanazzal az el\u0151taggal kell rendelkeznie minden tesztproced\u00far\u00e1nak is. A csomagban k\u00f6telez\u0151en k\u00e9t standard elj\u00e1r\u00e1snak kell szerepelnie: \u201eutp_setup\u201d \u00e9s \u201eutp_teardown\u201d. Az els\u0151 elj\u00e1r\u00e1s minden egys\u00e9gteszt \u00fajraind\u00edt\u00e1sakor ker\u00fcl megh\u00edv\u00e1sra, a m\u00e1sodik - a futtat\u00e1s ut\u00e1n.<\/p>\n<p>Az \u201eutp_setup\u201d \u00e1ltal\u00e1ban felk\u00e9sz\u00edti a rendszert az egys\u00e9gteszt ind\u00edt\u00e1s\u00e1ra, p\u00e9ld\u00e1ul tesztadatokat hoz l\u00e9tre. Az \u201eutp_teardown\u201d viszont mindent vissza\u00e1ll\u00edt az alapbe\u00e1ll\u00edt\u00e1sokra, \u00e9s t\u00f6rli a futtat\u00e1s eredm\u00e9nyeit.<\/p>\n<p>Ez egy p\u00e9lda a legegyszer\u0171bb unit-tesztre, amely a kliens \u00e1ltal megadott telefonsz\u00e1m normaliz\u00e1l\u00e1s\u00e1t ellen\u0151rzi, hogy az megfeleljen a h\u0171s\u00e9gprogramunk standard form\u00e1tum\u00e1nak. Nincsenek k\u00f6telez\u0151 standardok arra vonatkoz\u00f3an, hogyan kell unit-teszteket \u00edrni. \u00c1ltal\u00e1ban egy tesztelt rendszer egyik met\u00f3dus\u00e1t h\u00edvjuk meg, \u00e9s az e met\u00f3dus \u00e1ltal visszaadott eredm\u00e9nyt \u00f6sszehasonl\u00edtjuk egy referencia\u00e9rt\u00e9kkel. Fontos, hogy az \u00f6sszehasonl\u00edt\u00e1s referenciak\u00e9nt haszn\u00e1lt eredm\u00e9ny \u00e9s a kapott eredm\u00e9ny k\u00f6z\u00f6tt standard utPLSQL-m\u00f3dszerekkel t\u00f6rt\u00e9njen.<\/p>\n<p>A unit-teszt sor\u00e1n b\u00e1rmennyi ellen\u0151rz\u00e9s v\u00e9gezhet\u0151. Ahogy a p\u00e9ld\u00e1b\u00f3l is l\u00e1tszik, n\u00e9gy egym\u00e1st k\u00f6vet\u0151 h\u00edv\u00e1st v\u00e9gz\u00fcnk a telefon sz\u00e1m normaliz\u00e1l\u00f3 tesztelt met\u00f3dus\u00e1n, \u00e9s minden h\u00edv\u00e1s ut\u00e1n \u00e9rt\u00e9kelj\u00fck az eredm\u00e9nyt. Unit-teszt k\u00e9sz\u00edt\u00e9sekor figyelembe kell venni, hogy l\u00e9teznek olyan ellen\u0151rz\u00e9sek, amelyek nem befoly\u00e1solj\u00e1k a rendszert, \u00e9s bizonyosak ut\u00e1n vissza kell \u00e1llni a rendszer kezdeti \u00e1llapot\u00e1ba. <br \/>\nP\u00e9ld\u00e1ul a bemutatott unit-tesztben egyszer\u0171en form\u00e1zzuk a bel\u00e9p\u0151 telefonsz\u00e1mot, ami nem befoly\u00e1solja a h\u0171s\u00e9gprogramot. <\/p>\n<p>De ha \u00faj kliens l\u00e9trehoz\u00e1s\u00e1ra vonatkoz\u00f3 unit-teszteket \u00edrunk, akkor minden ellen\u0151rz\u00e9s ut\u00e1n \u00faj kliens ker\u00fcl a rendszerbe, ami befoly\u00e1solhatja a tesztek k\u00e9s\u0151bbi futtat\u00e1s\u00e1t.<\/p>\n<p><img decoding=\"async\" alt=\"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz\" src=\"\/wp-content\/uploads\/2019\/08\/7d649b354776c15d8a70a0d9a05363b4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cdgy futnak a unit-tesztek. K\u00e9tf\u00e9le futtat\u00e1s elfogadhat\u00f3: az \u00f6sszes unit-teszt ind\u00edt\u00e1sa egy adott csomagb\u00f3l, vagy egy adott unit-teszt v\u00e9grehajt\u00e1sa egy adott csomagban.<\/p>\n<p><img decoding=\"async\" alt=\"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz\" src=\"\/wp-content\/uploads\/2019\/08\/46628b60eb0fe0d20df822ddca914947.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz \u00edgy n\u00e9z ki a bels\u0151 jelent\u00e9si rendszer p\u00e9ld\u00e1j\u00e1ban. Az utPLSQL unit-tesztjeinek fut\u00e1sa ut\u00e1n egy kis jelent\u00e9s k\u00e9sz\u00fcl. Ebben l\u00e1thatjuk az egyes ellen\u0151rz\u00e9sek eredm\u00e9ny\u00e9t \u00e9s a unit-teszt \u00f6sszes\u00edtett eredm\u00e9ny\u00e9t. <\/p>\n<h2>6 automatiz\u00e1lt teszt szab\u00e1ly<\/h2>\n<p>\nMiel\u0151tt \u00faj automatiz\u00e1lt tesztel\u00e9si rendszert kezdt\u00fcnk volna el l\u00e9trehozni a h\u0171s\u00e9gprogram sz\u00e1m\u00e1ra, k\u00f6z\u00f6sen a menedzsmenttel meghat\u00e1roztuk az elveket, amelyeknek a j\u00f6v\u0151beli automatiz\u00e1lt tesztjeinknek meg kell felelni\u00fck.<\/p>\n<p><img decoding=\"async\" alt=\"Unit tesztek az adatb\u00e1zisokban \u2014 \u00edgy v\u00e9gezz\u00fck ezt a Sportmesters\u00e9g\u00e9ben, els\u0151 r\u00e9sz\" src=\"\/wp-content\/uploads\/2019\/08\/84be59663203abb373e7074b9a6cd4e4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Az automatiz\u00e1lt teszteknek hat\u00e9konyaknak kell lenni\u00fck, \u00e9s val\u00f3ban hasznot kell hozniuk. Kiv\u00e1l\u00f3 fejleszt\u0151ink vannak, akikr\u0151l mindenk\u00e9ppen besz\u00e9lni kell, hiszen k\u00f6z\u00fcl\u00fck biztosan t\u00f6bben l\u00e1tni fogj\u00e1k ezt az el\u0151ad\u00e1st, \u00e9s csod\u00e1latos k\u00f3dot \u00edrnak. De m\u00e9g a csod\u00e1latos k\u00f3djuk sem t\u00f6k\u00e9letes, \u00e9s hib\u00e1kat tartalmazott, tartalmaz \u00e9s tartalmazni fog. Az automatiz\u00e1lt teszteknek ezeket a hib\u00e1kat kell felfedezni\u00fck. Ha ez nem \u00edgy van, akkor vagy rossz automatiz\u00e1lt teszteket \u00edrunk, vagy egy olyan holt pontban vagyunk, amely alapvet\u0151en nem fejl\u0151dik. Mindk\u00e9t esetben valamit rosszul csin\u00e1lunk, \u00e9s a megk\u00f6zel\u00edt\u00e9s\u00fcnk \u00e9rtelmetlen.<\/li>\n<li>Az automatiz\u00e1lt teszteket haszn\u00e1lni kell. Haszontalan rengeteg id\u0151t \u00e9s energi\u00e1t pazarolni egy szoftverterm\u00e9k meg\u00edr\u00e1s\u00e1ra, \u00f6sszerakni a repozit\u00f3rium\u00e1t, majd elfelejteni. A teszteket futtatni kell, \u00e9s min\u00e9l rendszeresebben.<\/li>\n<li>Az automatiz\u00e1lt teszteknek stabilan kell m\u0171k\u00f6dni\u00fck. F\u00fcggetlen\u00fcl az id\u0151pontt\u00f3l, a tesztel\u00e9si k\u00f6rnyezett\u0151l \u00e9s a rendszer egy\u00e9b be\u00e1ll\u00edt\u00e1sait\u00f3l, a tesztfut\u00e1soknak mindig ugyanazt az eredm\u00e9nyt kell adniuk. Ez \u00e1ltal\u00e1ban \u00fagy biztos\u00edtott, hogy az automatiz\u00e1lt tesztek speci\u00e1lis tesztadatokkal dolgoznak, r\u00f6gz\u00edtett rendszerbe\u00e1ll\u00edt\u00e1sokkal.<\/li>\n<li>Az automatiz\u00e1lt teszteknek a projekted sz\u00e1m\u00e1ra elfogadhat\u00f3 sebess\u00e9ggel kell m\u0171k\u00f6dni\u00fck. Ez az id\u0151 minden rendszer eset\u00e9ben egyedi. Valaki dolgozhat eg\u00e9sz nap, m\u00edg m\u00e1soknak m\u00e1sodpercekbe kell belef\u00e9rni\u00fck. Milyen sebess\u00e9gi norm\u00e1kat \u00e9rt\u00fcnk el a projekt\u00fcnkben, azt k\u00e9s\u0151bb elmondom.<\/li>\n<li>Az automatiz\u00e1lt tesztek fejleszt\u00e9s\u00e9nek rugalmasnak kell lennie. Nem aj\u00e1nlott lemondani b\u00e1rmilyen funkci\u00f3ellen\u0151rz\u00e9sr\u0151l csak az\u00e9rt, mert m\u00e9g soha nem csin\u00e1ltuk, vagy valamilyen m\u00e1s meggy\u0151z\u0151d\u00e9s miatt. Az utPLSQL nem helyez el korl\u00e1toz\u00e1sokat a fejleszt\u00e9sre, m\u00edg az Oracle alapvet\u0151en lehet\u0151v\u00e9 teszi a legk\u00fcl\u00f6nb\u00f6z\u0151bb dolgok megval\u00f3s\u00edt\u00e1s\u00e1t. A legt\u00f6bb feladatnak van megold\u00e1sa, csak id\u0151 k\u00e9rd\u00e9se \u00e9s a r\u00e1ford\u00edtott er\u0151fesz\u00edt\u00e9sek\u00e9.<\/li>\n<li>Bevethet\u0151s\u00e9g. T\u00f6bb tesztk\u00f6rnyezet\u00fcnk van, ahol sz\u00fcks\u00e9g van tesztek futtat\u00e1s\u00e1ra. Minden egyes tesztk\u00f6rnyezetben b\u00e1rmikor friss\u00edthet\u0151 az adatment\u00e9s. A projektet automatiz\u00e1lt tesztekkel \u00fagy kell ir\u00e1ny\u00edtani, hogy legyen lehet\u0151s\u00e9g a teljes vagy r\u00e9szleges telep\u00edt\u00e9s f\u00e1jdalommentes v\u00e9grehajt\u00e1s\u00e1ra.<\/li>\n<\/ol>\n<p>A m\u00e1sodik bejegyz\u00e9sben n\u00e9h\u00e1ny nap m\u00falva elmondom, mit tett\u00fcnk \u00e9s milyen eredm\u00e9nyeket \u00e9rt\u00fcnk el.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/464335\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 4 \u0433\u043e\u0434\u0430, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u0438\u0440\u0443\u044f \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0421\u0423\u0411\u0414. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u044f \u0441\u043e\u0441\u0442\u043e\u044e \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28136,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37495","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Unit-\u0442\u0435\u0441\u0442\u044b \u0432 \u0421\u0423\u0411\u0414 \u2014 \u043a\u0430\u043a \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435, \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:17:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:17:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Unit tesztek az adatb\u00e1zis-kezel\u0151 rendszerekben \u2014 \u00edgy csin\u00e1ljuk ezt a Sportmastern\u00e9l, els\u0151 r\u00e9sz | ProHoster","description":"Hell\u00f3, Habr! Maxim Ponomarenko vagyok, \u00e9s fejleszt\u0151k\u00e9nt dolgozom a Sportmastern\u00e9l. 10 \u00e9ves tapasztalattal rendelkezem az IT ter\u00fclet\u00e9n. Karrieremet manu\u00e1lis tesztel\u00e9ssel kezdtem, majd \u00e1tt\u00e9rtem az adatb\u00e1zisok fejleszt\u00e9s\u00e9re.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Unit-\u0442\u0435\u0441\u0442\u044b \u0432 \u0421\u0423\u0411\u0414 \u2014 \u043a\u0430\u043a \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435, \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:17:57+00:00","article:modified_time":"2019-10-31T19:17:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37495","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:25:27","updated":"2026-01-23 18:06:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=37495"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37495\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/28136"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=37495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=37495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=37495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}