Tekniska ämnen

Vad är Performance Engineering?

Illustration av IT-artiklar med fokus på en glödlampa

Översikt

Prestandateknik är proaktiv, kontinuerlig och heltäckande testning och övervakning av applikationsprestanda. Det möjliggör ett sömlöst samarbete mellan team, verktyg och processer genom kontinuerliga återkopplingsloopar. Här är det inte bara testare som ansvarar för kvalitetssäkringen, utan även utvecklare, prestandatekniker, produktägare och affärsanalytiker.

Genom att utnyttja rätt dimensionerade verktyg som omfattar både utvecklare och prestandatekniker möjliggör prestandateknik prestandatestning med skift till vänster och övervakning av applikationsprestanda med skift till höger. Det är svårt att förstå hur mycket prestandateknik skiljer sig från traditionell prestandatestning om man inte förstår vad klassisk prestandatestning är.

Prestandateknik

Vad är skillnaden mellan Performance Testing och Performance Engineering?

Klassisk prestandatestning är i själva verket en delmängd av prestandateknik. Det innebär vanligtvis att man kör en enda omgång belastningstest som en del av kvalitetssäkringscykeln (QA) efter utvecklingen. Prestandatestning innebär att man kontrollerar hastighet, tillförlitlighet, skalbarhet, stabilitet, svarstid och resursanvändning för en applikation under den förväntade arbetsbelastningen. Innan vi går in på skillnaderna mellan prestandateknik och prestandatestning ska vi först ta en titt på prestandatestning i sig och varför det inte längre är hållbart.

  • För det första betraktas testningen isolerat och behandlas som en eftertanke som bara börjar i slutet av funktionstestningen.
  • För det andra leder stuprörsarbete till stora kommunikationsbrister mellan olika projektgrupper och förhindrar det samarbete som krävs för att leverera en produkt av hög kvalitet.
  • För det tredje har organisationen redan lagt ner mycket tid, kraft och pengar på design, utveckling och marknadsföring av applikationen när prestandatestningen väl sätter igång.
  • För det fjärde behandlas prestandatestning ofta som en eftertanke och ingår inte i de "klara" kriterier som föregår lanseringen. Så i det här läget behöver verksamheten appen i produktion omgående och förväntar sig inga förseningar. I det här sammanhanget kommer QA:s feedback för sent för att kunna åtgärdas helt före lanseringen. Det är oundvikligt att ett stort antal prestandaproblem i onödan skulle hamna i produktionsmiljön bara för att lanseringen skulle hålla tidsplanen. Att åtgärda en defekt i produktionen är mycket dyrare och mer störande än att göra det tidigt i utvecklingen.
  • För det femte kan traditionell prestandatestning ha varit perfekt för vattenfallsmodellen men är inte på sin plats i dagens DevOps-centrerade värld. DevOps minskar felfrekvensen för nya releaser genom att förkorta tiden mellan det att en förändring läggs in i systemet och det att förändringen tas i produktion. Kontinuerlig integration och kontinuerlig leverans (CI/CD) säkerställer att programvaran alltid är i ett releasebart tillstånd under hela sin livscykel. DevOps fokuserar också på att anpassa organisationen för att stödja end-to-end-samarbete mellan intressenter, funktioner och verktyg. För att möta DevOps krav på snabba leveranser behöver mjukvaruutvecklingen en mer utvecklad metod för prestandatestning. Det nya tillvägagångssättet är software performance engineering.

Låt oss nu fördjupa oss i de viktigaste skillnaderna mellan prestandateknik och prestandatestning.

  • För det första är prestandatestning en kvalitetskontroll av applikationens belastningshantering och respons. Den fastställer hur väl systemet klarar en produktionsbelastning och förutser de problem som kan uppstå under tunga belastningsförhållanden. Prestandateknik syftar till att designa applikationen från början med prestandamått i åtanke och underlätta upptäckten av problem tidigt i utvecklingen.
  • För det andra är prestandatestning en QA-process som vanligtvis äger rum när en omgång av programvaruutvecklingen är klar. Prestandateknik är en kontinuerlig process som är inbäddad i alla faser av programvarans utvecklingscykel - från design, till utveckling och till slutanvändarens upplevelse.
  • För det tredje utförs prestandatester av QA-teamet medan prestandateknik involverar RND och QA.

Koncept för prestandateknik

Med hjälp av följande koncept levererar DevOps och Performance Engineering konsekventa resultat för produktionsprestanda, vilket gör det möjligt för kunderna att distribuera applikationer effektivt med större tillförsikt och att lansera högpresterande, stabil programvara som uppfyller användarnas förväntningar.

Optimering från början till slut

Prestandateknik ger systemoptimering från början till slut genom en kontinuerlig test- och övervakningsprocess. Detta innebär att prestanda- och belastningstestning flyttas till utvecklingsprocessen. Detta till skillnad från traditionell prestandatestning där testningen sker efter att funktionstestningen har stabiliserats och koden har släppts.

När koden har släppts följer prestandatekniken upp appen i produktion genom att använda APM-verktyg (Application Performance Monitoring).

Tvärfunktionellt team av intressenter för prestationer

Prestandateknik möjliggör samarbete mellan projektintressenter - från affärsanalytiker till utvecklare. För att upprätthålla höga prestandanivåer som förbättrar kundupplevelsen, hålla jämna steg med affärstakten och hantera end-to-end-prestanda krävs att alla, inte bara QA/Performance Engineers, förvaltar produktprestandan. Så här gör du.

Testcenter för spetskompetens

Testing Center of Excellence (CoE) fungerar som en pålitlig testrådgivare och förvaltare av bästa praxis. CoE stöder olika affärsenheter, olika testmetoder (t.ex. DevOps och Agile) och har flexibiliteten att rekommendera prestandatestning och testverktyg efter behov. För att bygga bättre testmodeller och förbättra testkvaliteten fungerar CoE som en enda punkt för konsolidering och återanvändning av testdata som har genererats och samlats in på flera affärsenheter över tid.

Ingenjör för prestanda

Prestandaingenjören ger en helhetssyn på all kod under utveckling för att säkerställa att kriterierna för prestandatestning är heltäckande, omfattar den större bilden och tar hänsyn till alla distinkta delar av koden under utveckling. Prestandaingenjören är den primära användaren av verktyg för prestandatestning och har en hög grad av expertis inom skriptning, utformning, körning och analys av testresultat. Prestandaingenjören deltar i den tidiga utvecklingsfasen där han eller hon kan tillhandahålla prestandamätvärden och scenarier som krävs för att koden ska anses vara redo för release. Tidig involvering innebär att prestandateknikern kan säkerställa att lösningen uppfyller de prestandaförväntningar som ställdes upp i början av utvecklingen. De bekräftar också att arkitekturen och designen är konsekvent under hela utvecklingen.

Programvaruutvecklare

Utvecklare är experter på kodning men ofta dåliga på både funktions- och prestandatestning. De arbetar i sin integrerade utvecklingsmiljö (IDE) och tenderar att använda sina favoritverktyg med liten benägenhet att lära sig nya. Performance engineering flyttar prestandatestning från vänster till höger, vilket innebär att det hamnar inom mjukvaruutvecklarens ansvarsområde. Med hjälp av prestandateknikern kan programutvecklaren köra prestandatester medan han eller hon skriver kod. Utvecklaren släpper inte sin kod innan den klarar kriterierna för prestandatestning.

DevTester

Utvecklaren finns inte i klassisk prestandatestning eftersom det finns tydliga skillnader mellan programvaruutvecklare och prestandatekniker. Med prestandateknik framträder devtestern som en intressent som kopplar samman prestandateknik- och utvecklarteam. De överbryggar klyftan genom att ha gedigna kodnings- och testkunskaper, även om de inte riktigt når upp till samma kompetensnivå som utvecklaren och prestandateknikern. De kan köra tester snabbt och har mycket större flexibilitet än utvecklarna när det gäller att använda olika verktyg efter behov.

Affärsanalytiker och applikationsingenjörer

Genom att flytta testningen får prestandatekniken med sig affärsanalytiker och applikationsingenjörer. Detta garanterar att kraven på affärs- och applikationsprestanda, som definierar kvaliteten på användarupplevelsen, införlivas i prestandakriterierna. Dessa två roller övervakar appen i produktion för att säkerställa att applikationsprestandan alltid är i toppklass.


Hitta rätt partner för prestandateknik

Performance Engineering håller på att förändra såväl mjukvaruutvecklingen som arbetsbeskrivningarna för alla som arbetar med den. Och med ett större antal roller inblandade är behovet av verktyg och teknik för att effektivisera processen större än någonsin tidigare. Prestandateknik kräver end-to-end-integration och samarbete från höger till vänster och vänster till höger tillsammans med insikter och analyser i realtid. Traditionella leverantörer av prestandatestning är inte tillräckligt rustade för att hantera denna våg av kaotiska förändringar. OpenText har dock den beprövade erfarenheten och de tekniska lösningarna för att omvandla testkaos till teknisk ordning.

OpenText Performance Engineerings öppna arkitektur stöder testning av alla typer av protokoll och applikationer i alla utvecklingsmiljöer. Det gör det möjligt för intressenter, från utvecklare till affärsanalytiker, att använda många olika verktyg från leverantörer och öppen källkod för att möjliggöra fullständig CI/CD-integration i stor skala. OpenText verktygsintegrationer ger möjlighet att snabbt eliminera väntetiden för utveckling och testning som saktar ner applikationsleveransen. Integrationerna gör det möjligt att snabbt skapa realistiska simuleringar av API:er, nätverksförhållanden och virtuella tjänster. OpenText lösningar för prestandateknik bygger på befintlig lokal infrastruktur eller molninfrastruktur och främjar återanvändning av tillgångar för att dra nytta av befintliga investeringar. Detta bidrar till att snabbt skala upp för att möta kraven på prestandatestning av flera applikationer i hela företaget.

Traditionell prestandatestning började inte förrän funktionstestningen var klar och man började inte identifiera defekter och grundorsaker förrän i slutet av prestandatestningen. OpenText Performance Engineering innebär kontinuerlig mätning och analys av defekter från början till slut för att hitta grundorsaken i realtid, till och med innan prestandatestet är klart. Prestandakriterier ingår i definitionen av och kraven på "klar". OpenText Realtidsanalys hjälper prestandateknikern att snabbt ge feedback till utvecklaren så att felsökning kan inledas tidigt i utvecklingsprocessen. Syntetisk övervakning och övervakning av verkliga användare i produktionen ger insikter i prestandaproblem som har undgått testning och som måste åtgärdas i nästa version. Capture och analys av slutanvändarnas åsikter ur ett prestandaperspektiv ger mer specifik feedback till utvecklarna så att de kan optimera applikationen för bättre prestanda.

Hur kan vi hjälpa till?

Fotnoter