surfup

Veebikooli EdTech-platvorm

Nullist loodud QA-protsess: väljalasked ei lõhu enam tootmiskeskkonda

Haridus · Kvaliteedi tagamine · Testide automatiseerimine · Koormustestimine
Projekti taust

Klient on veebiõppeplatvorm: interaktiivsed tunnid, kodutööd, õpilaste ja vanemate isiklikud kontod ning veebimaksed. Ettevõttel on tugev hooajalisus: septembris lisandub kõige rohkem uusi õpilasi ning platvormi seisak õppeaasta esimestel nädalatel tähendab klientide jäädavat kaotust. Ettevõttesisest kvaliteedikontrolli (QA) meeskonda polnud; testimisega tegelesid arendajad muude ülesannete kõrvalt. Väljalaske-eelne regressioonitestimine võttis kolm päeva, kuid jättis ikkagi märkamata kriitilised stsenaariumid — makse, tunnile registreerumise ja klassiga liitumise. Klient pöördus meie poole pärast järjekordset intsidenti, mil makseviga läks koolile maksma osa suvel kogutud müügivihjetest.

01 · Ülesanne

Luua kvaliteedi tagamise protsess nullist:

äririskide järgi prioriseeritud testimisstrateegia, kriitiliste stsenaariumide automatiseerimine, kontrollide liitmine CI-sse ning koormustestimine enne septembrikuu tipphooaega. Piirang oli arendust katkestamata töötada: väljalasked jätkusid igal nädalal ning september ei saanud oodata.

02 · Tehtud töö

Alustasime riskianalüüsist, mitte automaattestidest: millised stsenaariumid lähevad kõige sagedamini katki ja kus on vea hind kõige suurem? Automatiseerimine järgis rangelt seda loendit.

  • Auditeerisime kvaliteeti: vaatasime üle viimase poole aasta vead, vestlesime meeskondadega ja kaardistasime kõige valusamad stsenaariumid — makse, tunnile registreerumine, klassiga liitumine ja vanemate teavitused.
  • Kirjutasime testimisstrateegia: testimistasemed, vastutusalad, funktsioonide valmimise määratlus ning veateadete protseduurid, mis kehtivad kõigile kolmele arendusmeeskonnale.
  • Automatiseerisime kriitilise teekonna: Playwrighti otsast lõpuni stsenaariumid veebiplatvormile, API-testid taustsüsteemile ja suitsutestide komplekt enne iga väljalaset.
  • Lisasime QA-väravad CI-sse: väljalase pole võimalik ilma edukate suitsutestideta, täielik regressioonitest käivitub igal ööl ning tulemused on kõigile meeskondadele GitLabis nähtavad.
  • Testisime k6-ga koormust: modelleerisime septembri tipuliiklust, leidsime kitsaskohad ja kõrvaldasime need koos taustsüsteemi meeskonnaga enne hooaega.
  • Andsime protsessi kliendile üle: dokumentatsioon, kord ja QA-inseneri koolitus automaattestide ning tarneahela kasutamiseks.

Oluline otsus oli seada prioriteedid äririskide, mitte „katvuse ilu“ järgi. Me ei püüdnud teadlikult sajaprotsendilist automatiseerimist: 75% kriitiliste stsenaariumide katvus andis suurema osa mõjust, sest kaitses just neid teekondi, mille kaudu platvorm teenib ja kaotab kliente. Ülejäänud osa kontrollitakse käsitsi ja uurimuslikult enne olulisi väljalaskeid.

03 · Tulemus

Peamine majanduslik mõju on vigade avastamise toomine varasemasse etappi: CI automaattestiga leitud viga maksab kümneid kordi vähem kui õpilase vanema poolt tootmiskeskkonnas märgatud viga. Platvorm alustas hooaega piisava töökindlusvaruga ning meeskonnad said võimaluse muudatusi sageli välja anda, kartmata „reedest efekti“. Lisaboonus oli ettevõtte usaldus: müügiosakond lubab partnerkoolidele nüüd ausalt, et platvorm peab registreerimise tipul vastu.

04 · Peamised tulemused
NäitajadTulemus
Kriitilised vead tootmiskeskkonnas5–7 kuus → 1–2 kvartalis
Väljalaske-eelne regressioonitestimine3 päeva käsitsi → 4 tundi automaattestidega
Septembri koormustippIntsidendid igal aastal → 0 intsidenti, jõudluse halvenemiseta
Vea avastamise hetkEnamasti tootmiskeskkonnas → Automaattestid leiavad enne väljalaset

Näitajad on üle kantud juhtumi algmaterjalidest. Periood on märgitud seal, kus see on allikas fikseeritud.

Neli kuud tööd
kriitilisi vigu kvartalis (varem 5–7 kuus)
1–2
regressioon automaattestidega (varem 3 päeva käsitsi)
4 h
võtmeskenaariumidest kaetud automaattestidega
75%
intsidente septembri tipul
0
Kontrollide katvus ja kiirus
Võtmeskenaariumid kaetud automaattestidega
Enne0%
Pärast75%
Kriitilised tootmisvead
Enne5–7 kuus
Pärast1–2 kvartalis
Väiksem on parem
Väljalaske-eelne regressioon
Enne3 päeva
Pärast4 tundi
Väiksem on parem

Illustratiivne skaala: kolm päeva teisendatakse 72 tunniks. Tulpade pikkuse jaoks teisendatakse vigade kuuvahemik kvartaliks, korrutades kolmega; võrreldakse ülemisi piire.

QA-väravad CI-s
  1. 01Commit
  2. 02Suitsutestide komplektKui testikomplekt pole edukas, väljalaset ei toimu
  3. 03VäljalaseIganädalane
  4. 04Öine käivitusTäielik regressioon
Järgmised sammud

Mida soovitame platvormi järgmiseks sammuks:

  • Visuaalne regressioonitestimine — tundide, e-kirjade ja isiklike kontode küljenduse automaatne kontroll.
  • Testandmete tehas — realistlike õpilaste, rühmade ja maksete genereerimine iga testkäivituse jaoks.
  • QA tootmiskeskkonnas — funktsioonilülitid ja järkjärgulised canary-väljalasked uute funktsioonide kasutuselevõtuks.
Tsitaat
Me ei karda enam väljalaskeid. Varem võis iga reede muutuda kaebuste uurimiseks; nüüd on tootmiskeskkonda avaldamine tavaline viieteistkümneminutiline protseduur.

— Veebikooli tehnoloogiajuht

Viimased materjalid

Kõik materjalid

SurfUpi praktilised artiklid ja juhendid.

Juhend · 10 min

„Mis on…“ lehed ja AI-vastused: kadunud klikid või langev nõudlus

Panga teatmejaotis kaotas 24% külastusi, kui nõudlus langes 13%. Kuidas eristada tehisintellekti ploki kaotatud klikke langevast nõudlusest ja seda mõõta.

Loe
Juhend · 8 min

Liiklus vähenes pärast Google’i uuendust

Kuidas teha kindlaks, kas liikluse langus tuleneb Google’i uuendusest, hooajalisusest või saidi rikkest. 2026. aasta uuenduste ajajoon, kuue küsimusega kontroll ja tegevuskava esimeseks 14 päevaks.

Loe
Juhend · 9 min

Nõudlus langes või sait kaotas: liikluse sidumine Wordstatiga

Hoiuste nõudlus langes 75%, liiklus 37%; kaartidel nõudlus −35%, liiklus −63%. Kuidas liiklust nõudlusega sobitada ja turu eest saiti mitte süüdistada.

Loe