Verificació i validació

La verificació i validació d’aplicacions d’entreteniment orientades a videojocs són processos crítics que es porten a terme per garantir la qualitat i la funcionalitat dels jocs abans del seu llançament al mercat.

La verificació es refereix al procés de revisar el codi, la funcionalitat i la qualitat del joc, enfocada a la cerca d’errors o defectes. Això pot incloure proves automatitzades i proves manuals de característiques específiques del joc per comprovar la jugabilitat, les mecàniques de joc i el rendiment entre altres.

La verificació també pot incloure proves d’integració, que asseguren que totes les parts del joc funcionen de manera eficient.

Per altra banda, la validació es refereix al procés d’assegurar-se que el joc compleix amb els requisits i expectatives de l’usuari final. Això pot incloure proves d’usuari i avaluacions d’usabilitat per garantir que el joc brindi una experiència de joc satisfactòria.

La validació pot incloure proves d’acceptació per verificar que el joc compleix amb els estàndards de qualitat definits per tercers (per exemple, els fabricants de consoles de videojocs).

Aquests dos components, la verificació i la validació, són una part important del procés d’assegurament de la qualitat (quality assurance, QA) d’un producte. L’assegurament de la qualitat se centra a garantir que el producte compleix amb els requisits i estàndards de qualitat, i en aquest context, la verificació i la validació són dues eines clau per aconseguir aquest objectiu.

Assegurament de la qualitat (QA)

El departament d’assegurament de la qualitat és responsable de garantir que el producte final compleix amb els estàndards de qualitat requerits i les expectatives del client o de l’estudi.

Les funcions específiques del departament de QA poden variar segons l’empresa i el producte que s’està desenvolupant, però generalment inclouen el següent:

  • Desenvolupament i execució de plans de proves: el departament és responsable de planificar, dissenyar i executar plans de prova per avaluar el producte en diferents etapes del seu cicle de vida. Això inclou proves manuals i proves automatitzades per verificar la funcionalitat, el rendiment i la usabilitat del producte.
  • Identificació i seguiment de problemes: treballa en col·laboració amb els equips de desenvolupament per identificar i rastrejar els problemes o defectes que es troben durant les proves, incloent-hi informar sobre els problemes detectats i fer un seguiment de la seca resolució per garantir que se solucionin de forma efectiva.
  • Definició i seguiment dels estàndards de qualitat: el departament d’assegurament de la qualitat defineix els estàndards de qualitat pel producte i treballar per garantir que el producte final compleixi amb aquests estàndards. Això pot incloure la definició de polítiques i procediments per la gestió de la qualitat i el seguiment de la conformitat dels estàndards. Aquesta labor acostuma a ser compartida amb els productors.
  • Avaluació de la satisfacció del client: avalua la satisfacció del client amb el joc i treballa amb els equips de desenvolupament per afrontar qualsevol problema o deficiència en el producte que pugui afectar la satisfacció del client.
  • Participació en el procés de desenvolupament: participa en el procés de desenvolupament des del principi fins al final, treballant en estreta col·laboració amb els equips de desenvolupament i altres departaments per garantir que el producte final compleixi amb les expectatives dels clients.

Etapes del projecte

El departament d’assegurament de la qualitat està involucrat en totes les fases d’un projecte de videojocs, incloent-hi les fases alfa, beta i llançament.

En la fase alfa, que és l’etapa més primerenca del desenvolupament, l’objectiu principal del departament és identificar i solucionar els problemes crítics del joc, com els errors importants de programació o de jugabilitat. Les proves se centren en el nucli del joc i es realitzen internament en l’estudi de desenvolupament.

En la fase beta, el joc es troba en un estat més avançat i s’han agregat més característiques i contingut. En aquest punt el joc és jugable des de principi a fi i inclou totes les funcionalitats planificades. Les proves se centren en l’estabilitat general del joc, la jugabilitat, la usabilitat i la compatibilitat amb diferents plataformes i sistemes operatius. Les persones encarregades de testar el joc (verificadors o testers) poden involucrar la comunitat de jugadors en les proves, per tal d’obtenir comentaris addicionals i garantir que el joc sigui atractiu per la seva audiència.

En la fase de llançament, el joc està llest per ser llançat al mercat i el departament d’assegurament de la qualitat se centra a assegurar que el joc sigui completament jugable i estigui lliure d’errors importants. Les proves se centren en els detalls finals del joc, com els temps de càrrega, la qualitat de l’àudio i els gràfics, la facilitat d’ús i la compatibilitat amb maquinari i programari de tercers. A més, s’assegura que es compleixin els requisits dels desenvolupaments de plataformes i els fabricants de consoles.

Processos de QA

Els processos d’assegurament de la qualitat són crucials per garantir que el producte final sigui lliurat amb el nivell de qualitat esperat pels usuaris.

Els processos principals són els següents:

Un bug és un problema de programari que produeix un comportament no desitjat o incorrecte.

  1. Planificació de proves: aquest procés implica la definició d’objectius de prova, la selecció de casos de prova rellevants i la preparació de l’entorn de prova.
  2. Disseny de proves: en aquest procés se dissenyen els casos de prova detallats i s’identifiquen els criteris d’acceptació.
  3. Execució de proves: en aquest procés s’executen els casos de prova per avaluar la funcionalitat, el rendiment i la usabilitat del producte.
  4. Identificació i seguiment de problemes: durant l’execució de les proves es poden detectar problemes o bugs que hauran de ser identificats i registrats en un sistema de seguiment de problemes. Aquests bugs hauran de ser solucionats pel departament de desenvolupament.
  5. Verificació de problemes solucionats: un cop s’ha solucionat un bug, s’ha de verificar que s’hagi corregit correctament i s’han de realitzar proves addicionals per garantir que el producte final no tingui problemes relacionats amb aquests bug.
  6. Avaluació de la qualitat: quan s’han completat les proves i s’han solucionat els bugs, cal avaluar la qualitat del producte final en termes de funcionalitat, rendiment, usabilitat i satisfacció dels usuaris.

Bugs

Els bugs són problemes de programari que provoquen un comportament incorrecte del joc o aplicació. Pot tenir diferents orígens com per exemple problemes de disseny, de programació, d’integració, de configuració o sorgir a partir de la interacció amb altres components del sistema.

Aquests bugs poden manifestar-se de diferents formes, ja sigui com una pantalla d’error, un tancament inesperat, problemes de rendiment, funcionament incorrecte d’alguna funcionalitat, etc. És important destacar que els bugs poden tenir diferents nivells de gravetat i poden afectar de diferents maneres a la qualitat i la funcionalitat del software.

La severitat d’un bug es refereix a la importància o l’impacte que té en el programari i en l’usuari. A continuació es mostren alguns exemples de nivells de severitat d’un bug:

  • Crític: és aquell que impedeix al jugador avançar en el joc o li impedeix completar el joc per complet. Per exemple, podria ser un error que provoqui la corrupció de dades de guardat d’un jugador, el que significaria que perdria tot el seu progrés en el joc. Un altre exemple podria ser un error que fa que el joc es bloquegi per complet en intentar carregar una partida guardada.
  • Greu: un bug greu té un impacte significatiu en l’experiència del jugador, però no impedeix necessàriament que el jugador completi el joc. Un exemple de bug greu podria ser que el jugador no pugui avançar en una part crucial del joc, com una seqüència d’acció o una cinemàtica. Un altre exemple podria ser un error que faci que alguns elements del joc no es mostrin correctament.
  • Mig: es tracta de bugs que tenen un impacte menor en l’experiència del jugador, però que afecten la qualitat del joc. Un exemple podria ser un error que provoqui petites falles gràfiques com textures borroses o problemes d’il·luminació, o un enemic que tingui un comportament inesperat, però que no bloquegi el progrés del jugador.
  • Baix: els bugs de severitat baixa són aquells que tenen un impacte mínim en l’experiència del jugador. Un exemple de bug d’aquest tipus pot ser un error ortogràfic en un diàleg o una petita falla de so que no afecta significativament a l’experiència del jugador.

Quan es detecta un bug aquest s’ha d’identificar i enregistrar utilitzant alguna eina de gestió de bugs. Tot i que aquestes eines són molt diferents, el tractament dels estats pels quals passa un bug acostuma a ser similar al següent:

  1. Nou: un bug que s’ha identificat i registrat en el sistema de seguiment de problemes, perquè encara no s’ha verificat.
  2. Obert: el bug s’ha verificat i està en procés de solució per part dels equips de desenvolupament.
  3. En espera: el bug s’ha verificat, però s’ha posposat per una correcció futura.
  4. Corregit: un bug que s’ha solucionat i que està llest per ser verificat. Sí no es verifica que s’ha solucionat es tornarà a obrir.
  5. Tancat/Solucionat: un bug que s’ha verificat que ha estat solucionat i s’ha tancat en el sistema de seguiment de bugs.

A la figura figura podeu veure un exemple d’una fitxa d’un bug en l’aplicació de seguiment de bugs de Epic pel motor Unreal Engine.

Figura Fitxa d’un bug registrat

Perquè l’equip de desenvolupament pugui solucionar un bug, aquest ha de ser reproduïble.

Eines de QA

Existeixen moltes eines que són utilitzades pels departaments d’assegurament de la qualitat en el desenvolupament de videojocs, entre les més comunes s’inclouen:

  • Programari de seguiment de bugs: aquestes eines permeten als equips d’assegurament de la qualitat i desenvolupament realitzar el seguiment dels bugs trobats al joc. Alguns exemples d’aquests sistemes de seguiment són JIRA, Bugzilla i Trello (encara que aquest darrer no és apte per projectes complexos).
  • Eines d’automatització de proves: permeten als equips de QA automatitzar les proves per estalviar temps i reduir l’error humà. Aquestes eines dependran de la plataforma per la qual s’està desenvolupant i requereixen coneixements de programació. Alguns exemples són Unity Test Runner per Unity i Gauntlet per Unreal Engine.
  • Eines de proves de rendiment: utilitzades per mesurar el rendiment del joc i els colls d’ampolla. Alguns exemples d’eines de rendiment són Unity Performance Profiler per Unity i Unreal Insights per Unreal Engine.
  • Simuladors i emuladors: en alguns casos no és possible, o pràctic, testejar el lloc en tots els dispositius, en aquests casos és necessari recórrer a emuladors com Android Emulator per Android o els emuladors d’iOS de XCode.

Proves manuals i automàtiques

Les proves manuals i automàtiques són dos enfocs diferents que s’utilitza habitualment al departament d’assegurament de la qualitat per avaluar la qualitat del joc.

Les proves manuals impliquen que un verificador humà jugui al joc i realitzi proves en diferents aspectes d’aquest, com la jugabilitat, la interfície d’usuari, la narrativa, l’estabilitat, la qualitat gràfica, etc. Durant aquestes proves, els verificadors executen escenaris predefinits per identificar errors o problemes en el joc, documentant els problemes trobats en un sistema de seguiment de bugs.

El verificador (en anglès, tester) és la persona encarregada de testar el joc, és a dir, de detectar possibles errors en la programació. Aquestes proves o testatges garanteixen la qualitat del joc abans de llançar-ho al gran públic.

Per altra banda, les proves automatitzades es duen a terme mitjançant l’ús d’eines d’automatitzades per simular les interaccions dels usuaris amb el joc i executar proves repetibles. Aquestes proves poden incloure la detecció de problemes de rendiment, com caigudes de frames per segon o problemes de càrrega, o la comprovació de la integritat de les dades del joc.

Les eines d’automatització també poden incloure proves unitàries, en les que s’avaluen individualment parts del codi per assegurar-se que funcionen correctament.

És important tenir en compte que tots dos enfocaments de prova són complementaris. Les proves manuals permeten als verificadors avaluar la jugabilitat i l’experiència d’usuari, mentre que les proves automatitzades permeten realitzar proves repetibles i exhaustives que serien difícils o impossibles de realitzar manualment. En darrera instància, la combinació de tots dos enfocaments ajuda a garantir que s’identifiquin i es resolguin els problemes de qualitat del joc en desenvolupament.

Assegurament de la qualitat exitós: 'The Legend of Zelda: Breah of the Wild'

Un exemple d’assegurament de la qualitat exitós en el desenvolupament de videojocs és The Legend of Zelda: Breath of the Wild, llençat en 2017 per Nintendo per la consola Nintendo Switch i Wii U.


Aquest joc va ser molt ben rebut pels jugadors i la crítica a causa de la seva gran jugabilitat, història, món obert i gràfics impressionants. Això va ser en part gràcies a un rigorós procés d’assegurament de la qualitat que va ajudar a identificar i corregir molts dels problemes abans del seu llançament.


Durant el procés d’assegurament de la qualitat es van dur a terme proves exhaustives de diferents aspectes del joc, incloent-hi la jugabilitat, la narrativa, els gràfics i l’estabilitat. Els verificadors van realitzar proves d’acceptació per simular l’experiència dels usuaris finals, mentre que les proves automatitzades es van utilitzar per identificar problemes de rendiment i compatibilitat en diferents plataformes.


Tot això va donar com a resultat en un llançament exitós del joc, amb molt pocs problemes tècnics i de jugabilitat, el que va fer que el joc fos molt ben rebut pels jugadors i la crítica.

Proves d'integració

Les Proves d’integració s’enfoquen en verificar que els diferents components d’un sistema interactuen correctament entre si. En el context dels videojocs, les proves d’integració se centren a garantir que tots els elements del joc, com els personatges, els objectes, les missions i el món de joc, funcionin junts sense problemes.

Durant aquest procés, es combinen diferents components i es proven junts per verificar que tots funcionen correctament.

El procés d’integració segueix els següents passos:

  1. Identificació de components: s’identifiquen els diferents components del sistema que han d’integrar-se.
  2. Creació de casos de prova: es creen els casos de prova per cadascun dels components.
  3. Integració de components: es combinen els diferents components i es proven junts. En el cas dels videojocs podria implicar la combinació de diferents aspectes del joc, com la mecànica, els gràfics i la intel·ligència artificial.
  4. Verificació de resultats: es verifica que els diferents components funcionen junts de manera efectiva i sense problemes. Se cerquen errors i es documenten.
  5. Correcció d’errors: es corregeixen qualsevol error o problema detectat i es torna a provar.

Verificació de sistemes

Una prova d’integració podria ser la verificació que el sistema d’il·luminació funciona correctament amb els models de personatges i objectes en el joc.


Això implicaria la creació d’un entorn de prova que contingui diferents models de personatges i objectes, i es provaria la il·luminació en diferents configuracions per assegurar-se que tot es vegi correctament i no hi hagi problemes de visualització.


Un altre exemple seria la prova d’integració de les mecàniques de joc i la intel·ligència artificial. Durant aquesta prova, es verificaria que els enemics i altres personatges no jugadors reaccionin de manera coherent a les accions del jugador i que les mecàniques del joc i els moviments dels personatges funcionin correctament en diferents situacions. Per exemple, si un jugador salta sobre un enemic, la intel·ligència artificial de l’enemic ha de reaccionar adequadament i esquivar l’atac.

Proves d'acceptació

Les proves d’acceptació són una part molt important en el procés de QA i s’utilitzen per garantir que el joc estigui llest pel llançament. Aquestes proves tenen com a objectiu avaluar el joc des de la perspectiva de l’usuari final i assegurar-se que compleix amb els requisits i expectatives del mercat.

Les proves d’acceptació en videojocs es realitzen després de completar les proves funcionals i d’integració, i abans del llançament del joc. Durant aquestes proves, les persones encarregades de fer el testatge simulen els escenaris que un jugador experimentaria en el joc.

Cal destacar que aquestes proves també han d’incloure el testatge dels requisits dels fabricants. A la figura figura podeu veure alguns dels requisits de Meta per publicar una aplicació a les seves tendes per dispositius de realitat virtual.

Figura Exemples de requisits per publicar un joc de realitat virtual

Algunes de les activitats que es realitzen durant les proves d’acceptació inclouen:

  • Avaluació de la jugabilitat: es verifica que el joc sigui divertit i atractiu per l’usuari final. Es proven diferents nivells de missions i desafiaments del joc per assegurar-se que siguin interessants i desafiants.
  • Proves d’estabilitat: es verifica que el joc sigui estable i no tingui problemes de rendiment, congelaments o problemes de càrrega.
  • Proves de localització: es verifica que el joc estigui traduït correctament i que la interfície d’usuari i els diàlegs del joc siguin coherents i comprensibles en diferents idiomes.
  • Proves de compatibilitat: es verifica que el joc funcioni correctament en diferents plataformes i dispositius.
  • Proves d’integració social (si és necessari): es verifica que els sistemes socials del joc, com la connectivitat en línia i les característiques multijugador funcionin correctament.
  • Proves de qualitat gràfica: es verifica que els gràfics del joc siguin d’alta qualitat i que no hi hagi problemes de renderització.

Després de realitzar aquestes proves, es documenten els problemes trobats en el sistema de seguiment de bugs i es corregeixen abans del llançament del joc. Les proves d’acceptació són una part essencial del procés d’assegurament de la qualitat i garanteixen que el joc compleix amb els requisits, el que contribueix a la satisfacció de l’usuari final i de l’èxit del joc.

Assegurament de la qualitat fallit: 'Cyberpunk 2077'

Un exemple d’assegurament de la qualitat fallit en el desenvolupament de videojocs és el cas de Cyberpunk 2077, que va ser llançat el desembre del 2020 amb nombrosos problemes tècnics i de jugabilitat, el que va resultar en una recepció mixta per part dels jugadors i una gran quantitat de crítiques negatives.


Un dels problemes més notoris va ser la gran quantitat de bugs i errors en el joc, des de problemes de rendiment i estabilitat fins a problemes de disseny i jugabilitat. Aquests bugs incloïen personatges i objectes flotant en l’aire, problemes amb la intel·ligència artificial dels personatges no jugadors, problemes amb la física dels vehicles i amb la interfície d’usuari.


També es van produir problemes de compatibilitat en diferents plataformes i dispositius, incloent-hi problemes de rendiment i problemes de pantalla en les consoles més antigues.


Tot això va fer palès que el procés d’assegurament de la qualitat de Cyberpunk 2077 va fallar en identificar i solucionar molts d’aquests problemes abans del llançament del joc, el que va provocar una gran quantitat de crítiques i queixes per part dels jugadors. Això va tenir un impacte negatiu en la reputació de la companyia i del joc, i va portar a CD Projekt Red, el desenvolupador del joc, a llençar múltiples esmenes (patches) i actualització per corregir aquests problemes a posteriori.

Anar a la pàgina anterior:
Exercicis d'autoavaluació
Anar a la pàgina següent:
Activitats