Les proves de rendiment són un aspecte crucial de l'assegurament de la qualitat del programari, ja que ajuden a garantir que una aplicació funcioni correctament sota càrregues esperades i inesperades. Aquest tipus de proves permet identificar colls d'ampolla, assegurar la capacitat de resposta i garantir que el sistema compleixi amb els requisits de rendiment.
Objectius de les Proves de Rendiment
- Mesurar la Velocitat: Determinar el temps de resposta de l'aplicació sota diferents càrregues.
- Identificar Colls d'Ampolla: Localitzar parts del sistema que limiten el rendiment.
- Avaluar l'Estabilitat: Comprovar si l'aplicació es manté estable sota càrregues pesades.
- Verificar l'Escalabilitat: Assegurar que el sistema pugui gestionar un augment en el nombre d'usuaris o transaccions.
Tipus de Proves de Rendiment
- Proves de Càrrega: Avaluen el rendiment del sistema sota càrregues esperades.
- Proves d'Estrès: Posen el sistema sota càrregues extremes per veure com es comporta en situacions límit.
- Proves de Resistència: Comproven el rendiment del sistema durant períodes prolongats.
- Proves de Pic: Avaluen el rendiment del sistema durant pics de càrrega sobtats.
- Proves de Volum: Analitzen el rendiment del sistema amb grans volums de dades.
Eines per a les Proves de Rendiment
Eina | Descripció |
---|---|
JMeter | Eina de codi obert per a proves de càrrega i rendiment. |
LoadRunner | Solució comercial per a proves de rendiment i càrrega. |
Gatling | Eina de codi obert per a proves de càrrega, coneguda per la seva eficiència. |
Apache Bench | Eina de línia de comandes per a proves de càrrega bàsica. |
Exemple Pràctic: Prova de Càrrega amb JMeter
Configuració Bàsica
- Instal·lació de JMeter: Descarrega i instal·la JMeter des del lloc oficial d'Apache.
- Crear un Pla de Prova:
- Afegeix un "Thread Group" per definir el nombre d'usuaris virtuals.
- Afegeix un "HTTP Request" per simular les peticions al servidor.
- Afegeix un "Listener" com "View Results Tree" per veure els resultats.
Exemple de Configuració
Thread Group: Number of Threads (users): 100 Ramp-Up Period (seconds): 10 Loop Count: 1 HTTP Request: Server Name or IP: www.example.com Path: /api/test Listener: View Results Tree
Execució de la Prova
- Executa el pla de prova i observa els resultats al "View Results Tree".
- Analitza el temps de resposta i els errors per identificar possibles colls d'ampolla.
Exercici Pràctic
Objectiu: Realitzar una prova de càrrega bàsica utilitzant JMeter per avaluar el rendiment d'un servei web.
Passos
- Configura un "Thread Group" amb 50 usuaris virtuals i un "Ramp-Up Period" de 5 segons.
- Afegeix un "HTTP Request" per a una URL de prova.
- Afegeix un "Summary Report" per veure els resultats agregats.
- Executa la prova i analitza els resultats.
Solució
-
Thread Group:
- Number of Threads (users): 50
- Ramp-Up Period (seconds): 5
- Loop Count: 1
-
HTTP Request:
- Server Name or IP: www.example.com
- Path: /api/test
-
Listener:
- Summary Report
-
Anàlisi:
- Revisa el temps de resposta mitjà i el nombre d'errors.
- Identifica si el sistema pot gestionar la càrrega esperada.
Conclusió
Les proves de rendiment són essencials per garantir que el programari compleixi amb els requisits de rendiment i pugui gestionar càrregues reals. Mitjançant l'ús d'eines com JMeter, els desenvolupadors poden identificar i solucionar colls d'ampolla abans que el programari arribi als usuaris finals. En el següent tema, explorarem les proves de seguretat per assegurar que el programari no només sigui ràpid, sinó també segur.
Qualitat del Programari i Millors Pràctiques
Mòdul 1: Introducció a la Qualitat del Programari
- Què és la Qualitat del Programari?
- Importància de la Qualitat del Programari
- Atributs de Qualitat
- Cicle de Vida del Desenvolupament de Programari (SDLC)
Mòdul 2: Fonaments de les Proves de Programari
- Introducció a les Proves de Programari
- Tipus de Proves
- Planificació i Disseny de Proves
- Execució i Informes de Proves
Mòdul 3: Qualitat del Codi i Millors Pràctiques
- Conceptes Bàsics de la Qualitat del Codi
- Estàndards i Directrius de Codificació
- Revisions de Codi i Programació en Parella
- Tècniques de Refactorització
Mòdul 4: Proves Automatitzades
- Introducció a les Proves Automatitzades
- Proves Unitàries
- Proves d'Integració
- Integració i Proves Contínues
Mòdul 5: Tècniques Avançades de Proves
- Proves de Rendiment
- Proves de Seguretat
- Proves d'Usabilitat
- Marcs de Treball d'Automatització de Proves
Mòdul 6: Processos d'Assegurament de la Qualitat
- Assegurament de la Qualitat vs. Control de Qualitat
- Models de Millora de Processos
- Gestió de Riscos en Projectes de Programari
- Mètriques i Mesurament
Mòdul 7: Millors Pràctiques en el Desenvolupament de Programari
- Pràctiques Àgils i Lean
- DevOps i Lliurament Continu
- Documentació i Compartició de Coneixement
- Consideracions Ètiques en el Desenvolupament de Programari