Suorituskyvyn testaus
Suorituskykytestaus on ohjelmistojen testausprosessi, jota käytetään ohjelmistosovelluksen nopeuden, vasteajan, vakauden, luotettavuuden, skaalautuvuuden ja resurssien käytön testaamiseen tietyllä kuormituksella. Suorituskykytestauksen päätarkoitus on tunnistaa ja poistaa ohjelmistosovelluksen suorituskyvyn pullonkaulat. Se on osa suorituskykysuunnittelua ja tunnetaan myös nimellä "Perf Testing".
Suorituskykytestauksen painopiste on ohjelmiston tarkistaminen
- Nopeus - Määrittää, reagoiko sovellus nopeasti
- Skaalautuvuus - Määrittää käyttäjän kuormituksen, jonka ohjelmistosovellus voi käsitellä.
- Stabiilisuus - Määrittää, onko sovellus vakaa vaihtelevilla kuormilla
Tässä opetusohjelmassa opit-
- Mikä on suorituskyvyn testaus?
- Miksi suorituskykytestaus?
- Suorituskyvyn testauksen tyypit
- Yleiset suorituskykyongelmat
- Suorituskyvyn testausprosessi
- Suorituskyvyn testaustiedot: Valvotut parametrit
- Esimerkkejä suorituskykytestitapauksista
- Suorituskykytestaustyökalut
- UKK
Miksi suorituskykytestaus?
Ohjelmistojärjestelmän tukemat ominaisuudet ja toiminnallisuus eivät ole ainoa huolenaihe. Ohjelmistosovelluksen suorituskyvyllä, kuten vasteajalla, luotettavuudella, resurssien käytöllä ja skaalautuvuudella, on merkitystä. Suorituskykytestauksen tarkoituksena ei ole löytää vikoja vaan poistaa suorituskyvyn pullonkaulat.
Suorituskykytestaus tehdään antamaan sidosryhmille tietoa niiden sovelluksista nopeuden, vakauden ja skaalautuvuuden suhteen. Vielä tärkeämpää on, että suorituskyvyn testaus paljastaa, mitä on parannettava, ennen kuin tuote tulee markkinoille. Ilman suorituskykytestausta ohjelmisto todennäköisesti kärsii seuraavista asioista: hidas käynti, kun useat käyttäjät käyttävät sitä samanaikaisesti, epäjohdonmukaisuudet eri käyttöjärjestelmissä ja huono käytettävyys.
Suorituskykytestaus määrittää, täyttääkö heidän ohjelmistonsa nopeus-, skaalautuvuus- ja vakausvaatimukset odotetuilla kuormituksilla. Markkinoille lähetetyt sovellukset, joiden suorituskykymittarit ovat huonot puuttuvan tai huonon suorituskyvyn testauksen takia, saavat todennäköisesti huonon maineen eivätkä saavuta odotettuja myyntitavoitteita.
Myös tehtäväkriittiset sovellukset, kuten avaruusalusten laukaisuohjelmat tai hengenpelastuslaitteet, tulisi testata suorituskyvyllä sen varmistamiseksi, että ne toimivat pitkään ilman poikkeamia.
Dunn & Bradstreetin mukaan 59% Fortune 500 -yrityksistä kokee arviolta 1,6 tuntia seisokkeja joka viikko. Ottaen huomioon, että keskimääräinen Fortune 500 -yritys, jolla on vähintään 10000 työntekijää, maksaa 56 dollaria tunnissa, tällaisen organisaation seisokkien kustannukset olisivat 896 000 dollaria viikossa, mikä tarkoittaa yli 46 miljoonaa dollaria vuodessa.
Ainoastaan viiden minuutin Google.comin seisokkien (19. elokuuta-13) arvioidaan maksavan hakujätille peräti 545 000 dollaria.
Arvioiden mukaan yritykset menettivät myyntiään 1100 dollaria sekunnissa äskettäisen Amazon Web Service -katkoksen vuoksi.
Siksi suorituskykytestaus on tärkeää.
Suorituskyvyn testauksen tyypit
- Kuormitustestaus - tarkistaa sovelluksen kyvyn toimia odotettavissa olevilla käyttäjän kuormilla. Tavoitteena on tunnistaa suorituskyvyn pullonkaulat ennen ohjelmistosovelluksen käyttöönottoa.
- Stressitestaus - sisältää sovelluksen testaamisen äärimmäisillä kuormituksilla nähdäksesi, kuinka se käsittelee suurta liikennettä tai tietojenkäsittelyä. Tavoitteena on tunnistaa sovelluksen rikkoutumispiste.
- Kestävyystestaus - tehdään sen varmistamiseksi, että ohjelmisto pystyy käsittelemään odotettua kuormitusta pitkällä aikavälillä.
- Piikkitestaus - testaa ohjelmiston reaktion käyttäjien aiheuttaman kuorman äkillisiin suuriin piikkeihin.
- Äänenvoimakkuuden testaus - Volyymitestauksen alla suuri /. Tiedot asetetaan tietokantaan ja ohjelmistojärjestelmän toimintaa seurataan kokonaisuudessaan. Tavoitteena on tarkistaa ohjelmistosovelluksen suorituskyky vaihtelevissa tietokantamäärissä.
- Skaalautuvuustestaus - Skaalautuvuustestauksen tavoitteena on määrittää ohjelmistosovelluksen tehokkuus "skaalauksessa" käyttäjien kuormituksen kasvun tukemiseksi. Se auttaa suunnittelemaan kapasiteetin lisäystä ohjelmistojärjestelmään.
Yleiset suorituskykyongelmat
Useimmat suorituskykyongelmat liittyvät nopeuteen, vasteaikaan, latausaikaan ja huonoon skaalautuvuuteen. Nopeus on usein yksi sovelluksen tärkeimmistä ominaisuuksista. Hitaasti käynnissä oleva sovellus menettää potentiaaliset käyttäjät. Suorituskykytestaus tehdään sen varmistamiseksi, että sovellus toimii riittävän nopeasti pitääkseen käyttäjän huomion ja kiinnostuksen. Tutustu seuraavaan yleisten suorituskykyongelmien luetteloon ja huomaa, kuinka nopeus on yleinen tekijä monissa niistä:
- Pitkä latausaika - Latausaika on yleensä ensimmäinen aika, jonka sovellus käynnistyy. Tämä tulisi yleensä pitää minimissä. Vaikka joidenkin sovellusten lataaminen on mahdotonta alle minuutissa, latausaika tulisi pitää muutamassa sekunnissa, jos mahdollista.
- Huono vasteaika - vasteaika on aika, joka kuluu siitä, kun käyttäjä syöttää tietoja sovellukseen, kunnes sovellus antaa vastauksen kyseiseen tuloon. Yleensä tämän pitäisi olla erittäin nopeaa. Jälleen jos käyttäjän on odotettava liian kauan, hän menettää kiinnostuksensa.
- Huono skaalautuvuus - Ohjelmistotuote kärsii heikosta skaalautuvuudesta, kun se ei pysty käsittelemään odotettua käyttäjämäärää tai kun se ei majoita riittävän laajaa käyttäjäjoukkoa. Kuormitustestaus tulisi tehdä varmistaakseen, että sovellus pystyy käsittelemään odotettua käyttäjien määrää.
- Pullonkaula - pullonkaulat ovat järjestelmän esteitä, jotka heikentävät järjestelmän yleistä suorituskykyä. Pullonkaula on silloin, kun joko koodivirheet tai laitteisto-ongelmat aiheuttavat suorituskyvyn vähenemisen tietyillä kuormilla. Pullonkaula johtuu usein yhdestä viallisesta koodiosasta. Avain pullonkaulaongelman korjaamiseen on löytää hidastumisen aiheuttava koodiosa ja yrittää korjata se siellä. Pullonkaula korjataan yleensä joko korjaamalla huonot käynnissä olevat prosessit tai lisäämällä lisälaitteita. Joitakin yleisiä suorituskyvyn pullonkauloja ovat
- CPU: n käyttö
- Muistin käyttö
- Verkon käyttö
- Käyttöjärjestelmän rajoitukset
- Levyn käyttö
Suorituskyvyn testausprosessi
Suorituskykytestaukseen käytetty menetelmä voi vaihdella suuresti, mutta suorituskykytestien tavoite pysyy samana. Se voi auttaa osoittamaan, että ohjelmistojärjestelmäsi täyttää tietyt ennalta määritetyt suorituskykykriteerit. Tai se voi auttaa vertaamaan kahden ohjelmistojärjestelmän suorituskykyä. Se voi myös auttaa tunnistamaan ohjelmistojärjestelmän osat, jotka heikentävät sen suorituskykyä.
Alla on yleinen prosessi suorituskykytestauksen suorittamiseksi
- Tunnista testausympäristösi - Tunne fyysinen testiympäristösi, tuotantoympäristösi ja käytettävissä olevat testaustyökalut. Ymmärrä testauksen aikana käytettyjen laitteisto-, ohjelmisto- ja verkkokokoonpanojen yksityiskohdat ennen testausprosessin aloittamista. Se auttaa testaajia luomaan tehokkaampia testejä. Se auttaa myös tunnistamaan mahdolliset haasteet, joita testaajat voivat kohdata suorituskykytestausmenettelyjen aikana.
- Tunnista suorituskyvyn hyväksymiskriteerit - Tähän sisältyvät tavoitteet ja rajoitukset suoritukselle, vasteaikoille ja resurssien kohdentamiselle. On myös tarpeen tunnistaa hankkeen onnistumisen kriteerit näiden tavoitteiden ja rajoitusten ulkopuolella. Testaajille olisi annettava valtuudet asettaa suorituskykykriteerejä ja -tavoitteita, koska usein hankesuunnitelmiin ei sisälly riittävän laaja valikoima suorituskykyvertailuja. Joskus niitä ei välttämättä ole lainkaan. Mahdollisuuksien mukaan vastaavan sovelluksen löytäminen on hyvä tapa asettaa suorituskykytavoitteita.
- Suunnittele ja suunnittele suorituskykytestit - Määritä, kuinka käyttö vaihtelee todennäköisesti loppukäyttäjien välillä, ja tunnista tärkeimmät skenaariot kaikkien mahdollisten käyttötapausten testaamiseksi. On tarpeen simuloida erilaisia loppukäyttäjiä, suunnitella suorituskykytestaustiedot ja hahmotella mitkä tiedot kerätään.
- Testiympäristön määrittäminen - Valmistele testausympäristö ennen suoritusta. Järjestä myös työkalut ja muut resurssit.
- Toteuta testisuunnittelu - Luo suorituskykytestit testisuunnitelman mukaan.
- Suorita testit - Suorita ja seuraa testejä.
- Analysoi, viritä ja testaa uudelleen - Yhdistä, analysoi ja jaa testitulokset. Sitten hienosäädä ja testaa uudelleen, onko suorituskyky parantunut tai heikentynyt. Koska parannukset yleensä pienenevät jokaisen uudelleentestauksen yhteydessä, lopeta, kun pullonkaula johtuu suorittimesta. Sitten sinulla voi olla harkittava vaihtoehto lisätä suorittimen tehoa.
Suorituskyvyn testaustiedot: Valvotut parametrit
Suorituskykytestauksen aikana valvottuja perusparametreja ovat:
- Suorittimen käyttö - aika, jonka prosessori viettää muiden kuin käyttämättömien säikeiden suorittamiseen.
- Muistin käyttö - fyysisen muistin määrä tietokoneen prosesseille.
- Levyn aika - aika, jonka levy on varattu luku- tai kirjoituspyynnön suorittamiseen.
- Kaistanleveys - näyttää verkkoliitännän käyttämät bitit sekunnissa.
- Yksityiset tavut - prosesille jaettujen tavujen määrä, jota ei voida jakaa muiden prosessien kesken. Näitä käytetään mittaamaan muistivuotoja ja käyttöä.
- Sitoutunut muisti - käytetyn virtuaalimuistin määrä.
- Muistisivut / sekunti - levylle kirjoitettujen tai levyltä luettujen sivujen määrä kovien sivujen vikojen ratkaisemiseksi. Kovia sivuvikoja ovat silloin, kun muualla kuin nykyisestä työryhmästä tuleva koodi kutsutaan muualta ja haetaan levyltä.
- Sivuviat / sekunti - yleinen nopeus, jolla prosessori käsittelee vikasivut. Tämä tapahtuu jälleen, kun prosessi vaatii koodia työryhmän ulkopuolelta.
- Keskusyksikön keskeytykset sekunnissa - on keskim. kuinka monta laitekeskeytystä prosessori vastaanottaa ja käsittelee joka sekunti.
- Levyn jonon pituus - on keskim. ei. valitulle levylle jonossa olevista luku- ja kirjoituspyynnöistä näyteaikavälin aikana.
- Verkon lähtöjonon pituus - lähtöpakettijonon pituus paketeissa. Kaikki muu kuin kaksi tarkoittaa viivästymistä ja pullonkaulojen poistaminen on lopetettava.
- Verkkotavut sekunnissa - nopeus, joka tavuja lähetetään ja vastaanotetaan rajapinnalla, myös kehystysmerkit.
- Vasteaika - aika käyttäjän pyynnön kirjoittamisesta vastauksen ensimmäisen merkin vastaanottamiseen.
- Suorituskyky - nopeus, jonka tietokone tai verkko vastaanottaa pyyntöjä sekunnissa.
- Yhteyden yhdistämisen määrä - käyttäjien pyyntöjen määrä, jotka yhdistetyt yhteydet täyttävät. Mitä enemmän pyyntöjä altaan yhteydet täyttävät, sitä parempi suorituskyky on.
- Aktiivisten istuntojen enimmäismäärä - enimmäismäärä istuntoja, jotka voivat olla aktiivisia kerralla.
- Osumissuhteet - Tämä liittyy SQL-käskyjen määrään, joita välimuistidata käsittelee kalliiden I / O-toimintojen sijaan. Tämä on hyvä paikka aloittaa pullonkaulakysymysten ratkaiseminen.
- Osumia sekunnissa - ei. osumia verkkopalvelimessa kuormitustestin jokaisen sekunnin aikana.
- Palautussegmentti - tietomäärä, joka voidaan palauttaa milloin tahansa.
- Tietokantalukot - taulukoiden ja tietokantojen lukitusta on seurattava ja viritettävä huolellisesti.
- Ylin odotus - seurataan sen määrittämiseksi, mitä odotusaikoja voidaan lyhentää käsiteltäessä sitä, kuinka nopeasti tietoja haetaan muistista
- Kierteen määrä - Sovelluksen terveys voidaan mitata no. käynnissä olevista ja tällä hetkellä aktiivisista säikeistä.
- Jätteiden keräys - Se liittyy käyttämättömän muistin palauttamiseen takaisin järjestelmään. Jätteiden keräystä on seurattava tehokkuuden suhteen.
Esimerkkejä suorituskykytestitapauksista
- Varmista, että vasteaika on enintään 4 sekuntia, kun 1000 käyttäjää käyttää verkkosivustoa samanaikaisesti.
- Varmista, että kuormitetun sovelluksen vasteaika on hyväksyttävällä alueella, kun verkkoyhteydet ovat hitaita
- Tarkista, kuinka monta käyttäjää sovellus voi käsitellä, ennen kuin se kaatuu.
- Tarkista tietokannan suoritusaika, kun 500 tietuetta luetaan / kirjoitetaan samanaikaisesti.
- Tarkista sovelluksen ja tietokantapalvelimen suorittimen ja muistin käyttö huippukuormituksessa
- Tarkista sovelluksen vasteaika matalissa, normaaleissa, keskivaikeissa ja raskaissa kuormituksissa.
Todellisen suoritustestin aikana epämääräiset termit, kuten hyväksyttävä alue, raskas kuorma jne., Korvataan konkreettisilla numeroilla. Suorituskykyinsinöörit asettavat nämä numerot liiketoiminnan vaatimusten ja sovelluksen teknisen tilanteen mukaan.
Suorituskykytestaustyökalut
Markkinoilla on laaja valikoima suorituskyvyn testaustyökaluja. Testattavaksi valitsemasi työkalu riippuu monista tekijöistä, kuten tuetun protokollan tyypistä, lisenssikustannuksista, laitteistovaatimuksista, alustatuesta jne. Alla on luettelo yleisesti käytetyistä testaustyökaluista.
- LoadNinja - mullistaa testin lataamistavan. Tämä pilvipohjainen kuormitustestaustyökalu antaa ryhmille mahdollisuuden tallentaa ja toistaa välittömästi kattavat kuormitustestit ilman monimutkaista dynaamista korrelaatiota ja suorittaa nämä kuormitustestit todellisissa selaimissa mittakaavassa. Joukkueet voivat lisätä testien kattavuutta. & lyhennä kuormitustestausaikaa yli 60%.
- NeoLoad - on DevOpsille suunniteltu suorituskyvyn testausalusta, joka integroituu saumattomasti nykyiseen jatkuvan toimituksen putkijohtoosi. NeoLoadin avulla tiimit testaavat 10 kertaa nopeammin kuin perinteisillä työkaluilla täyttääkseen uuden tason vaatimukset koko ketterän ohjelmistokehityksen elinkaaren aikana - komponentista koko järjestelmän kattavaan kuormitustestiin.
- HP LoadRunner - on markkinoiden suosituin suorituskyvyn testaustyökalu. Tämä työkalu pystyy simuloimaan satoja tuhansia käyttäjiä, asettamalla sovellukset tosielämän kuormille määrittämään heidän käyttäytymisensä odotettavissa olevilla kuormilla. Loadrunnerissa on virtuaalinen käyttäjägeneraattori, joka simuloi elävien ihmisten käyttäjien toimia.
- Jmeter - yksi johtavista työkaluista, joita käytetään verkko- ja sovelluspalvelimien kuormitustestaukseen.
UKK
Mitä sovelluksia meidän tulisi testata?
Suorituskyvyn testaus tehdään aina vain asiakas-palvelin-pohjaisiin järjestelmiin. Tämä tarkoittaa, että kaikki sovellukset, jotka eivät ole asiakaspalvelinpohjaisia arkkitehtuureja, eivät saa vaatia suorituskyvyn testausta.
Esimerkiksi Microsoft Calculator ei ole asiakaspalvelinpohjainen eikä sillä ole useita käyttäjiä; joten se ei ole ehdokas suorituskyvyn testaamiseen.
Mikä on ero suorituskyvyn testauksen ja suorituskyvyn suunnittelun välillä
On tärkeää ymmärtää ero suorituskyvyn testauksen ja suorituskyvyn suunnittelun välillä. Ymmärrys jaetaan alla:
Suorituskykytestaus on tieteenala , joka liittyy ohjelmistosovelluksen nykyisen suorituskyvyn testaamiseen ja raportointiin useilla parametreilla.
Suoritustekniikka on prosessi, jolla ohjelmistoja testataan ja viritetään vaaditun suorituskyvyn toteuttamiseksi. Tämän prosessin tarkoituksena on optimoida sovelluksen tärkein ominaisuus eli käyttökokemus.
Historiallisesti testaus ja viritys ovat olleet selvästi erillisiä ja usein kilpailevia alueita. Viime vuosina useat testaajien ja kehittäjien taskut ovat kuitenkin tehneet itsenäistä yhteistyötä viritystiimien luomiseksi. Koska nämä joukkueet ovat saavuttaneet merkittävää menestystä, suorituskyvyn testaamisen yhdistäminen suorituskyvyn viritykseen on tarttunut, ja nyt me kutsumme sitä suorituskyvyn suunnitteluksi.
Johtopäätös
Ohjelmistotuotannossa suorituskyvyn testaus on välttämätöntä ennen minkään ohjelmistotuotteen markkinointia. Se varmistaa asiakastyytyväisyyden ja suojaa sijoittajan investointeja tuotevikoilta. Suorituskykytestauksen kustannukset ovat yleensä enemmän kuin korvattu parantamalla asiakastyytyväisyyttä, uskollisuutta ja säilyttämistä.