Automatisoitu ohjelmistotestaus: 2x lisäys toiminnallisuuden julkaisunopeuteen.

Innowise toteutettu automatisoitu ohjelmistotestaus varmistaa, että uusien järjestelmätoimintojen integrointi ei vaaranna nykyisten ominaisuuksien eheyttä.

Asiakas

Teollisuus
Tietotekniikka
Alue
Sveitsi
Asiakas vuodesta
2023

Asiakkaamme on pilvipohjaisten toiminnanohjausratkaisujen toimittaja, joka on suunniteltu vahvistamaan toiminnan tehokkuutta ja joustavuutta toimintahäiriöitä vastaan.

Yksityiskohtaisia tietoja asiakkaasta ei voida luovuttaa NDA:n ehtojen mukaisesti.

Haaste

Toiminnanohjausjärjestelmän vakauden tarkistaminen uusien toimintojen integroinnin jälkeen.

Asiakkaamme otti käyttöön uusia toimintoja ERP-järjestelmässään ja integroi ne olemassa olevaan järjestelmään. Hän luotti Innowise:hen arvioidessaan käyttöönotetun ohjelmistorakennelman vakautta. Toimitimme automatisoidut ohjelmistotestauspalvelut, jonka tavoitteena on tunnistaa järjestelmän mahdolliset ongelmat ja korjata ne.

Ratkaisu

Automaattisten ohjelmistotestauspalvelujen käyttö mahdollisten ongelmakohtien tunnistamiseksi ja ratkaisemiseksi.

Innowise paransi asiakkaan toiminnanohjausjärjestelmää monipuolisella lähestymistavalla automatisoituun ohjelmistotestaukseen. Se sisälsi savu-, toiminnallisen ja regressiotestauksen, jotka kaikki toteutettiin jatkuvan integroinnin/jatkuvan toimituksen (CI/CD) putkessa. Savutestausta käytettiin keskeisten toiminnallisten ominaisuuksien vakauden nopeaan tarkistamiseen, kun taas toiminnallinen testaus oli elintärkeää kunkin ominaisuuden oikeellisuuden tutkimisessa. Regressiotestaus oli ratkaisevan tärkeää sen varmistamiseksi, että uudet päivitykset eivät vaikuttaneet haitallisesti olemassa oleviin toiminnallisuuksiin. Näiden testausmenetelmien integrointi CI/CD-putkeen virtaviivaisti kehitysprosessia. Tämä lähestymistapa mahdollisti ongelmien nopean tunnistamisen ja ratkaisemisen ja varmisti vankkojen ja laadukkaiden ominaisuuksien johdonmukaisen käyttöönoton ERP-järjestelmässä.

Testitapausten arviointi automatisointia varten

Aluksi meidän tehtävämme oli käydä läpi manuaalisten testaajien laatimat testitapaukset. Ohjelmistotestauksen laajaan taustaan tukeutuen perehdyimme jokaiseen tapaukseen ja suoritimme manuaalisesti kunkin testitapauksen vaiheet arvioidaksemme sen monimutkaisuutta ja automatisoitavuutta. Tavoitteenamme oli määrittää tehokkain tapa automatisoida toistuvia ja aikaa vieviä tehtäviä heikentämättä testitulosten tarkkuutta.

Savutestauksen toteuttaminen

Testaajamme perustivat kokoelman ennalta tallennettuja savutestejä, jotka käynnistettiin jokaista uutta rakennetta vastaan. Nämä testit olivat välttämättömiä, jotta voitiin varmistaa, että ohjelmiston tärkeimmät toiminnot toimivat, ja varmistaa johdonmukaisuus ja perusteellisuus. Jos automaattinen testi havaitsi ongelman, se ilmoitti siitä välittömästi tiimillemme, jolloin ongelma voitiin tunnistaa nopeasti ja ryhtyä toimiin.

Prosessimme joustavuus antoi tiimillemme mahdollisuuden puuttua nopeasti kaikkiin rakentamisen aikana ilmenneisiin ongelmiin. Toteutimme tarvittavat mukautukset nopeasti ja otimme rakennuksen uudelleen käyttöön ilman viivytyksiä varmistaen, että häiriöt jäivät mahdollisimman vähäisiksi.

Toiminnallisen testauksen sisällyttäminen jokaiseen sprinttiin

Siirryimme saumattomasti savutestien laaja-alaisesta todentamisesta kohdennettuun ja huolelliseen toiminnalliseen testaukseen. Näin varmistettiin, että jokainen uusi päivitys oli tehokas erillään ja sulautui saumattomasti vakiintuneisiin ohjelmistokomponentteihin. Suoritimme toiminnallisia testejä joka sprintissä, jotta jokainen kehityskohde arvioitiin tiukasti, mikä säilytti ohjelmiston yleisen laadun ja yhtenäisyyden.

Ohjelmiston regressiotestaus

Noudatimme virtaviivaista mutta perusteellista prosessia, kun toteutimme seuraavat toimet automatisoitu regressiotestaus. Tiimimme perusti testausympäristön, joka vastasi todellisia tuotanto-olosuhteita, jotta tulokset olisivat mahdollisimman tarkkoja. Seleniumin avulla automatisoimme regressiotestiskriptejä ja lisäsimme merkittävästi tehokkuutta, mikä on ratkaiseva tekijä monimutkaisissa järjestelmissä.

Kun nämä skriptit oli automatisoitu, ajoimme ne viimeisintä versiota vastaan tarkistaaksemme epäjohdonmukaisuudet tai virheet. Testien suorittamisen jälkeen analysoimme tulokset perusteellisesti ja havaitsimme kaikki esiin nousseet virheet ja ongelmat.

Jos havaitsimme ongelmia, korjasimme ne välittömästi muokkaamalla koodia ja suorittamalla testit uudelleen varmistaaksemme korjausten tehokkuuden. Tämä testauksen, analysoinnin ja hiomisen sykli oli jatkuva jokaisessa uudessa ohjelmistopäivityksessä, millä varmistettiin ohjelmiston vakaus ja suunniteltu toimivuus. Tämä tehokas lähestymistapa regressiotestaukseen oli avainasemassa ohjelmiston luotettavuuden ja suorituskyvyn ylläpitämisessä, mikä vähensi virheiden riskiä ja tarjosi sujuvan käyttökokemuksen.

Jatkuvan integroinnin/jatkuvan toimituksen (CI/CD) putki.

Tiukan testausprosessimme lisäksi olemme myös integroineet testit jatkuvaan integrointiin/jatkuvaan toimitukseen (CI/CD), mikä parantaa kehityssyklin tehokkuutta ja reagointikykyä. Hyödynsimme Allure-työkalua yksityiskohtaiseen raportointiin, joka antoi selkeän näkemyksen testituloksista. Tämän integroinnin ansiosta pystyimme perustamaan automaattisen järjestelmän, jossa testit käynnistettiin joka ilta. Tämä yöllinen testausrutiini varmisti, että kaikki uudet muutokset arvioitiin välittömästi, mikä mahdollisti ongelmien nopean tunnistamisen ja ratkaisemisen. Alluren raporttien sisällyttäminen CI/CD-putkeen tarkoitti, että tiimimme sai kattavat testitiedot käyttöönsä joka aamu, mikä tehosti päätöksentekoa ja piti yllä jatkuvaa keskittymistä laatuun ja vakauteen. Tämä integrointi nopeutti testausprosessiamme ja vahvisti jokaisen toimittamamme ohjelmistorakennuksen luotettavuutta.

CI/CD-putken yksityiskohtaiset vaiheet:

  • Koodi: Kehittäjät kirjoittivat ja tarkensivat koodia varmistaen, että se täytti toiminnallisuuden ja suunnittelun standardimme.
  • Sitoumus: Tämän jälkeen toimitimme päivitetyn koodin versionhallintajärjestelmään, mikä merkitsi ensimmäistä tarkistuspistettä putkessa.
  • Rakenna: Tämä sitoutunut koodi kävi läpi rakentamisprosessin, jossa se muunnettiin ajettavaan muotoon, joka oli valmis testausta varten.
  • Yksikkötestit: Teimme rakentamiselle yksikkötestit, joissa yksittäiset komponentit testattiin oikeiksi. Näin varmistettiin, että jokainen komponentti toimi moitteettomasti.
  • Savukokeet: Yksikkötestien jälkeen teimme savutestejä, joilla varmistimme nopeasti, että kriittiset toiminnot toimivat odotetulla tavalla.
  • Sitoumus: Savutestien jälkeen koodi siirrettiin uudelleen versionhallintajärjestelmään, ja siihen sisällytettiin testien jälkeen tehdyt muutokset.
  • Arvostelu: Tarkistimme jokaisen sitoumuksen perusteellisesti ja varmistimme, että muutokset noudattivat laatustandardejamme ja olivat linjassa projektin tavoitteiden kanssa.
  • Lavastus: Rakennelma siirrettiin tuotantoympäristöön, joka muistutti tarkasti tuotantoympäristöä, jatkotestausta varten.
  • Järjestelmätestit: Staging-tilassa suoritimme kattavia järjestelmätestejä validoidaksemme rakennelman ympäristössä, joka simuloi todellista käyttöä.
  • Tuotanto: Kun rakennelma oli läpäissyt onnistuneesti kaikki testausvaiheet, se otettiin käyttöön tuotantoympäristöön, jolloin se oli loppukäyttäjien käytettävissä.

Teknologiat

Python, Pytest, Selenium, Allure
Java, Spring, Hibernate

VSC

Git, Gitlab

AWS Grafana IAM, SNS, SQS, KMS, RDS(PostgreSQL), S3, SES

Gitlab, Docker, Docker Compose

Prosessi

Ketterät menetelmät ja sprinttien rakenne

Hankkeessamme noudatimme tiukasti ketteriä menetelmiä ja suunnittelimme kehitysprosessin kahden viikon sprintteihin. Tämän lähestymistavan ansiosta pystyimme pilkkomaan projektin hallittaviin osiin ja varmistamaan johdonmukaisuuden ja tehokkuuden jokaisessa vaiheessa.

Tehtävien hallinta ja tiimiyhteistyö

Kunkin sprintin alussa määrittelimme selkeät tavoitteet ja tehtävät, joita seurattiin Jiran avulla. Tämän työkalun avulla tiimimme pysyi linjassa ja aikataulussa. Emme käyttäneet sitä pelkästään tehtävien seurantaan vaan myös yhteistyön ja viestinnän keskuksena, jotta jokainen tiimin jäsen oli aina ajan tasalla viimeisimmästä kehityksestä ja painopisteistä.

Sprintin tarkastelu ja yksityiskohtainen raportointi

Kun lähestyimme kunkin sprintin loppua, painopisteemme siirtyi työmme yhdistämiseen ja sprinttiarvioinnin valmisteluun. Laadimme huolellisesti yksityiskohtaisia raportteja, joissa korostettiin testauksen kattavuutta ja tuloksia. Nämä raportit olivat enemmän kuin pelkkä yhteenveto suoritetuista tehtävistä, ne sisälsivät syvällisen analyysin siitä, mitä olimme saavuttaneet, mitä haasteita kohtasimme ja miten selvisimme niistä. Ne sisälsivät myös palautetta testausprosesseistamme ja mahdolliset opit, joita voitiin hyödyntää seuraavassa sprintissä.

Joukkue

3

AQA Engineers

1

DevOps Engineer

Tulokset

Nopeutettu ominaisuuksien käyttöönotto ja 50% tuotantovirheiden vähentäminen.

Automatisoidun testauksen toteuttaminen asiakkaamme toiminnanohjausjärjestelmään johti huomattaviin parannuksiin ja tehokkuuteen:

  • Uusien toiminnallisuuksien nopeampi julkaisu: automatisoidun testauksen ansiosta uudet toiminnallisuudet julkaistiin kaksi kertaa nopeammin kuin aiemmassa manuaalisessa prosessissa.
  • Vikojen vähentäminen: CI/CD:n integrointi vähensi tuotantoon päätyvien virheiden määrää 50%, mikä paransi merkittävästi ohjelmiston luotettavuutta.

Tämän myönteisen lopputuloksen vuoksi asiakkaamme on ilmaissut innostuneisuutensa yhteistyöstämme. Hän tunnustaa sen arvon, jonka asiantuntemuksemme ja huipputeknologian käyttöönotto tuovat hänen liiketoiminnalleen. Jatkossa teemme tiivistä yhteistyötä asiakkaamme kanssa, jotta voimme hyödyntää saavutettuja tuloksia ja tutkia uusia mahdollisuuksia parantaa heidän järjestelmiään ja prosessejaan.

Hankkeen kesto
  • Syyskuu 2023 - Jatkuva

2x

toiminnallisuuden lisääminen julkaisunopeus

50%

vähemmän virheitä tuotannossa

    Ota yhteyttä

    Varaa puhelu tai täytä alla oleva lomake, niin otamme sinuun yhteyttä, kun olemme käsitelleet pyyntösi.

    Lähetä meille ääniviesti
    Liitä asiakirjoja
    Lataa tiedosto

    Voit liittää 1 enintään 2 Mt:n tiedoston. Hyväksytyt tiedostomuodot: pdf, jpg, jpeg, png.

    Klikkaamalla Lähetä, annat suostumuksesi siihen, että Innowise käsittelee henkilötietojasi meidän Tietosuojakäytäntö antaa sinulle asiaankuuluvia tietoja. Antamalla puhelinnumerosi suostut siihen, että voimme ottaa sinuun yhteyttä puheluiden, tekstiviestien ja viestisovellusten kautta. Puhelu-, viesti- ja datahintoja voidaan soveltaa.

    Voit myös lähettää meille pyyntösi
    osoitteeseen contact@innowise.com

    Mitä tapahtuu seuraavaksi?

    1

    Kun olemme vastaanottaneet ja käsitelleet pyyntösi, otamme sinuun yhteyttä ja kerromme yksityiskohtaisesti projektin tarpeet ja allekirjoitamme NDA-sopimuksen luottamuksellisuuden varmistamiseksi.

    2

    Tutkittuaan toiveesi, tarpeesi ja odotuksesi tiimimme suunnittelee projektin ehdotuksen, jossa esitetään työn laajuus, tiimin koko, aika- ja kustannusarviot.

    3

    Järjestämme kanssasi tapaamisen, jossa keskustellaan tarjouksesta ja sovitaan yksityiskohdista.

    4

    Lopuksi allekirjoitamme sopimuksen ja aloitamme projektisi toteuttamisen heti.

    nuoli