Zde jsem vám sepsal základy testování Software a App. Ne každý si může dovolit kurz testera, nemá ve svém kraji možnost jít na kurz, třeba nemůže z důvodu pandemie covid-19 nebo finančních.
Já na takový kurz nedávno nastoupil a moc rád bych se s vámi podělil o informace, které jsem se dozvěděl. Vše jsem si sepsal jedná se o úplný základ pro testera. Postupně sem budu přidávat další informace více do hloubky Testingu.
Dokument jsem sepsal v programu Pages. Zde vám dám přepis ať si ho nemusíte stahovat. Pokud někdo budete mít dotazy k tématu nebo si chcete na toto téma pokecat můžete zde v komentářích nebo mě přímo psát na e-mail lukaskanka@lukan.cz
Úkol testera:
Cílem softwarového testera je vyhledávat chyby a to co nejdříve a zajistit jejich nápravu
Proces:
Definovaný sled činností, který vede k požadovanému cíli
Co testujeme:
Software
Desktopové aplikace
Word,Excel, aplikace, u kterých si stáhnu exe soubor, má je nainstalované přím v desktop, ke spuštění nepotřebuji internetu
Webové aplikace
vše k čemu přistupuji přes webový prohlížeč (Fb, Google maps)
Mobilní aplikace
...ale také elektronické součástky, nábytek, léky, hygienické a kosmetické prostředky...
Fáze projektu:
Vývoj -> Test -> Produkce (nasazení)
Fáze Testování:
Vývoj ->
AT Assembly Testing -> Interní testeři
UAT User acceptance testing -> Uživatelské akceptační testování,
UAT Probíhá již na zařízení zákazníka, který zpravidla uplatňuje své předpřipravené procedury s cílem objevit chyby softwaru; dodavatel je pak v dohodnuté lhůtě odstraňuje.
Nasazení , Produkce -> Vydání , Provoz
Lidé na IT projektu:
Povinný tým: Analytici -> IT analytik analyzuje požadavky procesů a potřeb a podle toho navrhuje schematické diagramy částí informačních systémů a jejich celků. Analýza se zabývá nejen technickým provedením, ale také funkčními požadavky a legislativními podmínkami. Ke každému projektu vzniká i podrobná technická dokumentace včetně datových struktur, nadefinovaných rozhraní a důležitých výkonnostních testů.
Projekt Mannager -> manažer
Vývojáři ->
Beckend (BE) - více se stará o logiku apky,stará se o to, aby apka fungovala Frontend (FE) -grafika app
Testeři
Nepovinné role: Architekt (velké firmy, korporáty), Databázista, Admin ( linux, servery, Develop dep), Support/HelpDesk
Lidé v Test Teamu:
Test Executiv -> Junior/Senior (klikač podle zadání)
Test Disigner -> píše kroky testů
Test Analitik -> dělá analýzu testů
Test Architekt ->
Test Automation -> umí naprogramovat automatické testy
Test Manager ->
Team Leader ->
QA Quality Assurance -> zajišťování kvality, kvalita -> funkčnost, použitelnost, bezchybnost - celkového produktu
Zahrnuje proces testování
Zkoumá proces vývoje zda byl kvalitní
Vytváří a prosazuje vhodné standardy a metody, které zdokonalí proces vývoje a zabrání vzniku chyb.
Dokumenty IT / Specifikace:
Specifikace -> definuje výsledný produkt
popisuje chování vzhled co bude dělat a co nebude dělat výsledný produkt
dokument požadavků
právní dokument mezi zákazníkem a firmou (dodavatelem)
Vlastnosti specifikace -> správná
úplná
přesná, jednoznačná a jasná
konzistentní
relevatní
proveditelná - rámec času a peněz
testovatelná
bez kódu - aby ji rozuměl zákazník, tester mohl podle ní testovat
Co je chyba:
- Software nedělá něco, co by podle specifikace produktu měl dělat.
- Software dělá něco, co by podle údajů specifikace produktu dělat neměl (nikdy se nemá seknout).
- Software dělá něco, o čem se produktová specifikace nezmiňuje (vymyslel programátor mimo specifikaci - chyba). Bug vs Feature (fíčr).
- Software nedělá něco, o čem se produktová specifikace nezmiňuje, ale měla by se zmiňovat (třeba co chybí ve specifikaci, mělo by se dopsat).
- Software je obtížně srozumitelný, těžko se s ním pracuje, je pomalý, nebo - podle názoru testera softwaru - jej koncový uživatel nebude považovat za správný (user friendly).
! Nelze otestovat vše !
Důvody k neopravení chyb:
*feature
*není čas- release
*riskantní oprava
*nestojí to za to
Vlastnosti testera:
*zvídavý / analytický
*přijít věcem na kloub - popis jak jsem přišel k chybě krok po kroku (každý krok si zapisovat)
*neúnavný
*tvořivý
*perfekcionista
*dobrý úsudek
*taktní a diplomatycký
*přesvědčivý - popsat chybu atd.
*komunikativní
*nejlepší tester světa > hacker
Obecné typy testů:
- Black box - nevím, jak ta app funguje, nevidím kód
White Box -už něco o app vím, v jakém je prog.jazyce, vidím do kódu app
Grey box - může jednat např. o situaci, kdy software testujeme přes jeho uživatelský rozhraní.Výsledky operací pak ověřujeme pomocí dotazů do databáze.
2. Statické - dokument ještě bez aplikace
Dynamické - spuštěná aplikace
3. Testování dokumentace - kontrola (F1 nápověda), manuál, obal
4. Testy splněním TEST TO PASS (pozitivní) - chování v testu jak by se aplikace měla používat
TEST TO FAIL (negativní) - dávám špatné údaje, data a podobně
5. Testování hardware a software kompatibility
6. END TO END testy- od začátku do konce, proces funkce
Testování specifikace:
Statický test - Black box - specifikace není konečná
- Nejprve jako celek, co chybí , co je opomenuto
- Je potřeba celé specifikaci porozumět
- Musí dodržovat standarty a technologie
- Otestovat podobný software - porovnání
Hraniční hodnoty testů:
Test splněním pozitivní (Test To Pass)
- první / poslední
- prázdný / plný
- min / max
Test negativní (Test To Fail)
- min -1 / max +1
Konkrétní typy testů:
- Manuální
- Automatizované
- Regresní - zpětné (manuální i automatizované), testování verzí 1,2,3,4…….., je potřeba otestovat i funkce z předchozích verzí, je lepší tyto testy automatizovat, cíl je jestli nové funkce nerozbily původní funkce
- Smoke testy - se využívá v okamžiku, kdy je dokončen vývoj aplikace a lze ji spustit. Tedy na konci úrovně integračního testování. Jedná se o krátký test, který slouží jako rychlé ověření, zda je vyvíjená aplikace připravena pro další fázi testování.
- Zátěžové / Performance - max testy zatížení podle definic kolik to má umět obsloužit lidí. Testuje se do maxima. App “JMeter”(čejmítr) - nastavím počet uživatelů , na test zatížení.
- Stres testy - trápíme sw, horší než ideální podmínky, hloupý honza test
Vývojářské testy:
- Unit testy - testy jednotek
- Integrační testy - testovaní většího celku
- Code Review - čitelnost kódu, standarty
- Code Caverage - ukáže kolik % kódu (řádku) se otestovalo
Časté pohovorové otázky:
>co je chyba
>co obsahuje specifikace
>jaký je rozdíl mezi Bug a Feature
>Co je to QA
>jaké znáte typy testů
A malý vtípek na závěr jak to občas chodí v IT