Proves De Programari

Tutorial de proves unitàries per a principiants

30 d'octubre de 2021

La prova d'unitat és una manera de provar el mòdul més petit possible d'un programa per assegurar-se que és apte per utilitzar-lo. Es prova una unitat en forma de secció de codi per veure si es pot utilitzar juntament amb altres parts del codi (per exemple, funcions, mètodes i variables).

La prova d'unitat és un procés de prova de programari que consisteix a provar blocs o unitats individuals de manera aïllada amb l'únic objectiu de proves d'unitat per aïllar el codi escrit per provar i veure si la unitat funciona com es pretén.

El propòsit vital de les proves unitàries és proporcionar un conjunt de proves per a una sola unitat o component del programari, com ara una funció. Les proves solen consistir en una sèrie de proves de coherència estàndard per a cada component escrites (preferiblement) pel desenvolupador que ha treballat o està a prop del projecte.

Una unitat és la part més petita comprovable del programari informàtic. Per tal d'ajudar el procés, els desenvolupadors utilitzen eines com marcs de proves unitàries, controladors, talons, objectes simulats/falsos.

Si una prova d'unitat falla, es considera un error o un codi modificat a la prova mateixa.

Proves d'unitat

Taula de continguts

Nivells de prova:

La prova d'unitat és, òbviament, la primera prova que cal fer, i després s'han d'integrar tots els mòduls o blocs, i després proves d'integració s'ha de dur a terme. Un desenvolupador hauria de realitzar proves del sistema per avaluar els requisits de compliment i funcionalitat del sistema en un sistema completament integrat. I finalment, la prova d'acceptació verifica si el programa compleix les especificacions i contractes del client. Així és com un desenvolupador obté un codi perfecte.

Per què és important les proves unitàries?

Una manera més ràpida i eficient de provar:

La prova d'unitat és el procés d'escriure codi, provar-lo i després realitzar les altres proves automàticament. És una manera més ràpida de provar la lògica del programa, ja que la realització de proves unitàries requereix menys temps que les proves manuals o les proves integrades realitzades per l'equip de control de qualitat.

Control de qualitat:

Una col·lecció de proves d'estandardització garanteix que els canvis futurs no degraden la qualitat. Una o més proves d'unitat documenten el comportament esperat del codi de la unitat i la seva implementació. Per disciplinar el desenvolupament de les proves d'unitat, els programadors haurien d'introduir una sèrie de proves per a les unitats.

Fa que el codi sigui manejable i més còmode d'editar:

La capacitat d'escriure proves unitàries fa que sigui imprescindible dissenyar sistemes amb alta cohesió, i les millors proves unitàries vindran de desenvolupadors molt propers al projecte. El codi pot ser impossible o difícil de provar si està mal escrit, cosa que obliga els desenvolupadors a estructurar millor les funcions i els objectes. Les proves unitàries fan que el sistema sigui més manejable.

Més natural per identificar el problema:

Un altre propòsit essencial de les proves unitàries és proporcionar informació sobre l'impacte dels canvis en el procés de desenvolupament, com ara els canvis a la interfície d'usuari o la implementació de noves funcions. A partir del fracàs dels casos de prova, el marc de proves d'unitat també ajuda a aturar les proves relacionades.

Avantatges de les proves unitàries:

  • Fins i tot els desenvolupadors més experimentats coincideixen que és una bona idea practicar les proves unitàries. La prova d'unitat permet als programadors tornar a calcular el codi en un moment posterior i fer que el mòdul funcioni.
  • Un dels avantatges més significatius de les proves unitàries és que el desenvolupador pot utilitzar eines i marcs de prova.
  • Les proves unitàries fan que actualitzar el codi sigui més segur i còmode perquè introdueix proves que garanteixen que la refactorització funcioni sense problemes o sense interrupcions.
  • Les proves unitàries també condueixen a un programari que és més fàcil de mantenir durant tot el cicle de vida del programari i menys propens a errors quan s'afegeixen noves funcions o actualitzacions.
  • Les proves unitàries ofereixen una descripció clara i concisa del disseny i les especificacions d'un producte o servei en forma d'execució. Mitjançant l'ús de proves unitàries per a les especificacions de disseny, tenim una millor comprensió de què hem de comprovar la implementació i què hem d'utilitzar per a les proves.
  • Les proves unitàries triguen una quantitat de temps desproporcionada en comparació amb el codi provat. Per exemple, si el cost d'escriure una prova unitària és de 2 minuts, però el cost d'executar-la és pràcticament zero, o el preu de provar manualment el codi és d'1 minut, trencar el punt d'equilibri si el desenvolupador executa la prova. dues vegades. L'ús de proves unitàries en lloc d'inspeccions manuals de tota la base de codi significa que el desenvolupador redueix el cost global del projecte.
  • Un codi mal escrit pot ser impossible o difícil de provar d'unitat i, per tant, les proves d'unitat poden obligar els desenvolupadors a estructurar millor les funcions i els objectes. Les proves unitàries fan que un codi sigui tan perfecte com pot ser. El desenvolupador primer escriu la prova d'unitat, observa que falla, després escriu una segona prova per superar-la i el cicle es repeteix fins que s'entrega la funcionalitat prevista.

Desavantatges de les proves unitàries:

  • El principal inconvenient de les proves unitàries és que no és possible comprovar tots els camins d'execució i que no pot absorbir cap error significatiu del sistema o d'integració.
  • Escriure proves d'unitat pot ser difícil i el procés pot consumir molt de temps.
  • Els errors humans en les proves unitàries podrien afectar tot el sistema.
  • No és una prova completa, com diuen molts; quan els mòduls estan integrats, hi pot haver nous errors que no es detectin per les proves d'unitat.

Tècniques de prova d'unitat:

    Tècnica de la caixa negra: Caixa Negra La tècnica és un mètode de prova d'unitat on el SUT (programari sota prova) és la funcionalitat d'una aplicació sense mirar cap a la implementació, l'estructura interna o el codi. La tècnica de la caixa negra se centra en l'entrada i la sortida més que en el codi o coneixement intern.Tècnica de la caixa blanca:En Caixa Blanca Tècnica, el verificador és conscient de les parts internes del codi, l'estructura d'aquest mètode, l'estructura interna i el treball del codi, no la funcionalitat. Preferiblement, el provador ha de tenir excel·lents habilitats de programació com a perspectiva interna del mòdul, i les habilitats de programació es posen a prova.Tècnica de la caixa gris: Caixa Grisa La tècnica té un coneixement parcial del codi. Aquesta prova perfecciona l'estructura de codi inadequada o l'ús de funcionament inadequat d'una aplicació. És una barreja de tècniques de caixa blanca i negra. És una manera potent de provar una unitat.

Eines de prova d'unitat:

  • Nunit : Una de les famílies de la família xunit, Nunit és una prova d'unitat de codi obert dissenyada per a . NET i Mono framework és l'eina més utilitzada per escriure casing de prova d'unitat.
  • Jmockit : JMockit és una altra biblioteca de programari de codi obert. Inclou API per a la burla, la falsificació i les proves d'integració, i una eina de cobertura de codi. La biblioteca s'ha d'utilitzar juntament amb un marc de proves com ara JUnit o Nunit.
  • Junit: Igual que Nunit, és una prova d'unitat de codi obert però dissenyada per a Java. També és de la família de Xunit. S'utilitza perquè els desenvolupadors escriguin proves repetibles, té una base sòlida per a les proves unitàries.
  • Typemock : TypeMock pot burlar-se de gairebé qualsevol cosa mitjançant interfícies. A més, és possible burlar-se de mètodes i classes estàtiques que una eina estàndard de codi obert no pot burlar-se. S'implementen els patrons d'ordenar, actuar, afirmar i provar, i se'n fan aïllants.
  • Embunit : L'Embedded Unit Test Framework Embunit és un nou marc per a sistemes incrustats. Està dissenyat com un marc de prova per a aplicacions de programari escrites en C /C++ i admet tots els idiomes de xarxa. Aquest marc té el mateix propòsit que JUnit a Java, però amb un objectiu diferent: servir com a marc de proves de codi obert i multiplataforma.

Consells per a les proves d'unitat:

  • Si una prova d'unitat falla, tingueu en compte si es tracta d'un error o d'un codi modificat a la prova mateixa. Millorar la prova d'acceptació és vital si el desenvolupador troba un error durant una prova d'acceptació, però la majoria dels defectes s'han de detectar mitjançant proves d'equip.
  • Un principiant a la prova d'unitat hauria de buscar anti-patrons i eliminar-los, i això farà que el codi sigui eficient i reutilitzable.
  • Escriu intel·ligent; com a mínim, com sigui possible, un codi que se centra en el comportament del sistema és el codi perfecte.
  • Utilitzeu objectes falsos o falsos per fer proves eficients. L'ús del sistema real és arriscat, ja que posa en perill les dades.
  • No proveu els components de la interfície d'usuari tret que les proves de la instantània.

Temes relacionats

Proves d'integració Prova del sistema Prova d'acceptació