0:00:15také směrem je hradilech jak už bylo řečeno a vedle dokumentační k internetu včetně bál
0:00:21některé a začínal jsem jako technika dajte a dělal to fotbalu skoro šest let
0:00:28no a při práci na dokumentaci
0:00:30co jste někdo dokumentaci tady
0:00:32někdy
0:00:34vazby si na tak já si teoreticky
0:00:38že ten tak si tak často zjistíte které to bylo to takhle
0:00:43říka někomu zase něco s nesklapneš
0:00:47ještě než začne
0:00:48nebo máte kdo zkušenosti stejný testu
0:00:51nevyšel jsem tam o tom mluví tak lidi si přestane tam je těmi testy dal
0:00:55software a jsem se s tím dokumentaci to spoustu lidí nenapadne vůbec
0:01:00no a protože já jsem trošku bych se je programování tak a při ceně ne
0:01:05zase sem si uvědomil že spoustu věcí
0:01:07vlastně dělám furt dokola a co mě
0:01:11jak protože jsem právě trošku programátor tak jsem velice rychle zjistil že mě to strašně
0:01:16baví jel některé věci pořád dokola a pokud je něco co můžu automatizovat
0:01:21tak to udělá
0:01:23a za čase taťkovi přemýšlet na to jestli by se nedal některé ty úkoly které
0:01:27musí dělat pokaždé když chci něco vydatnou věřící je všechno v pořádku a je to
0:01:32mám kompletně že se na ni zapomněl
0:01:34jestli by to nešlo nějakým způsobem se inspirovat u jeli testů pro software
0:01:40a
0:01:42přesto na dokumentaci
0:01:47a nabízí se otázka proč traced to dokumentaci
0:01:52předně šetří to čas jako jsem řekl protože upřímně kdykoli chcete něco vydat
0:01:57potřebujete ověřit že se na nic nezapomněli že s trochou balíčky věci které se slíbili
0:02:01zdokumentuje té
0:02:03že všechno funguje že se nic nerozbilo
0:02:06a tak šetřit a hromadu času
0:02:09a
0:02:10vzhledem k tomu kolik času to bere to otestovat samozřejmě vždycky na nic zapomenete
0:02:15takže automatické testy možný jak kdy mnohem větší přesnost vaši dokumentace
0:02:23a samozřejmě pokud jste nějakou chybu upravili a víte že něco ste dokumentaci mít nemá
0:02:29nebo naopak být musí
0:02:30tak můžete zajistit že to někdo jiný to že dnešní době na produkt argumentaci málo
0:02:34vybrat jeden jediný člověk ale většinou celý tým
0:02:38že se něco tam nevrátí a ne objeví znova
0:02:43nabízet r otázka co můžu co může být testován mimo tom že dostane dokumentaci
0:02:47a
0:02:48když a značí na cuda přemýšlet tak je nezmění tak se na několik věcí která
0:02:52mě strašně trápili
0:02:54jedné strany trápila jsme při provede dokumentaci to kompletně nový release
0:02:58a tu dokumentaci sme částečně jakoby při byla by to co sme měli před předchozí
0:03:04release aktualizovány
0:03:06a mě tak napadla taková jednoduchá věc
0:03:11když máme o dokumentaci zamkne to zbla provede tam kreslil sem
0:03:16a napadlo mě taková věc
0:03:19jak jsem si zajistím že všechny ty věci které dokumentuje ne všechny ty balíčky které
0:03:24tam dokumentuje jsou skutečně pořádného sedum nezměnili se ne přejmenovali se
0:03:30protože sice jsme měli takové věci jako pí nevím jestli ne žádné sme developer jsem
0:03:36na to podívali řekl jestli ta všechno vpořádku a tak
0:03:39ale
0:03:41pojal jsem podezření že přece no to asi nebo já jsem
0:03:45začal přemýšlet jak s tou s jakým způsobem to detekovat a zjistil jsem že on
0:03:49vlastně všechna data mám víme kde máme repozitáře
0:03:53a jak jsme že
0:03:56a vlastně všechna tahle data potřebuje číst ale balíčky
0:04:00tak se podívá na databázi balíčků zjistil jsem že poměrně jednoduchá a za časem satinujeme
0:04:05česky skriptík které jsi si z dokumentace vytáhl seznam balíčků
0:04:10jakým způsobem tomu se dostanu za chvilinku
0:04:12a začal jsem to pro nás databázi je velice rychle se zjistil že se moje
0:04:16podezření bylo oprávněné protože ten těm balíčku které jsme tam měli a vtom tam už
0:04:21dávno nejsou bylo poměrně velké množství
0:04:26a tohle na tohle přijít ručně je poměrně náročné
0:04:30když někam je že jsem přišel na to že pro mě bylo velice s na
0:04:32nestíhám seznam balíčků dokumentace totiž v mnoha ohledech je podobná software
0:04:38a má jednu obrovskou výhodu
0:04:40pokud to napíšete zrovna v nějakém o nějakém
0:04:46v tom že ta česky word processor
0:04:49textovém editoru procesoru prostě
0:04:52tak většinou používat nějaký jazyk který a může nějakým způsobem ty ten text pamatovat
0:04:59a my už aby dobu nebo malák
0:05:02ostatní lásky rok to umožňuje
0:05:05a
0:05:06velká část a tak ste anotovaná člověk nemůže tam neříkáte to nemám tlustý tohle má
0:05:10být tím na fontem ale říkáte co to je takovej příkaz tohle balíček todle
0:05:16tohle obrázek
0:05:18takže dostat toho dostat to informaci které co sou co to mám za balíčky je
0:05:23poměrně nebo
0:05:27takže když se vrátíme k tomu se dá testovat samozřejmý první co všechny napadne sou
0:05:32rozbitý linky
0:05:34rozbité linky to se stává naprosto běžně protože pokud i když to když odkazujete striktně
0:05:38na své vlastní věci úplně stačí aby někdo
0:05:42jednoduše změnil
0:05:44přejmenoval dokument před jsem nebo něco takového a máte rozbitý pokud si na to fyzicky
0:05:49ne kliknete tak o nenajdete
0:05:53jakož sem říkal balíčky které tam dal nejsou se dají pěstovat
0:05:58chybět nám ale stránky když asi dívali jste se díval na té databáze pro balíčky
0:06:03tak sem zjistil že vlastně ona mi nedává jenom seznam balíčků oleje tak souboru
0:06:07a další věc která dokumentaci má společného je že většinou dokumentace kterou píšete málokdy je
0:06:13vyloženě referenční teda pokud nejste vy ste vyváří
0:06:17ale zákazníky zajímá zajímají nic jako tutoriály zákazníky zajímá jak
0:06:22udělat určitý úkon
0:06:24takže v určité chvíli si uvědomíte že nemůžete poskytnou veškerý materiál
0:06:28ste nuceni odkázat na další informace což může být buď externí zdroj a nebo manová
0:06:33stránka protože matematicky takže aktuální pro můžete ve že aktuální pro verzi kterou základní pracuje
0:06:40no zjistit že dokument zatkl temnou stránku která tam není
0:06:45je taky poměrně jednoduché
0:06:49samozřejmě pokud používáte že preferenci nebo tak levice kódových slov tak máte poměrně na děsně
0:06:57daný seznam věcí které dokumentaci musíte mít obsažené
0:07:00a
0:07:02opět je to je to zase dá ověřit ručně ale poku neustále porovnávat několik dokumentů
0:07:07zjišťovat jestli tady tohle tam popsané co neadekvátně poměrně tím co pokud si vytáhnete seznamovat
0:07:13a
0:07:15napiš jestli si nemusíte s trio veřejně všechny tady tyhle ve wisu zmíněné
0:07:19nebo si stáhnete seznam já nevím příkazů commandlinu přinýst
0:07:23přečti featur o popis vytápění tak nějaký funkcí
0:07:28a jednoduše si věříte že jsou vtom dokument obsažené ani jo že mají nějaký tak
0:07:33způsobem
0:07:34tak zase to ušetřím hromadu práce
0:07:40pokud jste někdy vypisovali tak víte že před chvílí jsem je potřeba uvěřit že tam
0:07:43máte že tam máte zapomenuté že to má nějakou podobou případně když máte abdikovanou nevím
0:07:49jestli že
0:07:50taková typická věc každá knížka hlavička nějakých operandy nějaký data nějaký rok kdy byla vydána
0:07:57je to ta poslední věc na kterou si lidi myslí takže
0:07:59takže skončíte s tím že byl sedačce patnáct vydáte knížku která tvrdí že vona tramvaj
0:08:03sedačce
0:08:05a tak
0:08:09no a potom takové věci jako
0:08:11jako stádo když chcete mít dokumentaci konzistentní
0:08:14tak většinou skončíte s tím že máte nějakou nějaký seznam
0:08:19stylistických poznámek nějaké
0:08:22já nějaká pravidla podle jakých tu knížku píšete že píšete některé věci jednotně že kterým
0:08:28formulacím se vyhýbáte tydle věci se dají koupit toho poměrně automaticky a byli se
0:08:34výrazně
0:08:36ovlivní výslednou podobu dokumentu
0:08:41a cokoli radko jiného vás napadne
0:08:46já jsem zmiňoval já jsem zmiňoval o třeba to testování odkazů to je poměrně jednoduchá
0:08:52věc
0:08:54když byste si řekli tak fajn napíšu si na to skriptík proč ne
0:08:58tak
0:08:59ale to napsat dražší poměrně jednoduchý dejme tomu že máme knížku trasa do buku to
0:09:03nandal ať xmlku poměrně nebo zrovna tak si
0:09:07kde velice jednoduché zjistit co jsou odkazy tak poďme se podívat jako implementace mohla vypadat
0:09:14tady todle pravděpodobně první co vás napadne
0:09:16napíšete si jednoduchej cyklus kterej si projde všechny elementy které
0:09:22do buku je to kvůli kterým atributů role ve kterém právě ten odkaz
0:09:27tak si napíšete jednoduchej set kterej si projde všechny tady ty maminky
0:09:31a předá jako který si zkusí jestli na té stránce souhlas samozřejmě dyž to spustíte
0:09:37todle práce tak zhruba na dvě minuty když to spustíte
0:09:40no tak to stačí takle tak opravíte
0:09:43chybu sedum
0:09:45a dostanete toto todle první krok do dvě minuty pozdějc máte první verzi skriptu která
0:09:50vám sice nedával xka data length že ste schopni version funguje
0:09:55do pěti minutách si tam přidáte nějakou nějaký výstup který vypadá trošku nečti
0:10:02a říká vám něco o tom jak to vypadá
0:10:06tak zjistíte že vám že vám tam do toho pronikají odkazy které vlastně ste dokumentaci
0:10:11dušan nejsou protože to zakomentování částech
0:10:14a některé se tam nedostanou protože některé editory můžou zlomit
0:10:19řádek před mé jméno atributu
0:10:23takže krep na to není nebo se na to není úplně vhodný
0:10:27a při píšete to s použitím něčeho co skutečně pásem pasuje xml
0:10:33že tady mám
0:10:35sem to přepsal síť jsme stále tento už máme deset minut
0:10:40když se vypadá úplně stejně
0:10:42no a potom začněte s tím různě párat pěstí takže vlastně ne když to spustíte
0:10:48na čemkoli netriviálně to trvá půl dne
0:10:52dopingat všechny linky
0:10:53takže to připíše tak při píšete tak aby to běželo paralelně použito na to
0:10:58pravděpodobně infarkt nebo
0:11:01něco podobného
0:11:03terezko
0:11:06no
0:11:08jak to tak to víte tak o pár hodin později skončit a něčem co má
0:11:11dokonce o chybách se
0:11:13má to barvičky
0:11:15a takový ty věci
0:11:17a
0:11:19má to tři sta osmdesát sedm řádků respektive tam nemaj implementace má tři sta osmdesát
0:11:23sedm řádků
0:11:25no a teď si představte kolik úsilí jste vyvinuli k tomu aby jste napsal tak
0:11:28triviální věc která mimochodem stala ten lempl notaci není úplně dokonalá
0:11:32a
0:11:35představte si že byste na to chtěli přijal něco dalšího třeba ty balíčky
0:11:40představa že pokaždé k tu kvůli tomu píšete tady tohle harakiri není si sami listo
0:11:46určitě jste psali skripty kde ta výkonná část baráky dva řádky mobil toho co má
0:11:49jen pastes trávě se sto řádku tím že ste řešil barvičky jako máme noční sál
0:11:55paranoidně ošetřovali vstupy
0:11:57komu se to nestalo
0:11:59mu závidím protože moje o mlíko tak docela často vypadá
0:12:04no
0:12:05po tady tomto já jsem si ty stezku takle napsal víc a tak jsem jak
0:12:09jsem říkal jinak se nikam je přece jenom
0:12:13to není úplně ideální
0:12:14a že by to chtělo nějaký
0:12:18framework pro tady toto
0:12:20něco co je specificky napsané pro testování dokumentace něco co by mě umožnilo
0:12:27se zaměřit jenom na tu výkonnou část neřešit ten výstup nic ve mi zajistí co
0:12:31by mě ideálně usnadnilo i to parsování dokumentace protože my víme čem dokumentaci píšeme
0:12:36a já nechci řešit pořádek sem vás tahleta nechci
0:12:40manuálně
0:12:42parsovat dokument když vím co hledám
0:12:44tak jsme začali s týmem sem se bála tišnovskej a začali sme pracovat na
0:12:50mišu zde stoupne že ten odkaz no pokud mi chceš eště za většinou protože a
0:12:54na ty děti mi nevezmeš přemýšlím angličtině a velice zřídka můj češtině
0:12:59takže jsme pracovat na
0:13:03na vlastním produktu který
0:13:06je specificky navržený propásl dokumentace pro testování dokumentace to věky provádět ty toto její část
0:13:14jack restituent
0:13:19děkuji
0:13:22prosím
0:13:23nestabilní
0:13:32slyšíte mě
0:13:33jo a na
0:13:35kdy colour my takže bysme řešily tady tyhle věci a
0:13:39tak se zrodila kdy
0:13:41nové naše love to viděla na jedna naše kolegyně tam se hrozně líbí se těšíme
0:13:45na nálepky
0:13:48tak jo takže co tak vlastně ten henry
0:13:53my sme si pučili anglické slovo
0:13:56které znamená vlastně něco projít opravit chyby předtím než se to vytisknu
0:14:02takže potom henry ten kdo to dělá takže proto render nepožadujete říkali to automaticky je
0:14:09ve stavu dnešní ten hovor neznámý
0:14:13vytvořeny speciálně pro testování dokumentace
0:14:18a přímý tří je proč je pratchetta dobré celé vlastním tom proč bysme měli používat
0:14:24než to jen mírně změnila vlastně napsat nějaký test a psát všechno pořád dokola opakovat
0:14:31takové ty jednoduché věci jedna vypadat výstup tak je to velice těžké velice časově náročné
0:14:37takže vlastně jediné se vy musíte udělat je napsat p a mdns trest
0:14:43dělá ten zbytek
0:14:45takže enter the pár se je ten zdrojový kód mě není vůbec nutné aby člověk
0:14:51zná xpath jak se nás tahle tak prostě padesát bych se na vystaví vyzkoušeli
0:14:57je to docela fuška se to naučit nebo prostě vůbec stejně tak se nemusí moc
0:15:02řešit vlastně regulární výrazy jaksi co vyhledat tom textu
0:15:07a taky andré vás
0:15:11vlastně řeší ty návratové hodnoty který to vůbec jako nevím nemusíte provést potřeba stačí napsat
0:15:18lze ten pes
0:15:20není potřeba řešit ani tohle
0:15:23také máme různé formáty na aut program potom za chvilku jeden kauzu je tam většina
0:15:28bych sehnal pro další vlastně možnost to vy výsledky dá lesními pracovat a nebo většiny
0:15:35length
0:15:37a vlastně celá ta implementace mnohem jednodušší takže si myslím že něco sebe
0:15:46ještě chvilku
0:15:48název ne fakt líbí
0:15:52tě nemá jsme praktické části nech ho používat
0:15:57a vlastně interfejs na příkazovou řádku
0:16:01a tak takhle vypadá takhle vypadá to příkazy to příkaz
0:16:06tak tam a nemusíte o přinýst
0:16:10volby data můžeme specifikovat vlastně jestli chceme nějaký ten a nějaký ten ho pošle do
0:16:15nějakého souboru
0:16:17a potom specifikuje
0:16:20a soubor ve kterém je ten trest
0:16:23instant vám za chvilku ukážu vlastně každém tom dost ono to bude asi mluvit o
0:16:27tom jaromír je nějaká globální proměnné jsou globální proměnné taky starám dělá to že každou
0:16:33to globální proměnnou my můžeme na základě tady toho white star a měnit takže třeba
0:16:37když mám dost napsaný byl release sedum red hat enterprise linux sedum jedna
0:16:42a teď jedno víry sedum pátek místo toho abych přímo kódu
0:16:47vlastně zadala že to sedum dva tak si jenom tady přestaň i patch tá globální
0:16:53proměnná se menuje
0:16:55ta globální proměnná se menuje release takže napiš jenom x release rovná se sedm dva
0:17:00a už nemusím řešit další tak ten
0:17:03což je taky fajn
0:17:05a to tu máme čas pro praktické příkazy
0:17:11příklady
0:17:12jak to jedna tak nás levnější
0:17:15a doplní
0:17:21tak a to je nás knížek du na kterých pracujeme
0:17:26je to v italském repozitáři
0:17:29může vám ukázat
0:17:31jak vlastně co tam všechno je jak jsem ukazoval a ten příkaz common stack on
0:17:37vlastně ty si ty testy ta praha je tam potřeba vždycky zadat
0:17:41neboli že tam třeba zadat odkud
0:17:44ten pes to zní cestu k tomu testu ale když máme přímo otevřeném adresáři té
0:17:48dokumentace složku trest
0:17:52tak tam se někdo čísel
0:17:54takže uplně nejjednodušší příklad toho je to použít je
0:18:01abych se na spoušti ty testy
0:18:05otvory to budou pak máte zatím nikde nějaké dotazy
0:18:10ten třeba ten pět let těch
0:18:23act abyste věděli že tam to jo přes pade
0:18:26tohle ti spadne
0:18:30tak takhle nemluvili tři tečky
0:18:32ne všichni představit
0:18:34ale dovedli zajisti není ještě není
0:18:37na před tím že jsem
0:18:39tak tím hrozně uplně nejrychlejší použití tak a máme nějaké tři penalty přepínače
0:18:47takže nejdůležitější všechny až když si nejste jistý co kde co udělá je samozřejmě že
0:18:52ne
0:18:57velice pěkný ten core to vám ukážu
0:19:01si může neřku pohrát s tím výstup
0:19:04potom zajímavý před něco takže ten de facto řádce testy tak abyste prostě věděli kde
0:19:11to padá tam můžete implementovat back funkce aby se tam neukážete že to tam zadat
0:19:19a
0:19:22no
0:19:23a teď vole mám teď specifikujeme vlastně ten
0:19:31referenda ministři a
0:19:35a vevnitř když dělá třeba za
0:19:44nebo víte jenom jeden ty testy co tam
0:19:47tak vlastně a přímo za prostě
0:19:55to zase
0:19:59tady
0:20:06a my se budeme muset dostávat musela stihnout mají stejně to teda podle těch
0:20:14odladitelný vypadá stará města nikde není problém
0:20:40von tam jsem tam
0:20:44je to vlastně všechno se ten člověk může dost kliknout
0:20:47merina prostě tohle to prošlo
0:20:51toho taky prošlo
0:20:53to jsou vlastně věci co se musíme zjistit jako
0:20:57zjistit jestli se v pořádku předtím než vydáme knížku jestli tam třeba nejsou vidět granáty
0:21:02nebo tam není hovořit graf přes celou stránku co jsem jednou povedlo vydat takle knížku
0:21:08a prodám značí nám to spadlo ne o jeden parametr no
0:21:14dva vypadá apod
0:21:26tady se listina to je ty přepínač a kterých jsem mluvila a zase předám slovo
0:21:32ranní jo
0:21:38za
0:21:39a
0:21:41zappa a takže barák ukázala to funguje by se to spouští a ty kazety parádu
0:21:46se to píše protože
0:21:47teprve na to bude vidět proč to vlastně
0:21:51jakou to má výhodu
0:21:54že je naše testy jsou napsané nula to byla dlouhá a dlouhá diskuze o tom
0:21:59jediný vhodnější jazyka vzorek tom že každý máme ten svůj tak sme se docela dlouho
0:22:04debatovali o tom co bude nejvhodnější a nakonec sme se shodli na lov a protože
0:22:09lori taková malá ne kontroverzní poměrně malý jednoduchý jazyka vláda potvrdí že naučit se v
0:22:14něm psát je poměrně jednoduché
0:22:19a testy jsou implementovány jako třídě volá
0:22:24a
0:22:26sou et pane ukazovala pokud nechcete před ale neustále plnou cestu k tomu kde sou
0:22:32místě ne tak je zvládnete do adresáře test
0:22:35a se tam najde sám
0:22:39no a jak vypadá takovej typických typický test
0:22:43eště sem neřekl že teda protože trať tím testem myslím jako nějaký
0:22:48logický celek který chcete testovat třeba linky odkazy a ták tak tu karamely čeho samostatných
0:22:53souboru můžeme mít kolik budeme chtít kolik nás napadne
0:22:58a
0:22:59takový test vypadá jinak je tam definice té třídy
0:23:03jak jsem říkal je to definováno jako třída bylo ve které nejenom dáme poskytneme meta
0:23:09data vysvětlíme k čemu ten test je dobrý kdo ho napsal kdy ho napsal případně
0:23:13může motivovat protože jak ste viděli možná jste viděli vtom helpu já jsem si všimli
0:23:19to mel půl tak jsme schopni
0:23:21a i spouštět testy podle tam
0:23:26no a seznam závislostí protože ne vždycky jste ochotni nebo schopni vydržet jenom vole čas
0:23:32od času potřete sáhnu do systému čas od času potřebujete spustí nějaký externí příkaz to
0:23:38uvidíte potom a těch příkladech a tam já sem sice na začátku říkal že
0:23:43idnes výhodu svýho tady tohodle je že máme napsané linky na parsování formátů které používáme
0:23:50ale když se to s tím zkusil napsat to je tady budu mít příklady tak
0:23:54se mi to nešlo na obrazovku tak sem se rozhodlo udělat to udělat to jednoduše
0:23:59a
0:24:00vpodstatě převést to co sem ukazoval na začátku vtom je to vypadá piš i do
0:24:05toho jak to vypadá tady
0:24:08no a potom máme určité metody ta prvně se ptáte taková ta metoda která se
0:24:13zavolá koupili první modrý zavolá automatické koupili první a slouží k tomu že si nějak
0:24:18se některé věci potřebujete připravit pro testování třeba si vytáhnout s knížek ty linky případě
0:24:24balíčků věřit si že máte staženou databázi balíčku nejnovější
0:24:29případě jiných testů vytvořit si nějaké pracovní protože prostředí připojit se k virtuální stroj cokoli
0:24:34vás napadne
0:24:36potom samozřejmě který k téhle který k téhle metodě jak si stojí protiklad co vše
0:24:42klína se metod my sme se snažili to přizpůsobit a normálním jedete s tam takže
0:24:48ta metoda se potom ne tak dále
0:24:50ne klína
0:24:52a to se volá zase koupě posledně slouží k tomu byste po sobě uklidili že
0:24:56pokud jste si vytvořili jaké jsou bude nechcete nechat na s na disku taky můžete
0:25:00smazat
0:25:01a tak
0:25:03no a potom bych jednu nebo více testovací metod ty se volají automaticky
0:25:08a vidíte že potom rovnou do ostatní to co bližší tím že konečně začínají slovem
0:25:14test
0:25:16a to sou ty konkrétní metody které se volají při testování a můžeš tý samý
0:25:20víc protože případě třeba toho to release testu tam jste viděli že ten test měl
0:25:26několik různých věcí co testoval
0:25:29a by měl tam třeba jo tam třeba ověřoval že konfigurace vpořádku ověřoval že seznam
0:25:36teda ženy story vpořádku a tam můžete to chtěli do samostatných částí
0:25:42no a jedno více ne jenom jednu nebo více další metod podle libosti které potřebujete
0:25:46a vám to ukážu na příkladu
0:25:49ty
0:25:49taková typická definice třídy může vypadat třeba takhle todle většinou první věc kterou do to
0:25:54desku napíšete
0:25:56a konečně se jmenuje stejně jako ten soubor do kterého to ukládat
0:26:03to mám dem že se pavel vokopíroval javy a
0:26:07a první část sou tam dáte je definice metadat což je obyčejný výčet a výčet
0:26:13tricky klíč hodnota
0:26:15a já myslím že to je celkem samovysvětlující ta důležitá část která tady potom je
0:26:20ní je ta druhá část a které můžete napsat vypsat seznam externí závislostí to sou
0:26:25pokud znáš rámci testu používat jak externí příkazy
0:26:29tak samozřejmě nechci to by vám to pixlové nějakým by šlo s tím příkazu bash
0:26:33com a noc ahoj
0:26:34ale chcete aby ten trest vám nějakým způsobem boje metrem jakým způsobem
0:26:39nahlásil fajn tady tohle nešlo spustit tady todle ti chybí je musíš to měl by
0:26:43sis to nainstalovat takže k tomu je tady ten výčet závislostí
0:26:47protože před spuštěním samotné to s tou nevěří že systému sou při přípustný přítomné
0:26:54je dvě co tady nemám protože jsem to chtěl nechat jednodušší je to co zmiňoval
0:26:57vláda jestli jste viděli tam ten parametr nečteš nic
0:27:01ta ten umožňuje mám nějakým způsobem zvnějšku plnit nastavení toho
0:27:08co se děje co se děje s tom testu
0:27:11kdybyste měli nějaké hodnoty které byste chtěli nastala z nichž ku tak tady je můžete
0:27:17nadefinovat
0:27:18potom jako proměnné třídy
0:27:23to tady nemám a tak vás je typická se tam assert jak jsem říkal tady
0:27:27todle sem tady todle sem si
0:27:29nakonec rozhodl
0:27:31upravit to co sem ukazoval když i
0:27:34takže případě třeba testování linku bychom se tam mohli s tou dokumentu vytáhnout i seznam
0:27:40a na tom prvním řádku vidíte že sem nastavím natvrdo který sou borci kterých sou
0:27:46borci používat
0:27:48a
0:27:49bral ten test vypadá trošku složitější celé todle fakt jednodušší příklad
0:27:54potom sem si tam nadefinovat například příkaz kterým to s toho vytáhnu použil jsem úplně
0:28:00stejný příkaz jako vtom vešel
0:28:02a jediný co sem tam oproti tomu dělali že sem tam přihodil ten soud aby
0:28:07to ty linky nepsalo dvakrát nebudete stole dvakrát
0:28:10a smazal jsem si prázdné řádky
0:28:13no a
0:28:15potom na tom poslední řádku si jenom uložím ty odkazy do tabulky na to máme
0:28:22metrů hromadu různých funkcí které nám umožňují zjednodušit práci se výstupy data
0:28:28jako krétě tady ta rizika přeo pude state byl
0:28:32však na to koukám tady to strašně název
0:28:35tak automaticky zatím výstup toho příkazu pustí ho by zachytilo výstup a uloží ho do
0:28:40tabulky podle řádku
0:28:44případě klína metody tady s tomhle případě není co mazat protože
0:28:48není co dělat takže sem tam jenom chtěl ukázat že možnost byste tam měli třeba
0:28:53vytvořeny nějaké soubory tak todleto místo vy smažete
0:28:57no to sme teda samotná ta testovací
0:29:00tudle chvíli jenom
0:29:02kontrolu externí linky
0:29:04takže si tady udělám normální cyklu streamy projde tu tabulku těch odkazů na každý si
0:29:10spustím na každym si spustím ověření jestli fungují
0:29:14to tady dělá ten jak tom it test links je z velkým to je právě
0:29:19jedna s těch a demeter co který jsem mluvil té pomoc na metr a co
0:29:22vidíte za chvilinku která si jenom spustí cool zjistí jestli temný funguje a případě že
0:29:28ano tak vrátí true případě že ne
0:29:31tak vrátí false
0:29:34a to vistu to je jedna s testovací metat které máme které nám umožní rozhodnout
0:29:39jestli to má spadnout nebo ne
0:29:41tomhle případě konkrétně srovnáme jestli se vrátí true tak to projde
0:29:48a tady v že ta další pomocná metoda to výsledky která je asi nejdelší
0:29:53to jednoduše si jenom
0:29:55zachytí výstup a
0:29:57rozhodnu se jestli
0:29:59toto naprosto nebo ne
0:30:01přesto spustí
0:30:03tak to pak vypadá třeba nějak takto
0:30:15také předám jsou báře
0:30:19kde vlastně tady tyhlety kecy se potom dají přidat na
0:30:24přidat průběžně integraci ten termín assistant dnes integration můžete mi někdo co to je ty
0:30:29měl jsem ty kdo jsem
0:30:31dobře na to někdo vysvětlit měsíc tady dostala dvě tašky věci je to cesta a
0:30:37za nějakou aktivitu
0:30:39jak kde se hlásí
0:30:43nikde
0:30:45tak já vám to teda řeknu
0:30:50vlastně ta je běžná integrace nebo já zas může se ten například nimi přišly ty
0:30:55knížky co máme
0:30:57co máme v red je to takhle metody tu
0:31:00máme potom server integrační server jenkins
0:31:04který vlastně pokaždé když my pošlem do toho repozitáře s tou knížkou tak se zjistí
0:31:09jestli to s knížku může vlastně z by lidi a zároveň s prostě ty testy
0:31:13já potom ten takže to je vlastně
0:31:17to je ta předběžná integrace vypadá nás
0:31:20ne na to že neustále osmi testujeme jestli vůbec ten zdrojový kód funguje protože potom
0:31:26do vyhledávat zpětně procesy vyrostlo před
0:31:29nástupu zaměstnala míst knížky průběžně brodíme takže každý má dycky přístup k té nejnovější verzi
0:31:37pan děkuji
0:31:39no takže to je asi tak o tom o tom operaci
0:31:44a tady tohoto mega je to vypadá třeba na tom jenkins na tom serveru vlastně
0:31:48tady tohleto snad knížky
0:31:51tady vidíte
0:31:53teda si nevidí že které se průběžně mění pedikury test kolik spadlo kolik
0:31:59kolik jich prošlo
0:32:02jsou procenta který pěknej vlastně na to
0:32:06navazují
0:32:08ta se zatím jsou tím čím jsou tak všechna a na mě dobré tak je
0:32:12že vlastně ten tím se má jestli notifikaci takže když něco spadne tak na jestli
0:32:18penále tím že jsme vlastně
0:32:21kde jsme zálohování tech lidí tak nastoupí nás na tedy tím spadlo správce to
0:32:26takže to je taky
0:32:28a nemuset tom ještě byste dat
0:32:32to měsíce
0:32:35to byl všechno
0:32:37viny
0:32:41také já bych řetězenou co sme se naučit protože ten to samozřejmě není hotový projekt
0:32:45je to něco co je neustále vývoje mi to používáme jako takových
0:32:49sandbox tom abychom zjistili co
0:32:52co sou dobré přístupy při testování dokumentace
0:32:56jak to pojmout i na co s jak se to liší ohod testování softwaru
0:33:01konkrétně tak si to dyž a testování softwaru na to sme narazili velice rychle protože
0:33:05můj původní záměr bylo použít nějaký framework to obyčejnými testy velice rychle sem zjistil že
0:33:11to není úplně to nejlepší co můžu dělat protože dokumentace sice je do jisté míry
0:33:16podobná jako software ale ne úplně
0:33:19a
0:33:21zejména s tom že
0:33:22země větší rozdíl je to vtom že dokumentace cena přirozeném jazyce takže my nejsme skupiny
0:33:28schopní
0:33:29zatím napsat programu který by kompletně rozuměl tomu co jste dokumentaci je
0:33:34velice rychle narazíme na situace kdy my se vlastně nejsme jisti normální testy jsou většinou
0:33:39příliš zatím mají binární se dip něco selže nebo je vpořádku
0:33:43jestli ve spoustě situací nejsme jisti jestli je to vpořádku nebo třeba případě to ustál
0:33:48dojdu
0:33:49chceme dát jenom doporučení takže takové prosté pás a fail
0:33:53nám více méně nestačí
0:33:55takže proto náš proto ten náš filtr třeba má třetí stát který je informace
0:34:02to tam bylo to vem že vy segment těch vtom výstupu máte mel kdy
0:34:07technicky je to vpořádku ale možná je tam nějaký problém a čovek do ní měl
0:34:12vědět tam měl by se na to podívat
0:34:15no a restru jsme zjistili je že ta se ta část je poměrně časově náročná
0:34:21třeba případě tě případě těm balíčku to neustále ověřování jestli máme aktuální databázi balíčků jo
0:34:30a taky
0:34:31pracná věc asi mě na když dopustíme na mnoha knížkách tak aplikujeme pro zase
0:34:38tady tyhle věci
0:34:39takže co sme přišli na to je že vlastně bychom do budoucna měli přemýšlet
0:34:45jestli bys neměl implementovat třeba ten setup
0:34:49ještě nebyl se tam protože sou věci které potřeba vymýtit hned a vždy dělat při
0:34:53každém spuštění testu a pak jsou věci které můžeme udělat třeba jednou denně jako například
0:34:57stáhnout databázi balíčku
0:35:00a pak na ně sám
0:35:02což je zase něco jinýho nižší
0:35:05spustili test
0:35:09kromě toho sme zjistili že
0:35:11když je co se dá testovací je toho mnohem víc protože
0:35:16každá věc kterou jsme napsali začíná model neuvěřitelné množství problémů který sme nevěděli protože nás
0:35:22nenapadlo hledat
0:35:24taky jsme zjistili že tady to tento přístup k testování dokumentace
0:35:30a nám umožňuje odhalovat problémy které nejsou na naší straně ale sou na straně software
0:35:35tom odhalování nulový stránek sme našli takové které s tom systému být mají a nejsou
0:35:40a
0:35:42při máme třeba interní napsaný jeden s testu který nám vyloženě zkouší jestli ty parametry
0:35:48všechny parametry které dokumentu ú příkazu
0:35:51jestli skutečně ten
0:35:53příkaz podporuje
0:35:55proto se koukáme do volbama nulový stránek a zjistili jsme že ten software ty parametry
0:36:00podporuje ale
0:36:03nějak si s těma nulový stránka nemáme
0:36:06cože takový příjemný se defekt tady tohodle protože
0:36:10to vlastně pomáhá vylepšit i software samotný
0:36:17myslím že to je asi tak všechno co sem tady k tomudle chtěl říct
0:36:24takže
0:36:26bych vám chodilo o čem je trošinku dřív bych vám poděkoval za vaši pozornost a
0:36:29zeptám se máte k tomuhle nějaké dotazy nebo