Adatbázis-tesztelési útmutató
Mi az adatbázis tesztelés?
Adatbázis tesztelése egy olyan szoftvertesztelés, amely ellenőrzi a tesztelt adatbázis sémáját, tábláit, triggereit stb. Ezenkívül ellenőrzi az adatok integritását és konzisztenciáját. Ez magában foglalhat összetett lekérdezések létrehozását az adatbázis betöltéséhez/terheléses teszteléséhez és a válaszkészség ellenőrzéséhez.
Miért fontos az adatbázis tesztelése?
Az adatbázis tesztelése fontos in szoftver tesztelés mert biztosítja, hogy az adatbázisban fogadott és tárolt adatértékek és információk érvényesek-e vagy sem. Az adatbázisteszt segít megmenteni az adatvesztést, elmenti a megszakadt tranzakciós adatokat, és megakadályozza az információkhoz való jogosulatlan hozzáférést. Az adatbázis minden szoftveralkalmazás számára fontos, ezért a tesztelőknek jó SQL-ismerettel kell rendelkezniük az adatbázis teszteléséhez.
A GUI-ra általában a teszt- és fejlesztőcsapat tagjai adják a legnagyobb hangsúlyt, mivel történetesen a grafikus felhasználói felület az alkalmazás legláthatóbb része. Azonban az is fontos, hogy érvényesítsük azokat az információkat, amelyek az alkalmazás szíve, más néven ADATBÁZIS.
Tekintsünk egy banki alkalmazást, amelyben a felhasználó tranzakciókat hajt végre. Az adatbázistesztelés vagy a DB tesztelés szempontjából a következő dolgok fontosak:
- Az alkalmazás a tranzakciós információkat az alkalmazás adatbázisában tárolja, és helyesen jeleníti meg a felhasználó számára.
- A folyamat során semmilyen információ nem vész el.
- Az alkalmazás nem menti el a részben végrehajtott vagy megszakított műveletekre vonatkozó információkat.
- A felhasználó adataihoz illetéktelen személyek nem férhetnek hozzá.
A fenti célok elérése érdekében adatellenőrzést vagy adattesztelést kell alkalmaznunk.
A felhasználói felület tesztelése és az adattesztelés közötti különbségek
Felhasználói felület tesztelése | Adatbázis vagy adattesztelés |
---|---|
Az ilyen típusú tesztelést grafikus felhasználói felület tesztelésének vagy előtér-tesztelésnek is nevezik. | Az ilyen típusú tesztelést háttértesztelésnek vagy adattesztelésnek is nevezik. |
Ez a fajta tesztelés főként az összes tesztelhető elemmel foglalkozik, amely nyitva áll a felhasználó számára megtekintésre és interakcióra, mint például az űrlapok, a prezentáció, a grafikonok, a menük és a jelentések stb. (a VB, VB.net, V segítségével készültC++, Delphi – kezelőfelületi eszközök) | Ez a fajta tesztelés főként az összes tesztelhető elemmel foglalkozik, amelyek általában el vannak rejtve a felhasználó elől a nézők számára. Ide tartoznak a belső folyamatok és a tároláshoz hasonlók Assembly, DBMS tetszik Oracle, SQL Server, MYSQL stb. |
Ez a fajta tesztelés magában foglalja a
|
Az ilyen típusú tesztelés a következőket tartalmazza:
|
A tesztelőnek alaposan ismernie kell az üzleti követelményeket, valamint a fejlesztőeszközök használatát, valamint az automatizálási keretrendszerek és eszközök használatát. | A háttérteszt elvégzéséhez a tesztelőnek erős háttérrel kell rendelkeznie az adatbázis-kiszolgáló és a Structured Query Language fogalmai terén. |
Az adatbázistesztelés típusai
Az adatbázistesztelés 3 típusa
Ebben az adatbázistesztelési oktatóanyagban egyenként megvizsgáljuk az egyes típusokat és azok altípusait.
Strukturális adatbázis tesztelése
Strukturális adatbázis tesztelése egy adatbázis-tesztelési technika, amely az adattáron belül minden olyan elemet érvényesít, amelyet főként adattárolásra használnak, és amelyeket nem engednek meg közvetlenül a végfelhasználók. Az adatbázis-kiszolgálók érvényesítése szintén fontos szempont a strukturális adatbázis-tesztelés során. A tesztelés sikeres befejezéséhez az SQL-lekérdezések elsajátítására van szükség.
Mi az a séma tesztelés?
Sématesztelés Az adatbázisteszt során az adatbázishoz kapcsolódó különféle sémaformátumokat érvényesíti, és ellenőrzi, hogy a táblák/nézetek/oszlopok leképezési formátumai kompatibilisek-e a felhasználói felület leképezési formátumaival. A sématesztelés fő célja annak biztosítása, hogy az előtér és a háttér közötti sémaleképezés hasonló legyen. Így leképezési tesztelésnek is nevezik.
Beszéljük meg a séma tesztelésének legfontosabb ellenőrzési pontjait.
- Az adatbázisokhoz társított különféle sémaformátumok érvényesítése. Sokszor előfordulhat, hogy a táblázat leképezési formátuma nem kompatibilis az alkalmazás felhasználói felület szintjén lévő leképezési formátummal.
- Leképezés nélküli táblák/nézetek/oszlopok esetén van szükség ellenőrzésre.
- Azt is ellenőrizni kell, hogy a heterogén adatbázisok egy környezetben összhangban vannak-e az általános alkalmazásleképezéssel.
Nézzünk meg néhány érdekes adatbázis-tesztelési eszközt is az adatbázissémák érvényesítésére.
- Az Ant-ba integrált DBUnit nagyon alkalmas leképezési tesztelésre.
- Az SQL Server lehetővé teszi a tesztelők számára, hogy egyszerű lekérdezések írásával, és nem kódon keresztül ellenőrizhessék és lekérdezhessék az adatbázis sémáját.
Például, ha a fejlesztők módosítani akarnak egy táblaszerkezetet vagy törölni szeretnének, akkor a tesztelőnek biztosítania kell, hogy az adott táblát használó összes tárolt eljárás és nézet kompatibilis legyen az adott változtatással. Egy másik példa lehet, hogy ha a tesztelők 2 adatbázis között szeretnének sémaváltozásokat ellenőrizni, akkor ezt egyszerű lekérdezések segítségével megtehetik.
Adatbázis táblázat, oszlopos tesztelés
Nézzük meg az adatbázis- és oszloptesztelés különféle ellenőrzéseit.
- Az adatbázismezők és oszlopok leképezése a háttérben kompatibilis-e az előtérben lévő leképezésekkel?
- Az adatbázismezők és oszlopok hosszának és elnevezési konvenciójának érvényesítése a követelményeknek megfelelően.
- A fel nem használt/leképezetlen adatbázistáblák/oszlopok meglétének ellenőrzése.
- A kompatibilitás ellenőrzése a
- adattípus
- mezőhosszak
a háttéradatbázis oszlopainak az alkalmazás elülső végén lévő oszlopaival.
- Az adatbázismezők lehetővé teszik-e a felhasználó számára, hogy megadja-e a kívánt felhasználói beviteleket az üzleti követelmények specifikációs dokumentumai szerint.
Kulcsok és indexek tesztelése
A kulcsok és indexek fontos ellenőrzése –
- Ellenőrizze, hogy a szükséges
- Elsődleges kulcs
- Idegen kulcs
megszorításokat hoztak létre a szükséges táblákon.
- Ellenőrizze, hogy az idegen kulcsokra vonatkozó hivatkozások érvényesek-e.
- Ellenőrizze, hogy az elsődleges kulcs és a megfelelő idegen kulcs adattípusa megegyezik-e a két táblázatban.
- Ellenőrizze, hogy az összes kulcsnál és indexnél betartották-e a szükséges elnevezési szabályokat.
- Ellenőrizze a szükséges mezők és indexek méretét és hosszát.
- Akár a szükséges
- Clustered indexek
- Nem Clustered indexek
az üzleti követelmények által meghatározott szükséges táblákon lettek létrehozva.
Tárolt eljárások tesztelése
A tárolt eljárások ellenőrzésére szolgáló fontos tesztek a következők:
- A fejlesztőcsapat elfogadta-e a szükséges A) szabványos kódolási konvenciókat és B) a kivétel- és hibakezelést. A tesztelt alkalmazás összes moduljához tartozó összes tárolt eljáráshoz.
- Vajon a fejlesztőcsapat lefedett-e minden feltételt/hurkot azáltal, hogy a szükséges bemeneti adatokat alkalmazta a tesztelt alkalmazásra?
- Megfelelően alkalmazta-e a fejlesztőcsapat a TRIM műveletet, amikor az adatokat az adatbázisban lévő szükséges táblákból kérték le?
- A Tárolt Eljárás kézi végrehajtása biztosítja-e a végfelhasználó számára a kívánt eredményt?
- A Tárolt eljárás kézi végrehajtása biztosítja-e a táblamezők frissítését a tesztelt alkalmazás által megkövetelt módon?
- A tárolt eljárások végrehajtása lehetővé teszi-e a szükséges triggerek implicit meghívását?
- A fel nem használt tárolt eljárások meglétének ellenőrzése.
- Az Allow Null feltétel érvényesítése, amely adatbázis szinten végezhető el.
- Annak ellenőrzése, hogy az összes tárolt eljárás és funkció sikeresen végrehajtásra került, amikor a tesztelt adatbázis üres.
- A tárolt eljárási modulok átfogó integrációjának érvényesítése a tesztelt alkalmazás követelményei szerint.
Néhány hasznos adatbázistesztelő eszköz a tárolt eljárások tesztelésére: LINQ, SP Test Tool stb.
Trigger tesztelése
- Betartották-e a szükséges kódolási konvenciókat a triggerek kódolási fázisa során?
- Ellenőrizze, hogy a megfelelő DML-tranzakciókhoz végrehajtott triggerek teljesítették-e a szükséges feltételeket.
- Az eseményindító megfelelően frissíti-e az adatokat a végrehajtásuk után?
- A szükséges frissítés/beszúrás/törlés ellenőrzése aktiválja a funkcionalitást a tesztelt alkalmazás területén.
Adatbázis szerver ellenőrzések
- Ellenőrizze az adatbázis-kiszolgáló konfigurációit az üzleti követelményeknek megfelelően.
- Ellenőrizze a szükséges felhasználó jogosultságát, hogy csak olyan szintű műveleteket hajtson végre, amelyeket az alkalmazás megkövetel.
- Ellenőrizze, hogy az adatbázis-kiszolgáló képes-e kielégíteni az üzleti követelmények specifikációiban meghatározott maximális számú felhasználói tranzakció igényeit.
Funkcionális adatbázis tesztelése
Funkcionális adatbázis tesztelése Az adatbázis-teszt egy olyan típusa, amelyet az adatbázis funkcionális követelményeinek a végfelhasználó szemszögéből történő érvényesítésére használnak. A funkcionális adatbázis tesztelésének fő célja annak tesztelése, hogy a végfelhasználók által az adatbázishoz kapcsolódó tranzakciók és műveletek az elvárásoknak megfelelően működnek-e vagy sem.
Az alábbiakban felsoroljuk azokat az alapvető feltételeket, amelyeket be kell tartani az adatbázis-ellenőrzéshez.
- A mező kötelező-e, miközben NULL értékeket engedélyez a mezőben?
- Az egyes mezők hossza megfelelő méretű-e?
- Vajon minden hasonló mezőnek ugyanaz a neve a táblákban?
- Vannak-e számított mezők az adatbázisban?
Ez a konkrét folyamat a mezőleképezések érvényesítése a végfelhasználó szemszögéből. Ebben a konkrét forgatókönyvben a tesztelő egy műveletet hajt végre az adatbázis szintjén, majd navigál a megfelelő felhasználói felület elemhez, hogy megfigyelje és érvényesítse, hogy a megfelelő mezőellenőrzések megtörténtek-e vagy sem.
Ugyancsak meg kell tenni azt az ellenkező feltételt is, amikor a tesztelő először a felhasználói felületen hajtja végre a műveletet, majd ugyanezt a háttérből érvényesíti.
Az adatok integritásának és konzisztenciájának ellenőrzése
A következő ellenőrzések fontosak
- Az adatok logikailag jól szervezettek-e?
- A táblázatokban tárolt adatok helyesek és megfelelnek-e az üzleti követelményeknek?
- Van-e szükségtelen adat a vizsgált alkalmazásban?
- A felhasználói felületről frissített adatok tekintetében a követelményeknek megfelelően tárolták-e az adatokat?
- A TRIM műveletek végrehajtottak-e az adatokon, mielőtt az adatokat beszúrták volna a tesztelt adatbázisba?
- A tranzakciókat az üzleti követelményeknek megfelelően hajtották-e végre, és az eredmények helyesek-e vagy sem?
- Megfelelően rögzítették-e az adatokat, ha a tranzakció sikeresen lezajlott?
- Sikeresen megtörtént-e az adatok visszagörgetése, ha a tranzakciót a végfelhasználó nem hajtotta végre sikeresen?
- Megtörtént-e az adatok visszagörgetése, ha a tranzakció végrehajtása nem sikerült, és több heterogén adatbázis is érintett a kérdéses tranzakcióban?
- Az összes tranzakció a rendszerüzleti követelményekben meghatározott tervezési eljárásokkal valósult meg?
Bejelentkezés és felhasználói biztonság
A bejelentkezési és felhasználói biztonsági hitelesítési adatok érvényesítésénél a következő dolgokat kell figyelembe venni.
- Az alkalmazás megakadályozza-e a felhasználót abban, hogy továbblépjen az alkalmazásban, ha a
- érvénytelen felhasználónév, de érvényes jelszó
- érvényes felhasználónév, de érvénytelen jelszó.
- érvénytelen felhasználónév és érvénytelen jelszó.
- A felhasználó csak azokat a konkrét műveleteket hajthatja végre, amelyeket az üzleti követelmények határoznak meg?
- Az adatok védve vannak-e az illetéktelen hozzáférés ellen?
- Vannak-e különböző felhasználói szerepkörök különböző jogosultságokkal?
- Vajon minden felhasználó rendelkezik-e az üzleti specifikációk által megkövetelt hozzáférési szintekkel a megadott adatbázishoz?
- Ellenőrizze, hogy az olyan érzékeny adatok, mint a jelszavak, hitelkártyaszámok titkosítva vannak-e, és nem tárolódnak-e egyszerű szövegként az adatbázisban. Jó gyakorlat annak biztosítása, hogy minden fióknak olyan jelszavakkal kell rendelkeznie, amelyek bonyolultak és nem könnyen kitalálhatók.
Nem funkcionális tesztelés
Nem funkcionális tesztelés az adatbázisteszttel összefüggésben az üzleti követelményeknek megfelelően különféle kategóriákba sorolhatók. Ezek lehetnek terhelési tesztek, stressztesztek, Biztonsági tesztelés, Használhatósági tesztelésés Kompatibilitási tesztelés, stb. A teljesítménytesztek körébe sorolható terheléses, valamint stresszteszt két konkrét célt szolgál a nem funkcionális tesztelés szerepét illetően.
Kockázat számszerűsítése– A kockázat számszerűsítése segíti az érintetteket abban, hogy megbizonyosodjanak a rendszer különböző válaszidejére vonatkozó követelményekről a szükséges terhelési szintek mellett. Bármelyiknek ez az eredeti szándéka minőségbiztosítás feladat. Meg kell jegyeznünk, hogy a terheléses tesztelés nem közvetlenül mérsékli a kockázatot, hanem a kockázatazonosítási és kockázatszámítási folyamatokon keresztül korrekciós lehetőségeket és lendületet ad a kockázatot mérséklő kárelhárításhoz.
Minimális rendszerszükséglet– Az a minimális rendszerkonfiguráció, amely lehetővé teszi, hogy a rendszer megfeleljen az érintettek formálisan megfogalmazott teljesítmény-elvárásainak. Így minimalizálható a külső hardver, szoftver és a kapcsolódó birtoklási költség. Ez a különleges követelmény az általános üzleti optimalizálási követelményként sorolható be.
Terhelésvizsgálat
Minden terhelési vizsgálat célját egyértelműen meg kell érteni és dokumentálni kell. A következő típusú konfigurációk kötelezőek terhelés tesztelése.
- A leggyakrabban használt felhasználói tranzakciók hatással lehetnek az összes többi tranzakció teljesítményére, ha nem hatékonyak.
- Legalább egy nem szerkesztett felhasználói tranzakciót tartalmaznia kell a végső tesztcsomagnak, hogy az ilyen tranzakciók végrehajtása megkülönböztethető legyen a többi bonyolultabb tranzakciótól.
- A fontosabb, a rendszer alapvető céljait elősegítő tranzakciókat be kell vonni, mivel értelemszerűen ezeknek a tranzakcióknak a meghiúsulása van a legnagyobb hatással.
- Legalább egy szerkeszthető tranzakciónak szerepelnie kell ahhoz, hogy teljesítmény Az ilyen ügyletek megkülönböztethetők más tranzakcióktól.
- Optimális válaszidő hatalmas számú virtuális felhasználó mellett, minden leendő követelménynek megfelelően.
- Hatékony idők különböző rekordok lekérésére.
Fontos terheléstesztelő eszközök LoadRunner Professional, nyerj futó és JMeter.
Mi az adatbázis stressztesztelés?
Adatbázis stressztesztelés egy olyan tesztelési módszer, amelyet az adatbázis-rendszer terheléses tesztelésére használnak olyan nagy terhelés mellett, amely egy bizonyos ponton meghibásodik. Ez segít azonosítani az adatbázis-rendszer töréspontját. Megfelelő tervezést és erőfeszítéseket igényel az erőforrások túlzott felhasználásának elkerülése érdekében. Adat stresszteszt kínzó tesztelésnek vagy fáradtságtesztnek is nevezik.
Fontos stressz-tesztelési eszközök LoadRunner Professional és a JMeter.
A leggyakoribb problémák az adatbázis tesztelése során
A significant amount of overhead could be involved to determine the state of the database transactions
Megoldás: Az átfogó folyamattervezést és időzítést úgy kell megszervezni, hogy ne jelenjenek meg idő- és költségalapú problémák.
New test data have to be designed after cleaning up of the old test data.
Megoldás: A tesztadatok generálására vonatkozó előzetes tervnek és módszertannak kéznél kell lennie.
An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.
Megoldás: Az SQL lekérdezések karbantartása és folyamatos frissítése a teljes tesztelési folyamat jelentős részét képezi, aminek a teljes tesztelési folyamat részét kell képeznie. tesztelési stratégia.
The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.
Megoldás: Finom egyensúlynak kell lennie a minőség és a teljes projekt ütemezési időtartama között.
Az adatbázisteszttel kapcsolatos mítoszok vagy tévhitek
Database Testing requires plenty of expertise and it is a very tedious job
Valóság: A hatékony és hatékony adatbázistesztelés a szoftvertesztelésben hosszú távú funkcionális stabilitást biztosít az alkalmazás egészének, ezért kemény munkát kell végezni mögötte.
Database testing adds extra work bottleneck
Valóság: Éppen ellenkezőleg, az adatbázis-tesztelés több értéket ad az általános munkához azáltal, hogy feltárja a rejtett problémákat, és így proaktívan segíti az általános alkalmazás fejlesztését.
Database testing slows down the overall development process
Valóság: A jelentős mennyiségű adatbázisteszt segít az adatbázis-alkalmazás minőségének általános javításában.
Database testing could be excessively costly
Valóság: Az adatbázis-tesztelés minden kiadása hosszú távú befektetés, amely az alkalmazás hosszú távú stabilitásához és robusztusságához vezet. Így az adatbázis tesztelésére fordított kiadás ill SQL Tesztelés szükséges.
Best Practices
- Minden adatot, beleértve a metaadatokat és a funkcionális adatokat is, érvényesíteni kell a követelményspecifikációs dokumentumokkal való leképezésüknek megfelelően.
- Ellenőrzése a teszt adat amelyet a fejlesztőcsapat / vele egyeztetve hozott létre, érvényesíteni kell.
- A kimeneti adatok validálása manuális és automatizálási eljárásokkal egyaránt.
- Különböző technikák, például az ok-okozati grafikon, az ekvivalencia-felosztási technika és a határérték-elemzési technika alkalmazása a szükséges vizsgálati adatfeltételek generálásához.
- A szükséges adatbázistáblák hivatkozási integritásának érvényesítési szabályait is érvényesíteni kell.
- Az alapértelmezett táblaértékek kiválasztása az adatbázis-konzisztencia ellenőrzéséhez nagyon fontos fogalom, hogy a naplóesemények sikeresen hozzáadásra kerültek-e az adatbázisba az összes szükséges bejelentkezési eseményhez
- Az ütemezett munkák időben végrehajtódnak?
- Időben készítsen biztonsági másolatot az adatbázisról.
Ellenőrizze még- Adatbázistesztelés Interjú kérdések és válaszok