Mitä on STRESS-testaus ohjelmistotestauksessa?

⚡ Älykäs yhteenveto

Stressitestaus vie sovelluksen normaalien toimintarajojen ulkopuolelle löytääkseen rikkoutumispisteen, varmistaakseen, että viat käsitellään asianmukaisesti, ja todistaakseen, että järjestelmä palautuu puhtaasti, kun äärimmäinen kuormitus poistetaan.

  • 🔘 Määritelmä: Stressitestaus mittaa kestävyyttä ja virheiden käsittelyä paljon suuremman kuormituksen alaisena kuin mitä tuotantoliikenne koskaan tarjoaa.
  • ☑️ Tavoite: Testi paikantaa tarkan vikaantumiskohdan ja varmistaa palautumiskelpoisuuden, kun kuormitus palautuu normaaliksi.
  • ✅ Soveltamisala: Hajautetut, sovellus-, transaktio-, systeemiset ja tutkivat variantit painottavat kukin järjestelmän eri tasoa.
  • 🧪 Prosessi: Suunnittele, käsikirjoita, toteuta, analysoi ja sitten viritä – yleensä kolmen tai neljän kokonaisen syklin ajan ennen kuin vertailuarvot täyttyvät.
  • 🛠️ työkalut: LoadRunner, Apache JMeter, StressTester ja NeoLataa ja luo samanaikaisia ​​virtuaalisia käyttäjiä ja kerää vastausdataa.
  • 📊 Mittarit: Läpivirtaus, sivumäärä sekunnissa, osuma-aika, ensimmäisen tavun lukemiseen kuluva aika ja epäonnistuneet yhteydet mittaavat lopputuloksen.

Stressitestaus ohjelmistotestauksessa

Mitä stressitestaus on?

Stressitestaus on ohjelmistotestauksen tyyppi, joka varmistaa ohjelmistosovelluksen vakauden ja luotettavuuden. Stressitestauksen tavoitteena on mitata ohjelmiston kestävyyttä ja virheenkäsittelykykyä erittäin raskaissa kuormitusolosuhteissa ja varmistaa, että ohjelmisto ei kaadu iskutilanteissa. Se testaa tarkoituksella normaalien toimintapisteiden ulkopuolella ja arvioi, miten ohjelmisto käyttäytyy äärimmäisissä olosuhteissa.

Stressitestauksessa testattavaa sovellusta (AUT) rasitetaan lyhyen aikaa sen kestävyyskyvyn selvittämiseksi. Stressitestauksen yleisin käyttökohde on järjestelmän, ohjelmiston tai laitteiston vikaantumisrajan määrittäminen. Se tarkistaa myös, toimiiko järjestelmä tehokkaasti virheidenhallinnan suhteen, kun kyseinen raja ylitetään.

In OhjelmistotuotantoStressikoe luetellaan usein rinnakkain Kestävyystesti, mutta ne eroavat toisistaan: Rasituskokeessa käytetään epätavallisen suurta kuormitusta lyhyessä ajassa murtumispisteen löytämiseksi, kun taas kestävyyskokeessa (liotuskokeessa) kuormitetaan kohtalaisesti tuntikausia asteittaisen heikkenemisen paljastamiseksi.

Alla olevassa kuvakaappauksessa näkyy suuri tietolohko, jota kopioidaan verkkosivulta.

Hyvin suuren tietolohkon kopioiminen verkkosivulta työpöytäsovelluksen kuormittamiseksi

Testattava sovellus on stressaantunut, kun 5 Gt dataa kopioidaan verkkosivustolta ja liitetään Muistioon. Muistio on nyt stressaantunut ja palauttaa "Ei vastaa" -virheilmoituksen, täsmälleen kuten seuraava kuvakaappaus osoittaa.

Muistio, jossa näkyy Ei vastaa -virheilmoitus sen jälkeen, kun siihen on liitetty 5 Gt tietoa

Sama periaate skaalautuu suoraan palvelinpuolen järjestelmiin.

Stressitestauksen tarve

Tarkastellaan seuraavia reaaliaikaisia ​​esimerkkejä, joissa stressitestien käyttö on ilmeistä:

  • Festivaalin aikaan verkkokauppaping sivuston kävijämäärät saattavat nousta nopeasti tai se voi ilmoittaa alennusmyynnistä.
  • Kun blogi mainitaan johtavassa sanomalehdessä, se kokee äkillisen liikenteen nousun.

On välttämätöntä suorittaa stressitestaus tällaisten epätavallisten liikennepiikkien huomioon ottamiseksi. Näiden äkillisten liikennemäärien huomioimatta jättäminen voi johtaa tulojen ja maineen menetykseen.

Stressikoe on erittäin arvokas myös seuraavista syistä:

  • Se tarkistaa, toimiiko järjestelmä epänormaaleissa olosuhteissa.
  • Se vahvistaa, että asianmukainen virheilmoitus näytetään järjestelmän ollessa rasituksessa.
  • Järjestelmähäiriöt äärimmäisissä olosuhteissa voivat johtaa valtaviin tulonmenetyksiin.
  • Äärimmäisiin olosuhteisiin on parempi varautua suorittamalla stressitesti etukäteen.

Seuraavassa osiossa esitetään, mitä onnistuneen stressitestin on todistettava.

Stressitestauksen tavoitteet

Stressitestauksen tavoitteena on analysoida järjestelmän käyttäytymistä vian jälkeen. Jotta stressitestaus onnistuisi, järjestelmän on näytettävä asianmukainen virheilmoitus äärimmäisissä olosuhteissa.

Stressitestauksessa käytetään joskus valtavia tietojoukkoja, ja nämä tiedot voivat kadota järjestelmän vikaantumisen aikana. Testaajien tulisi varmistaa, että nämä tietoturvaan liittyvät tiedot eivät katoa stressitestin aikana.

Stressitestauksen päätarkoitus on varmistaa, että järjestelmä palautuu vikaantumisen jälkeen. Tätä ominaisuutta kutsutaan palautumiskelpoisuudeksi. Palautustestaus tarkistaa sitten kyseisen palautusmenettelyn yksityiskohtaisesti.

Kuormitustestaus vs. rasitustestaus

Molemmat tekniikat kuuluvat Suorituskykytestaus perheeseen, joten ne on helppo sekoittaa. Alla oleva kaavio vertailee näitä kahta kuormitusprofiilia.

Kaavio, joka vertaa kuormituskokeen tasaista kuormitusprofiilia rasituskokeen kasvavaan kuormitusprofiiliin

Kuormitustesti Stressitestaus
Kuormitustesti testaa järjestelmän toimintaa normaaleissa työkuormitusolosuhteissa; se simuloi todellista odotettua työkuormitusta. Stressikoe testaa järjestelmän käyttäytymistä äärimmäisissä olosuhteissa ja sitä jatketaan, kunnes järjestelmä pettää.
Kuormitustesti ei riko järjestelmää. Stressitestaus yrittää tarkoituksella rikkoa järjestelmän ylikuormittamalla sitä datalla tai näännyttämällä sitä resursseista.

Aiheeseen liittyviä profiileja ovat mm. Piikkitestaus (äkillinen lyhyt purskahdus), Äänenvoimakkuuden testaus (suuri tietomäärä pikemminkin kuin useita käyttäjiä) ja Skaalautuvuuden testaus (kasvuvaraa).

Stressitestauksen tyypit

Seuraavassa on selitetty stressitestien tyypit yksi kerrallaan.

Hajautettu stressitestaus

Hajautetuissa asiakas-palvelinjärjestelmissä testaus suoritetaan kaikille palvelimen asiakkaille. Stress-palvelimen tehtävänä on jakaa joukko stressitestejä kaikille stressiasiakkaille ja track jokaisen asiakkaan tila. Kun asiakas on ottanut yhteyttä palvelimeen, palvelin lisää asiakkaan nimen ja alkaa lähettää tietoja testausta varten. Alla oleva kuva näyttää, kuinka stressipalvelin tavoittaa jotkut asiakkaat, mutta ei toisia.

Hajautettu stressitestausjärjestelmä, jossa stressipalvelin tavoittaa Client1:n ja Client2:n, mutta menettää yhteyden Client3:een ja Client4:ään

Samaan aikaan asiakaskoneet lähettävät signaalin eli sykkeen vahvistaakseen, että ne ovat edelleen yhteydessä palvelimeen. Jos palvelin ei vastaanota signaalia asiakaskoneelta, kyseistä konetta on tutkittava tarkemmin virheenkorjausta varten. Kuvassa palvelin voi muodostaa yhteyden kahteen asiakkaaseen (Asiakas1 ja Asiakas2), mutta se ei voi lähettää tai vastaanottaa signaalia asiakkaalta 3 ja asiakkaalta 4.

Yön yli suoritettava testi on paras vaihtoehto näissä stressitestaustilanteissa. Suuret palvelintilat tarvitsevat tehokkaamman menetelmän sen määrittämiseksi, mitkä tietokoneet ovat kokeneet tutkittavia stressitestausongelmia.

Sovelluksen rasituskoe

Tämä testaus keskittyy löytämään vikoja, jotka liittyvät datan lukitukseen ja estämiseen, verkko-ongelmiin ja suorituskyvyn pullonkauloihin yhdessä sovelluksessa.

Transaktionaalinen stressitestaus

Se suorittaa stressitestauksen yhdelle tai useammalle tapahtumalle kahden tai useamman sovelluksen välillä. Sitä käytetään järjestelmän hienosäätöön ja optimointiin.

Systeeminen stressitestaus

Tämä on integroitu stressitestaus, jota voidaan suorittaa useissa saman palvelimen jakavissa järjestelmissä. Sitä käytetään löytämään vikoja, joissa yksi sovellus estää toisen sovelluksen tiedot.

Tutkiva stressitestaus

Tämän tyyppistä stressitestiä käytetään järjestelmän testaamiseen epätavallisilla parametreilla tai olosuhteissa, jotka eivät todennäköisesti esiinny todellisessa tilanteessa. Sitä käytetään vikojen löytämiseen odottamattomissa tilanteissa, kuten:

  • Suuri määrä käyttäjiä kirjautui sisään samaan aikaan.
  • Virustorjuntaohjelma käynnistyy kaikissa koneissa samanaikaisesti.
  • Tietokanta siirtyy offline-tilaan, kun sitä käytetään verkkosivustolta.
  • Suuri määrä tietoa syötetään tietokantaan samanaikaisesti.

Riippumatta siitä, mitä muunnelmaa sovelletaan, suoritusjärjestys pysyy samana.

Kuinka tehdä stressitesti?

Stressikoe voidaan tehdä viidessä päävaiheessa:

  • Vaihe 1) Stressitestin suunnittelu: Täällä keräät järjestelmätiedot, analysoit järjestelmän ja määrittelet stressitestitavoitteet.
  • Vaihe 2) Luo automaatiokomentosarjat: Tässä vaiheessa luot stressitestien automaatioskriptit ja generoit testidatan stressiskenaarioita varten.
  • Vaihe 3) Komentosarjan suoritus: Tässä vaiheessa suoritat stressitestauksen automaatioskriptit ja tallennat stressitestien tulokset.
  • Vaihe 4) Tulosanalyysi: Tässä vaiheessa analysoit stressitestin tulokset ja tunnistat pullonkaulat.
  • Vaihe 5) Hienosäätö ja optimointi: Tässä vaiheessa hienosäädät järjestelmää, muutat konfiguraatioita ja optimoit koodia tavoitteena saavuttaa haluttu vertailuarvo.

Lopuksi suoritat koko syklin uudelleen sen määrittämiseksi, ovatko muutokset tuottaneet haluttuja tuloksia. Esimerkiksi ei ole epätavallista, että suorituskykytavoitteiden saavuttamiseksi tarvitaan 3–4 stressitestausprosessia, joten skriptejä ylläpidetään yleensä rinnakkain regressio sviitti.

Stressitestaukseen suositellut työkalut

Alla olevat neljä työkalua kattavat useimmat tarpeet yritysohjelmistoista ilmaiseen avoimen lähdekoodin vaihtoehtoon.

Hienosäätö

Hienosäätö on laajalti käytetty kuormitustestaustyökalu, jota nykyään myy OpenText Professional-, Enterprise- ja Cloud-versioissa siirryttyään HP:ltä Micro Focusille OpenTextLoadRunnerin tuottamia kuormitustestien tuloksia käsitellään vertailuarvona.

JMeter

Apache JMeter on avoimen lähdekoodin testaustyökalu. Se on puhdas Java sovellus rasitus- ja suorituskykytestaukseen, ja sen on tarkoitus kattaa testityypit, kuten kuormitus-, toiminnallinen- ja rasitustesti. Nykyiset 5.6.x-versiot Apache JMeter edellyttää Java 8 tai uudempi, ja Java 17 suositeltu.

Stressitesteri

Tämä työkalu tarjoaa kattavan analyysin verkkosovellusten suorituskyvystä, esittää tulokset graafisessa muodossa ja on helppokäyttöinen. Korkean tason skriptausta ei tarvita, mikä pitää sijoitetun pääoman tuoton alhaisena.tractiivis pienemmille tiimeille.

NeoLadata

NeoLadata, nyt osa Tricentis portfolio on suosittu työkalu web- ja MobiilisovelluksiaSe voi simuloida tuhansia käyttäjiä arvioidakseen sovelluksen suorituskykyä kuormituksen aikana ja analysoidakseen vasteaikoja. Se tukee myös pilveen integroitua suorituskyky-, kuormitus- ja stressitestausta, ja se skaalautuu hyvin.

Lisää vaihtoehtoja on lueteltu oppaassa suorituskyvyn testaustyökalutKumpi tahansa valitaankin, sen tuotos merkitsee jotakin vain alla olevia mittareita vasten.

Stressitestauksen mittarit

Mittarit auttavat arvioimaan järjestelmän suorituskykyä, ja niitä tutkitaan yleensä stressitestin lopussa. Yleisesti käytetyt mittarit on ryhmitelty kolmeen ryhmään.

Skaalautuvuuden ja suorituskyvyn mittaaminen

  • Sivua sekunnissa: Mittaa, kuinka monta sivua on pyydetty sekunnissa.
  • suoritusteho: Perusmittari — vastausdatan koko sekunnissa.
  • kierrokset: Testiskenaarioiden suunnittelukertojen määrä verrattuna asiakkaan suorittamien testiskenaarioiden määrään.

Sovelluksen vastaus

  • Osuma-aika: Keskimääräinen aika kuvan tai sivun hakemiseen.
  • Aika ensimmäiseen tavuun: Ensimmäisen datatavun tai informaation palauttamiseen kuluva aika.
  • Sivun kesto: Aika, joka kuluu kaikkien sivun tietojen hakemiseen.

epäonnistumiset

  • Epäonnistuneet yhteydet: Asiakkaan hylkäämien epäonnistuneiden yhteyksien määrä (heikko signaali).
  • Epäonnistuneet kierrokset: Epäonnistuneiden kierrosten määrä.
  • Epäonnistuneet osumat: Järjestelmän epäonnistuneiden yritysten määrä (rikkinäiset linkit tai näkemättömät kuvat).

Loppuosiossa luetellaan tilanteet, jotka useimmiten oikeuttavat stressitestin.

Esimerkkejä stressitestauksesta

Stressitestaus ansaitsee paikkansa aina, kun tapahtuman odotetaan nostavan liikennettä huomattavasti päivittäisen lähtötason ulkopuolelle:

  • Verkkokauppasivusto, joka ilmoittaa festivaalimyynnistä.
  • Uutissivusto suuren tapahtuman aikaan.
  • Koulutuslautakunta julkaisee tenttitulokset.
  • Sosiaalisen median sivustot, blogit ja mobiilisovellukset viraalihetken aikana.

Jokaisessa tapauksessa testi valvoo resursseja, kuten muistia, prosessoria ja verkkoa, tarkistaa, että asianmukaiset virheilmoitukset ilmestyvät rasituksen aikana, ja varmistaa, että järjestelmä palaa normaaliksi sen jälkeen. Se sopii ohjelmistotestauksen elinkaari ei-toiminnallisena tarkistuksena rinnalla Järjestelmän testaus ja laajempi joukko ohjelmistotestaustyypit.

UKK

Ei. Rasituskokeessa käytetään lyhytaikaista, epätavallisen suurta kuormitusta murtumiskohdan paikantamiseksi. Liota tai kestävyystestit pitää realistisen kuormituksen useita tunteja paljastaakseen muistivuodot ja hidastaakseen heikkenemistä.

Piikkitestaus antaa järjestelmään äkillisen, hyvin lyhyen jännitepiikin ja mittaa, kuinka nopeasti se skaalautuu ja palautuu. Stressitestaus lisää kuormitusta tasaisesti vikaantumiselle asti, joten se vastaa siihen, missä raja on, eikä siihen, kuinka nopeasti järjestelmä reagoi.

Suorita yksi ennen jokaista merkittävää julkaisua, ennen ennustettavissa olevaa liikennepiikkiä, kuten alennusmyyntiä tai tulospäivää, ja välimuistin, yhteyksien yhdistämisen tai automaattisen skaalauksen arkkitehtuurimuutosten jälkeen. Monet tiimit toistavat sen myös neljännesvuosittain lähtötason tarkistuksena.

Käytä ympäristöä, joka on kooltaan mahdollisimman lähellä tuotantoympäristöä budjetin salliessa, koska alikokoinen laitteisto siirtää rikkoutumispistettä. Täytä se maskatulla tai synteettisellä tuotantomäärädatalla äläkä koskaan kohdista tuhoisaa kuormitusta reaaliaikaisiin asiakastietoihin.

Koneoppimismallit louhivat tuotantotelemetriaa rakentaakseen realistisia huippuliikenneprofiileja, merkitsevät poikkeavia vasteaikakäyriä, jotka kiinteä kynnysarvo ei saavuttaisi, ja korreloivat resurssimittareita osoittaakseen pullonkaulan. Useat kaupalliset alustat luovat nyt kuormitusskenaarioita havaituista käyttömalleista.

Kyllä. Copilot-luonnokset JMeter testisuunnitelmat, K6- tai Gatling-skriptit, parametrisoidut datageneraattorit ja CI-putken vaiheet selkokielisestä kehotteesta. Käsittele tulostetta ensimmäisenä luonnoksena: ajatteluajat, tahti ja väitteet tarvitsevat edelleen testaajan validoidakseen ne.

Se paljastaa todellisen kapasiteettikaton, varmistaa virheiden käsittelyn ja vähentää käyttökatkosten riskiä ruuhka-aikoina. Rajoituksia ovat kustannukset – tuotantoympäristöt ja lisenssit ovat kalliita – sekä skriptaustyö ja tulokset, jotka muuttuvat infrastruktuurin muuttuessa.

Suorituskykyinsinöörit tai erikoistuneet testaajat käyttävät sitä, yleensä kehittäjien ja operatiivisen henkilöstön ollessa paikalla lukemassa palvelimen mittareita. Se sijaitsee toiminnallisten toimintojen jälkeen. järjestelmän testaus, kun koontiversio on riittävän vakaa, että epäonnistumiset viittaavat kapasiteettirajoituksiin virheiden sijaan.

Tiivistä tämä viesti seuraavasti: