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.

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.
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.
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.
| 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.
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.

.png)
.png)

