Marc d’Automatització de Testing (MAT)
El Marc d’Automatització de Testing (MAT) és un framework especialitzat en l’automatització de proves, dissenyat per a integrar-se fàcilment amb els fluxos de desenvolupament i desplegament tant del SIC+ com del SIC 3.0. En SIC 3.0 apliquen pràcticament els mateixos principis i elements que en SIC+: també s’utilitzarà un fitxer release.yaml per a definir els test i els components de la release i també s’haurà de disposar d’un repositori en Gitlab per a cada tipus de test. Aquests repositoris en SIC+ es provisionan automàticament però en SIC 3.0 caldrà crear-los manualment dins del grup al qual pertany l’aplicació. Es recomana, per tant, revisar en primer lloc la documentació per a la integració amb MAT relativa a SIC+ disponible en el següent enllaç: MAT Orquestador
A continuació es descriuen les principals diferències a tenir en compte en aplicacions que es vagin a desplegar en SIC 3.0 i que es resumeixen en els següents temes:
- Creació dels repositoris de magatzematge de proves en SIC 3.0
- Nova estructura per al fitxer ACA.yml
- Nova pipeline d’execució de tests
- Procés d’execució de tests en MAT
Creació dels repositoris de magatzematge de proves en SIC 3.0
Els automatismes creats per a l’execució automàtica dels test requereixen que cadascun d’ells tingui el seu codi allotjat en un projecte de Gitlab pertanyent al mateix codi d’aplicació. Aquest repositori haurà de ser creat manualment i es pot inicialitzar incorporant la plantilla més adequada de les que s’indiquen en MAT Orquestador
En el repositori que es vagi a dedicar als test funcionals, caldrà incorporar el fitxer release.yaml que s’indica en el document anterior. Més endavant, aquests repositoris creats seran referenciats en el fitxer release.yaml perquè pugui connectar-se MAT i descarregar el codi dels test a executar.
Nova estructura per al fitxer ACA.yml
En el fitxer ACA.yml de l’aplicació cal incloure una nova secció “release” per a poder informar SIC 3.0 on se situa el fitxer release.yml referenciat anteriorment. Exemple:
version: 2.0.0
info:
description: Descripció
version: x.y.z
global-env:
- ...
release:
version: 1.0.0
test-repository: https://git.intranet.gencat.cat/0192/<functional test repo>
release-file: release.yml
[...]
En la secció “release” s’informa quina és la URL del repositori on se situa el fitxer release.yaml abans indicat. Els valors a informar seran:
version: conté la versió que es desplegarà. Identifica la versió de tota la release, és a dir, inclou tots els components dependents. test-repository: indica la URL de Gitlab on se situa el fitxer release.yaml release-file: s’indica quin és el nom del fitxer on s’emmagatzema la informació de release dins del repositori anterior. Normalment serà release.yaml
Per a ampliar informació poden dirigir-se a la guia de com construir el fitxer ACA.yml
Nova pipeline d’execució de tests
Dins del conjunt de pipelines disponibles per a cada aplicació, s’ha afegit al subgrup “Advanced” un nou pipeline EXECUTE-TEST.
Aquest nou pipeline permet que es pugui llançar de manera individual un test específic sobre un determinat entorn i utilitzant una URL que es proveirà en temps d’execució.
D’igual forma que quan s’executen els test com a part del desplegament, es validarà que els components de la release esten en la versió indicada en el fitxer release.yml.
El job, en ser invocat, mostrarà selectors per a indicar test, entorn i URL sobre la qual provar.

Procés d’execució de tests en MAT
Per a començar a executar els test de MAT en un pipeline de SIC 3.0, es requereix dur a terme les següents tasques:
- Creació del repositori per a situar el fitxer release.yml. Aquest repositori ha de crear-se en el mateix grup de Gitlab en el qual se situï l’aplicació sobre la qual s’executaran els test. Aquesta tasca la duran a terme els desenvolupadors de l’aplicació i la recomanació seria utilitzar el mateix repositori que es vagi a utilitzar per a emmagatzemar els test funcionals.
- Creació de la resta de repositoris per als altres test funcionals aplicables.
- Creació del fitxer release.yml amb la informació dels repositoris dels tests, els components de l’aplicació i altra informació necessària.
- Sol·licitar via tiquet l’activació dels test funcionals. Una vegada s’activin els test, aquests s’executaran després del desplegament a l’entorn de preproducció.
Una vegada es disposi de tot el necessari i s’hagi activat la integració amb MAT en la pipeline, els test s’executaran com a pas addicional després del desplegament de l’aplicació a l’entorn de producció. Les accions que executarà la pipeline són les següents:
- Valguda l’estructura del fitxer release.yml
- Valguda que els components de la release estan en la versió indicada en aquest fitxer.
- Si tot l’anterior és correcte, executa, de manera seqüencial, els test que s’hagin descrit en el fitxer de release.
- Si algun dels passos anteriors és erroni, es marcarà el job com a inestable però continuarà el desplegament.
- Si algun dels test falla, igualment, es marcarà el job com a inestable.