bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
php_test

Testing amb PHP

Anem a explorar algunes tècniques de testing per a webs implementades en llenguatge PHP.

Requisits: conèixer les bases de programació web i del llenguatge PHP.

Referències:

  • Composer : gestor de paquets PHP.
  • PHPunit : utilitat per facilitar tests en PHP.
  • Selenium : suite d'eines per a automatitzar accions amb els navegadors web o browsers.
    • Geckodriver : driver de Selenium per a Firefox.
    • Selenium IDE : aplicació per a l'enregistrament d'automatitzacions del browser. Disponible com a plug-in per a Firefox i Chrome.
    • Selenium PHP driver : llibreria per emprar Selenium des de PHP.
  • PHPunit+Selenium : article on s'explica com combinar les dues tecnologies exitosament (i no morir en l'intent).


Introducció

El testing és una part imprescindible del desenvolupament. Fins-i-tot hi ha metodologies de desenvolupament com la TDD (Test Driven Developmenet) en què primer es generen els tests que el software ha de passar en base a les especificacions i user stories establertes, i després es desenvolupa el software necessari.

Sovint, la quantitat de codi generat per la part de testing pot arribar a superar a la quantitat de codi funcional. Això és natural, ja que si volem ser exhaustius amb les comprovacions, sovint cal comprovar una gran quantitat de possibles casos per assegurar que el software funciona com cal.

Hi ha una ampla classificació de tests possibles per al software segons diversitat de criteris. En destaquem alguns conceptes (no son una classificació per sí, només alguns conceptes importants):

  • Unit testing : tests orientats a provar parts petites del codi, habitualment classes i funcions.
  • Regression test : tests orientats a comprovar que les funcionalitats desenvolupades fins el moment continuen funcionant correctament, sobretot quan s'afegeix noves funcionalitats o bé es corregeixen bugs.
  • Tests funcionals : test orientat a comprovar una funcionalitat de l'aplicació, normalment relacionat amb les user stories que en defineixen el comportament.
  • Tests no-funcionals : comproven altres variables no relacionades amb les user stories com l'arquitectura d'escalabilitat o la resposta a altes càrregues de trànsit.


Exemples

Botiga

Utilitza aquest repo i segueix les seves instruccions per a un primer apropament als tests:

https://github.com/emieza/selenium-php

Es tracta d'un codi molt senzill d'una botiga.


Exercicis MySQL

En aquest exemple no hi ha el codi del què s'ha de fer, sinó que és una plantilla per a testejar els exercicis indicats a l'article PHP MySQL d'aquesta mateixa wiki.

Per executar els tests llegiu el README del repo:

https://github.com/AWS2/php-mysql-world-test-template

Està pensat per ser utilitzat com a plantilla per a Github Classroom Autograde.


XPath

Per accedir als elements del DOM HTML és habitual utilitzar XPath.

Per exemple, al AddCityTest.php trobem:

$element = self::$driver->findElement(WebDriverBy::xpath(
           "//option[contains(text(),'$countryName')]"));
$element->click();

Per mes info consulta l'article XPath.


php_test.txt · Darrera modificació: 2022/11/29 10:09 per enric_mieza_sanchez