MAT - Marc d’Automatització de Testing | |||||||
![]() El MAT és un framework d'automatització de proves dissenyat per garantir la qualitat de les aplicacions del Centre de Telecomunicacions i Tecnologies de la Informació. Funciona mitjançant diferents desencadenants, com la realització d'un pull request o l'execució sota demanda, assegurant un control de qualitat durant tot el cicle de vida del programari. Aquest marc permet implementar un procés de proves estructurat i escalable, ajudant a millorar la qualitat de les aplicacions mitjançant tècniques avançades de validació. L’objectiu principal del MAT és assegurar que les interfícies siguin intuïtives, estables, segures i compatibles amb diversos dispositius, garantint així una experiència d’usuari òptima. El MAT proporciona plantilles de treball que estableixen estàndards mínims de qualitat, assegurant una execució de proves homogènia i eficient. Aquest enfocament permet als equips de desenvolupament realitzar proves en un entorn flexible i adaptable a les seves necessitats, eliminant limitacions tècniques i promovent la millora contínua. Un dels elements clau del MAT és la seva capacitat d’Integració Contínua, que facilita l'execució de proves automàtiques mitjançant eines com Jenkins o Jira, proporcionant feedback constant durant tot el procés. A més, incorpora un sistema de monitoratge per detectar i gestionar incidències en temps real, millorant així la resposta i la qualitat global del programari. La Integració Contínua del MAT és fonamental per al desenvolupament del producte. Permet la realització de proves automàtiques mitjançant diferents eines de gestió de projecte com Jira, per tal de rebre un feedback continu en el moment de l'execució. Propòsits i ObjectiusEl principal objectiu del MAT és millorar la qualitat de les aplicacions, garantint que:
Per assolir aquest objectiu, el MAT defineix diferents tipus de proves en el cicle de vida del producte mitjançant plantilles de treball estandarditzades. 2. Alta a les einesPer integrar-se correctament amb el MAT, cal disposar d'accés a les eines necessàries i complir alguns requisits bàsics per garantir un procés fluid i sense errors. Aquest procés permet una configuració òptima per a l'execució de proves automatitzades i la gestió del cicle de vida del programari. Requisits previs
En cas de no disposar d’accés, les heu de tramitar des de:
Presentem el cas d'ús end-to-end, en cas de no disposar de Jira, i sí estar integrats al SIC+ podeu passar directament a l’execució als Workflows de Github Enterprise. 3. Detall Prova en JiraEl nom del projecte de Jira i el nombre d'Issue creat per al Pla de Proves s'utilitzaran més endavant per a l'execució del Workflow a GitHub. Jira és una eina clau per a la gestió i traçabilitat de les proves automatitzades dins del MAT. Permet gestionar i documentar els casos de prova, planificar-ne l'execució i integrar els resultats amb altres eines de desenvolupament. Configuració d’un projecte de proves en Jira
Execució i seguiment de les proves
Beneficis d'usar Jira per a la gestió de proves
Si no es disposa de Jira, es pot executar directament a través de GitHub Workflows. Descripció gràfica: ![]() Després s'obre la finestra per emplenar les dades del pla de proves Primer crearem el pla de proves (Test Plan). ![]() Després crearem les diferents proves i les descriurem, per tal de que es connectin directament amb el MAT, el tipus de prova ha de ser Generic ![]() ![]() 4.- Creació de proves automatitzadesPer començar amb l’automatització de proves, és imprescindible que els testers disposin dels repositoris adequats amb les plantilles preconfigurades. Per això, han de sol·licitar l’aprovisionament dels repositoris de proves, els quals contenen els recursos necessaris, incloent-hi exemples pràctics i documentació detallada sobre l’ús de les plantilles. Aquest pas és fonamental per garantir la coherència i l’eficiència en la creació i execució de les proves automatitzades. Un cop obtingut l’accés als repositoris, les proves es desenvolupen a l’entorn local del tester, utilitzant la plantilla proporcionada pel MAT (Marc d’Automatització de Testing). Aquesta plantilla proporciona una estructura estàndard per a les proves, assegurant que cada cas de prova inclogui:
Tipus de proves automatitzadesLes proves automatitzades poden abordar diferents aspectes del sistema, com ara:
És fonamental seguir les instruccions de la documentació per configurar l’entorn correctament i assegurar que les proves es desenvolupin segons els requisits establerts. Integració i validació de provesUn cop desenvolupades les proves a l’entorn local, cal validar-les abans de la seva integració. Això es fa mitjançant un pull request al repositori de proves, que desencadena automàticament un flux de verificació. Aquest procés és essencial per assegurar que:
Quan es fa el pull request al repositori de proves, s’executa un conjunt de validacions automàtiques. Els resultats d’aquestes validacions es poden consultar directament al pull request, facilitant la detecció de possibles errors abans que el codi es fusioni. Aquesta pràctica és fonamental per garantir un codi estable i fiable abans de desplegar-lo a producció. Bones pràctiques per a una integració eficientPer mantenir un flux de treball ordenat i eficient, és recomanable seguir aquestes bones pràctiques:
Aquest enfocament permet identificar i corregir problemes de manera primerenca, reduint el risc d’introduir errors en la branca principal. Contribució a la qualitat del programariAmb aquest procés, els testers tenen un paper clau en la garantia de qualitat del programari. Seguint un enfocament estructurat en la creació i execució de proves automatitzades, es minimitzen errors i es millora la fiabilitat del sistema. Això assegura que el producte final compleixi els estàndards esperats abans d’arribar als usuaris finals. 5. Repositori
El MAT està dissenyat específicament per integrar-se amb el SIC+ i el SIC3, aprofitant les seves característiques per garantir una automatització de proves eficient i alineada amb l'entorn tecnològic. Això permet validar el funcionament del programari de manera contínua, seguint les millors pràctiques d'integració i execució de proves.
6. Execució de proves a GitHub ActionsAquest pas és opcional, podrà executar el seu flux de treball manualment omplint els camps requerits per dur a terme les verificacions que consideri necessàries. Amb les proves llestes i validades, les podrem executar sota demanda a través de GitHub omplint els paràmetres requerits en el Flux de GitHub Actions, que es proporciona amb la plantilla de repositori. ![]() Cicle de vida de les proves a través de Pull RequestHaurà de tenir en consideració la política de branques aplicable al seu repositori. Per garantir una integració correcta i la verificació del codi de les proves, abans de posar-les en producció, el flux de treball s'activarà automàticament després de fer un pull request al repositori de proves. Aquesta pràctica assegura que totes les modificacions proposades siguin revisades i validades abans de fusionar-les a la branca principal, evitant així la introducció d'errors al sistema. Procés per arribar al pull request
Execució i validació de provesAbans de fusionar el codi a la branca principal, també és possible executar manualment les proves des de les accions del repositori, referenciant la branca corresponent. Això permet als testers assegurar que la integració amb el MAT, SIC+ i SIC3 és correcta i que les proves es comporten segons els requeriments establerts. Bones pràctiques per garantir la qualitatPer mantenir una integració controlada i evitar problemes en la branca principal, es recomana seguir aquestes bones pràctiques:
Quan es realitza el pull request al repositori de proves, s'executa automàticament un flux de verificació que comprova que el codi compleix els estàndards de qualitat i no introdueix errors. Aquesta validació permet detectar i corregir problemes de manera precoç, abans que puguin afectar altres parts del sistema. Abans de fer el merge, aquest flux de verificació s'executa immediatament i el seu resultat es pot consultar dins del mateix pull request per verificar l’estat de les proves. Això proporciona un control addicional i permet assegurar que només es fusiona codi fiable a la branca principal. ![]() Una vegada validada i acceptada la petició de Pull Request i executat el Merge, ja tindrem les proves llestes per executar-les. 7. Visualització de resultatsUn cop executat el flux de treball, podrà visualitzar als registres de GitHub tota la informació respecte de la prova en curs. Aquests registres proporcionen detalls exhaustius sobre l'execució de les proves, incloent-hi els resultats, els errors trobats i qualsevol altra informació rellevant. A més, una de les grans avantatges de la generació d'informes de proves amb Selenium en format HTML és la seva claredat i facilitat de lectura. Aquests informes són visuals i interactius, permetent una ràpida identificació de problemes i una millor comprensió dels resultats de les proves. Després d'executar el flux de treball a través d'un pull request, els informes generats es poden trobar fàcilment a Jira gràcies a la integració entre GitHub i Jira. Aquesta integració permet que els resultats de les proves i els informes HTML es sincronitzin automàticament amb les tasques corresponents a Jira, facilitant així el seguiment i la gestió de les proves. Verificar l'estatus de la prova realitzada a Jira és senzill, ja que tota la informació es troba centralitzada i accessible des d'una única plataforma. A més, l'informe .HTML generat proporciona una visió completa i detallada de les proves realitzades, incloent-hi captures de pantalla, logs d'execució i altres dades importants que ajuden a diagnosticar i solucionar problemes de manera eficient. Aquesta documentació detallada és essencial per assegurar que totes les parts interessades tinguin una comprensió clara de l'estat de les proves i dels resultats obtinguts. La visualització de resultats a través dels registres de GitHub i els informes HTML a Jira ofereix una solució completa i eficient per al seguiment i la gestió de les proves automatitzades. ![]() Guia per a l'Estructuració de Proves AutomatitzadesPer dur a terme el que s'ha vist anteriorment, el Tester haurà d'estructurar les seves proves automatitzades, per a la qual cosa hem facilitat una plantilla que resumeix funcionalitats rellevants de manera que li sigui més pràctic la construcció i execució de les seves proves. Proves Funcionals:Aquestes proves es centren en validar la funcionalitat de l'aplicació des de la perspectiva de l'usuari, simulant interaccions reals de l'usuari, com fer clic en botons, omplir formularis i navegar per diferents pàgines. Selenium permet crear scripts que emulen accions humanes, la qual cosa garanteix que l'aplicació compleixi amb els requisits funcionals i que es mantingui estable davant possibles canvis o actualitzacions. En el següent manual, podeu executar proves funcionals de Selenium, a través de Selenium Grid, una eina que permet orquestrar i escalar els navegadors. Per tal de desenvolupar les proves, hem preparat un manual que podeu trobar aquí: Execució de la prova des de Jira:Els proveïdors podran executar les proves directament des del pla de proves de Jira. Dades necessàries per a l'execució
Accedir al pla de proves en Jira:En Jira es poden veure els resultats dins del:
El report de les proves funcionals és un document .HTML que prové de la llibreria Extent Report. ![]() ![]() En aquestes execucions es pot veure l'estat del test. ![]() ![]() També es pot veure l'estat general del projecte en els taulers: ![]() ![]() Proves d’APILes proves de REST API consisteixen a enviar peticions a un conjunt d’APIs, per tal d'observar-les i monitorar les respostes per a assegurar-se que funcionen de la forma que s'espera. Les API (Interfícies de Programació d'Aplicacions) són una col·lecció de mètodes i funcions que permeten desenvolupar aplicacions. Funcionen com a missatgers entre les persones i el proveïdor de serveis, rebent les peticions i responent amb un resultat. Per tant, les proves d’API es concentren principalment en la funcionalitat d'una aplicació més que en cadascuna de les seves parts o com es mostren a un usuari. Eines per a les provesEn el següent manual, podeu executar proves d’API a través de Postman i Newman (CLI per a Postman). Resultats de les provesEls resultats de les proves seran bolcats al quadre de comandament de Grafana, per mitjà de InfluxDB. A més, els resultats seran també bolcats a Jira (amb el plugin de XRay). DesenvolupamentPodeu trobar el procés de creació de les proves d’API aquí. Instal·lació:És possible usar Postman en la seva versió web o en aplicació d'escriptori. Per a més informació acudir a la guia oficial: Install and update Postman | Postman Docs Haurem d’instalar Newman per tal d’executar les proves de Postman via consola
npm install -g newman
npm install -g newman-reporter-influxdb
npm install -g newman-reporter-junitxray
Creació de proves:
Els fitxers de Execució de proves:Per a executar les proves, s'utilitzarà Newman, una extensió de Postman que permet executar per línia de comandos.
MAT:Execució del job des de Jira:Els proveïdors podran executar les proves directament des del pla de proves de Jira, ja que està connectat amb el Job de Jenkins. Aquests són les dades necessàries per a aquesta execució:
Accedir al pla de proves en Jira ![]() ![]() Resultats:En Jira es poden veure els resultats dins del:
El report de les proves de API és un document .html que prové de Newman Reporter. ![]() ![]() ![]() ![]() Proves de RendimentAccedir al pla de proves en Jira: ![]() ![]() |
|||||||
Responsable | Destinataris | ||||||
Àrea de Qualitat | Proveïdors de desenvolupament i manteniment dels SI de la Generalitat de Catalunya, Responsables de Projecte, Responsables de Qualitat | ||||||
Guies i Manuals | |||||||