[[oktatas:adatbázis-kezelés|< Adatbázis-kezelés]]
====== Adatbázis-tesztelés ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2014, 2017
* Licenc: GNU Free Documentation License 1.3
* Web: http://szit.hu
====== Értelmezhető teszttípusok ======
* adatbázis séma teszt
* funkcionalitási teszt
* terhelési teszt
* védelmi teszt
* hatékonysági teszt
* adatintegritási teszt
===== Vizsgálati eljárások =====
* adatbázis fekete-dobozos tesztelése
* adatbázis fehér-dobozos tesztelése
==== Fekete-dobozos tesztelés ====
* adatok feltérképezése
* beérkező adatok ellenőrzése
* kimenő adatok ellenőrése
* ok-hatás diagram (Cause effect graphing; ok-hatás analízis) (esetleg döntési táblák)
* ekvivalencia particionálás (Equivalence Class Partitioning - ECP)
* határ-érték elemzés
{{:oktatas:adatbázis-kezelés:ok-kovetkezmenydiagram_001.png|}}
==== Fehér-dobozos tesztelés ====
Főleg az adatbázis belső szerkezetével foglalkozik.
* mit kell újratervezni
* adatbázis függvények, triggerek, nézetek, SQL lekérdezések tesztelése
* érvényes adatmodellek, táblák és sémák ellenőrzése
* hivatkozási integritások ellenőrzése
* alapértelmezett értékek ellenőrzése
* döntések és utasítások lefedettségének ellenőrzése
===== WHODATE megközelítés =====
Honkongi Természettudományi és Technikai Egyetem, számítástechnikai tanszékén foglalkoznak a WHODATE megközelítéssel.
A WHODATE megközelítés esetén az SQL kéréseket átalakítjuk a relációs algebra egy-egy utasításának.
{{:oktatas:adatbázis-kezelés:whodate_megkozelites.png|}}
A relációs algebra műveletei:
* egy operandusú
* szelekció
* projekció
* kiterjesztés
* aggregáció
* csoportképzés
* két operandusú
* join
* metszet
* különbség
* unió
* osztás
===== Tesztprogramok =====
==== Funkció szerint ====
* [[http://dbunit.sourceforge.net/|DBUnit]] - A JUnit mintájára készült adatbázis-tesztelő keretrendszer
* [[http://smartbear.com/products/qa-tools/automated-testing-tools/|TestComplete]] - Funkcionális automatateszt
* [[http://www.sqledit.com/stress/|DTM DB Stress]] - Adatbázis teljesítményteszt
==== Egyéb ====
* Microsoft® SQL Server™ 2000 SQL Query Analyzer
* [[http://www.mysql.com/products/enterprise/query.html|MySQL Query Analyzer]]
* [[http://test4data.com/|Test4Data]]
===== Ubuntu és Debian =====
==== mariadb-test ====
apt install mariadb-test
A teszteszközök a következő helyre települnek:
/usr/share/mysql/mysql-test/
Pl.:
/usr/share/mysql/mysql-test/mysql-test-run.pl
/usr/share/mysql/mysql-test/mysql-stress-test.pl
==== sysbench ====
apt install sysbench
Teszttáblák elkészítése:
sysbench --test=oltp --oltp-table-size=1000000 \
--mysql-db=test --mysql-user=root --mysql-password=titok prepare
Azután a benchmark:
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test \
--mysql-user=root --mysql-password=titok --max-time=60 \
--oltp-read-only=on --max-requests=0 --num-threads=8 run
===== Forrás =====
* https://www2.cse.ust.hk/~scc/publ/CODAS99.pdf
* http://www.inf.unideb.hu/kmitt/konvkmitt/szoftverteszteles/book.xml.html
* https://phpunit.de/manual/3.8/en/database.html
* http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench
===== Irodalom =====
* Charles Bell: Expert MySQL
* http://it-ebooks.info/book/1978/