database testing complete guide why
Kompletní průvodce testováním databáze s praktickými tipy a příklady:
Počítačové aplikace jsou dnes složitější s technologiemi, jako je Android, a také se spoustou aplikací pro smartphony. Čím složitější jsou přední konce, tím složitější jsou zadní konce.
O to důležitější je naučit se o testování DB a umět efektivně ověřovat databáze, aby byla zajištěna bezpečnost a kvalita databází.
V tomto kurzu se dozvíte vše o testování dat - proč, jak a co testovat?
Databáze je jednou z nevyhnutelných částí softwarové aplikace.
Nezáleží na tom, zda se jedná o web, počítač nebo mobil, klient-server, peer-to-peer, podnik nebo individuální podnikání; databáze je vyžadována všude na backendu.
Podobně, ať už se jedná o zdravotnictví, finance, leasing, maloobchod, poštovní aplikace nebo ovládání vesmírné lodi; databáze je vždy v zákulisí.
Jak se zvyšuje složitost aplikace, objevuje se potřeba silnější a bezpečnější databáze. Stejným způsobem pro aplikace s vysokou frekvencí transakcí ( Například, Aplikace pro bankovnictví nebo finance) je spojena nutnost plně vybaveného nástroje DB Tool.
V dnešní době máme velká data, která jsou velká a složitá a tradiční databáze s nimi nemohou pracovat.
Je jich několik Databázové nástroje jsou k dispozici na trhu Například, MS-Access, MS SQL Server, SQL Server, Oracle, Oracle Financial, MySQL, PostgreSQL, DB2, Toad, Admirer atd. Tyto nástroje se liší cenou, robustností, funkcemi a zabezpečením. Každý z těchto má své vlastní výhody a nevýhody.
Co se naučíte:
- Proč testovat databázi?
- Co testovat (kontrolní seznam pro testování databáze)
- Jak testovat databázi (postup krok za krokem)
Proč testovat databázi?
Níže uvidíme, proč by měly být ověřeny následující aspekty DB:
# 1) Mapování dat
V softwarových systémech data často putují tam a zpět z uživatelského rozhraní (uživatelského rozhraní) do backendové databáze a naopak. Je zde tedy několik aspektů, které je třeba sledovat:
- Zkontrolujte, zda jsou pole ve formulářích uživatelského rozhraní / frontendu konzistentně mapována s odpovídajícími poli v tabulce DB. Tyto mapovací informace jsou obvykle definovány v dokumentech požadavků.
- Kdykoli se na předním konci aplikace provede určitá akce, na zadním konci se vyvolá odpovídající akce CRUD (Vytvořit, Načíst, Aktualizovat a Odstranit). Tester bude muset zkontrolovat, zda je vyvolána správná akce a zda je vyvolaná akce sama o sobě úspěšná nebo ne.
# 2) Ověření vlastností ACID
Atomicita, konzistence, izolace a trvanlivost. Každá transakce, kterou DB provádí, musí dodržovat tyto čtyři vlastnosti.
- Atomicita znamená, že transakce buď selže, nebo projde. To znamená, že i když selže jedna část transakce - znamená to, že selhala celá transakce. Obvykle se tomu říká pravidlo „všechno nebo nic“.
- Konzistence : Transakce bude mít vždy za následek platný stav databáze
- Izolace : Pokud existuje více transakcí a jsou prováděny najednou, výsledek / stav databáze by měl být stejný, jako kdyby byly provedeny jedna po druhé.
- Trvanlivost : Jakmile je transakce provedena a potvrzena, neměly by ji být schopny změnit žádné vnější faktory, jako je ztráta energie nebo selhání
Doporučené čtení = >> Výukový program pro transakce MySQL
# 3) Integrita dat
Pro některou z CRUD operace , aktualizované a nejnovější hodnoty / stav sdílených dat by se měly objevit na všech formulářích a obrazovkách. Hodnota by neměla být aktualizována na jedné obrazovce a zobrazovat starší hodnotu na jiné.
Když je aplikace v procesu, koncový uživatel využívá hlavně operace „CRUD“ usnadněné nástrojem DB .
C: Vytvořit - Když uživatel „uloží“ jakoukoli novou transakci, provede se operace „vytvořit“.
R: Načíst - Když uživatel „vyhledá“ nebo „zobrazí“ jakoukoli uloženou transakci, provede se operace „načíst“.
U: Aktualizace - Když uživatel provede „Upravit“ nebo „Upravit“ existující záznam, provede se operace „Aktualizovat“ DB.
D: Smazat - Když uživatel „odebere“ jakýkoli záznam ze systému, provede se operace „Delete“ databáze.
Jakákoli operace databáze prováděná koncovým uživatelem je vždy jednou z výše uvedených čtyř.
Navrhněte tedy své testovací případy DB takovým způsobem, aby zahrnoval kontrolu dat na všech místech, kde se zdá, abyste zjistili, zda jsou konzistentně stejné.
# 4) Shoda obchodních pravidel
Složitější databáze znamená složitější komponenty, jako jsou relační omezení, spouštěče, uložené procedury atd. Testeři tedy budou muset přijít s příslušnými dotazy SQL, aby mohli tyto složité objekty ověřit.
Co testovat (kontrolní seznam pro testování databáze)
# 1) Transakce
Při testování transakcí je důležité se ujistit, že splňují vlastnosti ACID.
Toto jsou běžně používaná tvrzení:
- ZAČNĚTE TRANSAKCI TRANSAKCE #
- KONEC TRANSAKCE TRANSAKCE #
Příkaz Rollback zajišťuje, že databáze zůstane v konzistentním stavu.
- ROLLBACK TRANSACTION #
Po provedení těchto příkazů se pomocí Select ujistěte, že se změny projevily.
- VYBERTE * Z TABLENAME
# 2) Databázová schémata
Schéma databáze není nic jiného než formální definice toho, jak budou data uspořádána uvnitř databáze. Chcete-li to vyzkoušet:
- Určete požadavky, na jejichž základě databáze pracuje. Ukázkové požadavky:
- Primární klíče, které se mají vytvořit před vytvořením dalších polí.
- Cizí klíče by měly být zcela indexovány pro snadné vyhledání a vyhledávání.
- Názvy polí začínající nebo končící určitými znaky.
- Pole s omezením, do kterého lze nebo nelze vložit určité hodnoty.
- Podle důležitosti použijte jednu z následujících metod:
- SQL dotaz POP
k ověření schématu.
- Regulární výrazy pro ověřování názvů jednotlivých polí a jejich hodnot
- Nástroje jako SchemaCrawler
# 3) Spouštěče
Když se na určité tabulce odehraje určitá událost, lze automaticky instruovat, aby byla provedena část kódu (spouštěč).
Například, nový student nastoupil do školy. Student navštěvuje 2 kurzy: matematiku a přírodní vědy. Student je přidán do „studentské tabulky“. Jakmile je student přidán do tabulky studentů, mohl jej přidat do příslušných tabulek předmětů.
Běžnou metodou pro testování je provést nejprve nezávisle dotaz SQL vložený do Triggeru a zaznamenat výsledek. V návaznosti na to proveďte Trigger jako celek. Porovnejte výsledky.
Ty jsou testovány ve fázích testování Black-box a White-box.
dobré stránky ke sledování anime zdarma
- Bílé pole testování : Pahýly a ovladače se používají k vložení nebo aktualizaci nebo odstranění dat, která by měla za následek vyvolání spouštěče. Základní myšlenkou je jen otestovat samotnou DB ještě před provedením integrace s front-endem (UI).
- Testování černé skříňky :
na) Od UI a DB je nyní k dispozici integrace; můžeme vkládat / mazat / aktualizovat data z frontendu způsobem, který vyvolá Trigger. V návaznosti na to lze příkazy Select použít k načtení dat databáze a zjistit, zda byl spouštěč úspěšný při provádění zamýšlené operace.
b) Druhým způsobem, jak to otestovat, je přímé načtení dat, která by vyvolala Trigger, a zjistit, zda funguje, jak bylo zamýšleno.
# 4) Uložené procedury
Uložené procedury jsou víceméně podobné uživatelsky definovaným funkcím. Ty lze vyvolat příkazy Call Procedure / Execute Procedure a výstup je obvykle ve formě sad výsledků.
Ty jsou uloženy v RDBMS a jsou k dispozici pro aplikace.
Jsou také testovány během:
- Testování bílé skříňky: Pahýly se používají k vyvolání uložených procedur a poté se výsledky ověří podle očekávaných hodnot.
- Testování černé skříňky: Proveďte operaci z klientského rozhraní (UI) aplikace a zkontrolujte provedení uložené procedury a jejích výsledků.
# 5) Omezení pole
Výchozí hodnota, jedinečná hodnota a cizí klíč:
- Proveďte front-endovou operaci, při které se procvičuje podmínka databázového objektu
- Ověřte výsledky pomocí dotazu SQL.
Kontrola výchozí hodnoty pro určité pole je docela jednoduchá. Je to součást ověření obchodních pravidel. Můžete to udělat ručně nebo můžete použít nástroje jako QTP. Ručně můžete provést akci, která přidá jinou hodnotu než výchozí hodnotu pole z rozhraní frontend a uvidíte, zda nevede k chybě.
Následuje ukázkový kód VBScript:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) Výsledkem výše uvedeného kódu je True, pokud existuje výchozí hodnota, nebo False, pokud tomu tak není.
Kontrolu jedinečné hodnoty lze provést přesně tak, jak jsme to udělali pro výchozí hodnoty. Zkuste zadat hodnoty z uživatelského rozhraní, které toto pravidlo poruší, a zkontrolujte, zda se zobrazí chyba.
Kód Automation VB Script může být:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) ProCizí klíčověření omezení použít načtení dat, která přímo zadávají data, která porušují omezení, a zjistit, zda je aplikace omezuje nebo ne. Spolu s načtením dat back-endu proveďte také operace uživatelského rozhraní front-endu způsobem, který bude porušovat omezení a uvidíte, zda se zobrazí příslušná chyba.
Činnosti týkající se testování dat
Tester databáze by se měl zaměřit na následující testovací činnosti:
# 1) Zajistěte mapování dat:
Mapování dat je jedním z klíčových aspektů v databázi a každý tester softwaru by jej měl důkladně testovat.
Ujistěte se, že mapování mezi různými formami nebo obrazovkami AUT a jeho DB je nejen přesné, ale také podle návrhových dokumentů (SRS / BRS) nebo kódu. V zásadě musíte ověřit mapování mezi každým polem front-endu s odpovídajícím polem back-endové databáze.
U všech operací CRUD ověřte, zda jsou příslušné tabulky a záznamy aktualizovány, když uživatel klikne na „Uložit“, „Aktualizovat“, „Hledat“ nebo „Odstranit“ z grafického uživatelského rozhraní aplikace.
Co musíte ověřit:
- Mapování tabulek, mapování sloupců a mapování datových typů.
- Mapování dat vyhledávání.
- Pro každou akci uživatele v uživatelském rozhraní je vyvolána správná operace CRUD.
- Operace CRUD je úspěšná.
# 2) Zajistěte ACID vlastnosti transakcí:
KYSELÉ vlastnosti transakcí DB odkazují na „ NA tomicity “,„ C onsistency “,„ Já solation “a„ D naléhavost “. Během aktivity testování databáze je nutné provést správné testování těchto čtyř vlastností. Musíte ověřit, že každá jednotlivá transakce splňuje vlastnosti ACID databáze.
Vezměme si jednoduchý příklad prostřednictvím níže uvedeného kódu SQL:
CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100));
Tabulka testu ACID bude mít dva sloupce - A a B. Existuje omezení integrity, že součet hodnot v A a B by měl být vždy 100.
Test atomicity zajistí, že všechny transakce provedené v této tabulce budou všechny nebo žádné, tzn. nebudou aktualizovány žádné záznamy, pokud některý krok transakce selže.
Test konzistence zajistí, že kdykoli se aktualizuje hodnota ve sloupci A nebo B, součet vždy zůstane 100. Nepovolí vložení / odstranění / aktualizaci v A nebo B, pokud je celková částka jiná než 100.
Izolační test zajistí, že pokud se dvě transakce dějí současně a snaží se upravit data testovací tabulky ACID, pak se tyto trakce provádějí izolovaně.
Test trvanlivosti zajistí, že jakmile bude transakce nad touto tabulkou potvrzena, zůstane tak, i v případě ztráty napájení, selhání nebo chyb.
Tato oblast vyžaduje důkladnější, důkladnější a důkladnější testování, pokud vaše aplikace používá distribuovanou databázi.
# 3) Zajistěte integritu dat
Zvažte, že různé moduly (tj. Obrazovky nebo formuláře) aplikace používají stejná data různými způsoby a provádějí všechny operace CRUD s daty.
V takovém případě zajistěte, aby se nejnovější stav dat projevil všude. Systém musí na všech formulářích a obrazovkách zobrazovat aktualizované a nejnovější hodnoty nebo stav těchto sdílených dat. Tomu se říká datová integrita.
Testovací případy pro ověření integrity dat databáze:
- Chcete-li aktualizovat záznamy referenční tabulky, zkontrolujte, zda jsou k dispozici všechny aktivační události.
- Zkontrolujte, zda v hlavních sloupcích každé tabulky nejsou nesprávná / neplatná data.
- Zkuste vložit nesprávná data do tabulek a sledujte, zda nedojde k nějaké chybě.
- Zkontrolujte, co se stane, když se pokusíte vložit dítě před vložením jeho rodiče (zkuste hrát s primárním a cizím klíčem).
- Vyzkoušejte, zda dojde k chybě, pokud odstraníte záznam, na který stále odkazují data v jakékoli jiné tabulce.
- Zkontrolujte, zda jsou replikované servery a databáze synchronizované.
# 4) Zajistěte přesnost implementovaných obchodních pravidel:
Databáze dnes nejsou určeny pouze k ukládání záznamů. Ve skutečnosti se z databází vyvinuly extrémně výkonné nástroje, které vývojářům poskytují dostatečnou podporu při implementaci obchodní logiky na úrovni databáze.
Některé jednoduché příklady výkonných funkcí jsou „Referenční integrita“, Relační omezení, Spouštěče a uložené procedury.
Takže pomocí těchto a mnoha dalších funkcí nabízených databázemi vývojáři implementují obchodní logiku na úrovni databáze. Tester musí zajistit, aby implementovaná obchodní logika byla správná a fungovala přesně.
Výše uvedené body popisují čtyři nejdůležitější „Co dělat“ testování databáze. Nyní pojďme k části „Jak na to“.
Jak testovat databázi (postup krok za krokem)
Obecná testovací databáze procesu testování se příliš neliší od jakékoli jiné aplikace.
Níže jsou uvedeny základní kroky:
Krok 1) Připravte prostředí
Krok 2) Spusťte test
Krok č. 3) Zkontrolujte výsledek testu
Krok č. 4) Ověřte podle očekávaných výsledků
Krok č. 5) Oznamte zjištění příslušným zúčastněným stranámK vývoji testů se obvykle používají dotazy SQL. Nejčastěji používaným příkazem je „Vybrat“.
Vyberte * odkud
Kromě Select má SQL 3 důležité typy příkazů:
- DDL: Jazyk definice dat
- DML: Jazyk pro manipulaci s daty
- DCL: Jazyk řízení dat
Podívejme se na syntaxi nejčastěji používaných příkazů.
Jazyk definice dat Používá CREATE, ALTER, RENAME, DROP a TRUNCATE ke zpracování tabulek (a indexů).
Jazyk pro manipulaci s daty Zahrnuje příkazy pro přidávání, aktualizaci a mazání záznamů.
Jazyk kontroly dat: Zabývá se udělením oprávnění uživatelům k manipulaci a přístupu k datům. Grant a Revoke jsou dva použité příkazy.
Udělit syntaxi:
Udělit výběr / aktualizaci
Na
Komu;Zrušit syntaxi:
Revokeselect / update
na
z;Několik praktických tipů
# 1) Napište dotazy sami:
Pro přesné otestování databáze by měl mít tester velmi dobré znalosti příkazů SQL a DML (Data Manipulation Language). Tester by měl také znát vnitřní strukturu databáze AUT.
Můžete kombinovat GUI a ověření dat v příslušných tabulkách pro lepší pokrytí. Pokud používáte server SQL, můžete k psaní dotazů, jejich provádění a načítání výsledků využít SQL Query Analyzer.
Toto je nejlepší a robustní způsob testování databáze, když má aplikace malou nebo střední úroveň složitosti.
Pokud je aplikace velmi složitá, může být pro testera obtížné nebo nemožné zapsat všechny požadované dotazy SQL. V případě složitých dotazů potřebujete pomoc od vývojáře. Tuto metodu vždy doporučuji, protože vám dává jistotu při testování a také zvyšuje vaše dovednosti v oblasti SQL.
# 2) Sledujte údaje v každé tabulce:
Ověření dat můžete provést pomocí výsledků operací CRUD. To lze provést ručně pomocí uživatelského rozhraní aplikace, když znáte integraci databáze. To však může být zdlouhavý a těžkopádný úkol, když jsou v různých databázových tabulkách obrovská data.
Pro ruční testování dat musí mít tester databáze dobrou znalost struktury databázové tabulky.
# 3) Získejte dotazy od vývojářů:
Toto je nejjednodušší způsob testování databáze. Proveďte libovolnou operaci CRUD z grafického uživatelského rozhraní a ověřte její dopady provedením příslušných dotazů SQL získaných od vývojáře. Nevyžaduje dobrou znalost jazyka SQL ani dobrou znalost struktury databáze aplikace.
Tuto metodu je však třeba používat opatrně. Co když je dotaz zadaný vývojářem sémanticky špatný nebo nesplňuje správně požadavek uživatele? Proces jednoduše selže při ověřování dat.
# 4) Využijte nástroje pro testování automatizace databáze:
Pro proces testování dat je k dispozici několik nástrojů. Měli byste zvolit správný nástroj podle svých potřeb a co nejlépe jej využít.
=> Zde je seznam NEJLEPŠÍCH testovacích nástrojů DB, které byste měli zkontrolovat
Závěr
Se všemi těmito funkcemi, faktory a procesy, které se mají testovat v databázi, roste poptávka po testerech, aby byli technicky zdatní v klíčových koncepcích databáze. Přes některá z negativních přesvědčení, že testování databáze vytváří nová úzká místa a představuje spoustu dalších výdajů - jde o oblast testování, která přitahuje značnou pozornost a poptávku.
Doporučené čtení = >> Co je Testování zabezpečení databáze
Doufám, že tento tutoriál pomohl zaměřit se na to, proč tomu tak je, a také vám poskytl základní podrobnosti o tom, co jde do testování databáze.
Sdělte nám svůj názor a také sdílejte své osobní zkušenosti, pokud pracujete na testování DB.
Doporučené čtení
- Testování databáze pomocí JMeter
- 40+ nejlepších nástrojů pro testování databáze - oblíbená řešení pro testování dat
- Jednoduchý přístup pro testování XML k databázi
- Výukový program pro testování datového skladu ETL (kompletní průvodce)
- Výukový program pro testování migrace dat: Kompletní průvodce
- Top 10 databázových návrhových nástrojů pro vytváření komplexních datových modelů
- Výukový program pro testování datových skladů s příklady | Průvodce testováním ETL
- Jak testovat databázi Oracle
^
- SQL dotaz POP