Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Automated Testing of Database Schema Migrations
KTH, School of Electrical Engineering and Computer Science (EECS).
2019 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesis
Abstract [en]

Modern applications use databases, and the majority of them are relational databases, which use schemas to impose data integrity constraints. As applications change, so do their databases. Database schemas are changed using migrations. Certain conditions can result in migrations failing in production environments, leading to a broken database state and testing can be problematic without accessing production data which can be sensitive.Two migration validation methods were proposed and implemented to automatically reject invalid migrations that are not compatible with the database state. The methods were based on, and compared to, a default method that used Liquibase to structure and perform migrations. The assertion method used knowledge of what a valid state would look like to generate pre-conditions from assertions to verify that the database’s state matched expectations and that the migrations were compatible with a database’s state prior to migration. The schema method, used a copy of the production database’s schema to perform migrations on an empty database in order to test the compatibility of the old and new schemas. 108 test cases consisting of a migration and a database state were used to test all methods. Both valid and invalid test cases that were not compatible with the database’s state were used. The distribution of aborted, failed, and successful migrations were analyzed along with the automation, traceability, reliability, database interoperability, preservability, and scalability for each method.Both the assertion method and the schema method could be used to stop most of the invalid migrations without access to the production data. A combination of the assertion method and the schema method would result in only 2/108 migrations failing and could reduce the failure rate even further through using a schema to reduce complexity for uniqueness constraints and to improve support for handling data type conversions.

Abstract [sv]

Moderna applikationer använder ofta relationsdatabaser som har en strikt regeluppsättning för att garantera dataintegritet. När applikationerna förändras måste även deras regeluppsättningar göra det. Omständigheter kan leda till att databasförändringar inte går att genomföra i produktionsmiljön, vilket resulterar i ett trasigt databastillstånd. Testning av förändringar kan vara problematiskt utan tillgång till produktionsdata, men detta kan vara svårt då produktionsdatan i sig kan vara känslig.Två valideringsmetoder föreslogs och implementerades för att automatiskt stoppa ogiltiga förändringar som inte är kompatibla med databasens tillstånd. Metoderna grundades i, och jämfördes med, en grundmetod som använde Liquibase för att strukturera och genomföra databasförändringar. Påståendemetoden använde kunskap kring vad som är ett giltigt tillstånd för att generera villkorssatser som verifierar att databasens tillstånd matchar förväntningarna innan förändringen genomförs. Regelmetoden använde en kopia av produktionsdatabasens regeluppsättning för att exekvera förändringen på en tom databas för att testa kompatibiliteten mellan den gamla regeluppsättningen och den nya. 108 testfall användes och bestod av förändringar samt tillstånd. Både giltiga och ogiltiga testfall som inte var kompatibla med databasens tillstånd användes. Distributionen av avbrutna, misslyckade och lyckade förändringar analyserades i faktorer som automation, spårbarhet, pålitlighet, databasinteroperabilitet, konserverbarhet samt skalbarhet för varje metod.Både påståendemetoden och regelmetoden kunde användas för att stoppa de flesta ogiltiga förändringarna utan tillgång till produktionsdata. En kombination av påståendemetoden och regelmetoden skulle resultera i att enbart 2/108 förändringar misslyckades och kunna nå ännu lägre felfrekvens genom att analysera databasschemat för att reducera komplexiteten som krävs för vissa unikhetskrav och vidare öka stödet för konvertering av datatyper.

Place, publisher, year, edition, pages
2019. , p. 94
Series
TRITA-EECS-EX ; 2019:470
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-255012OAI: oai:DiVA.org:kth-255012DiVA, id: diva2:1337255
Examiners
Available from: 2019-07-12 Created: 2019-07-12 Last updated: 2019-07-12Bibliographically approved

Open Access in DiVA

fulltext(783 kB)19 downloads
File information
File name FULLTEXT01.pdfFile size 783 kBChecksum SHA-512
bf9d1f00cdd90d438c5f149ace4f8db57ef4beb53118525bb04a5d7f25d044e817dce93fe2fb7b1101e8e3d2c050f28459deb28147a58c9410833b13571e7e22
Type fulltextMimetype application/pdf

By organisation
School of Electrical Engineering and Computer Science (EECS)
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 19 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 112 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf