state transition testing technique
Esbrineu què és la prova de transició d'estat i com s'utilitza el diagrama de transició d'estat:
En el nostre darrer article, vam veure el ‘ Gràfic de causes i efectes ’Tècnica d’escriptura de casos de prova. Avui passem al següent mètode dinàmic d’escriptura de casos de proves dinàmics: la tècnica de transició d’estat.
Aquest document explora ampliar aquest concepte de proves a aplicacions més grans, que no són FSM en el seu conjunt, però alguns dels seus components sí, per tal d’adoptar la seva característica única de “ser estatal” i les regles de transició, cosa que comporta molts avantatges.
Proves de transició estatal
Les proves de transició d'estat són un Tècnica de proves de caixa negra , que es pot aplicar per provar 'Màquines d'estat finit'.
Una 'màquina d'estats finits (FSM)' és un sistema que estarà en diferents estats discrets (com ara 'llest', 'no llest', 'obert', 'tancat', ...) en funció de les entrades o estímuls.
Els estats discrets amb què acaba el sistema depenen de les regles de transició del sistema. És a dir, si un sistema dóna una sortida diferent per a la mateixa entrada, depenent del seu estat anterior, és un sistema d'estats finits.
A més, si cada transacció es prova al sistema, s'anomena cobertura '0-switch'. Si les proves cobreixen 2 parells de transaccions vàlides, es tracta de cobertura '1 commutador', etc.
Què aprendreu:
Quina és la tècnica de proves de transició estatal?
La tècnica de transició d'estats és una tècnica de prova dinàmica, que s'utilitza quan el sistema es defineix en termes d'un nombre finit d'estats i les transicions entre estats es regeixen per les regles del sistema.
O dit d’una altra manera, aquesta tècnica s’utilitza quan les característiques d’un sistema es representen com a estats que es transformen els uns en els altres. Les transformacions estan determinades per les regles del programari. La representació pictòrica es pot mostrar com:
Per tant, aquí veiem que és una entitat transicions de l'estat 1 a l'estat 2 a causa d'alguns entrada condició, que condueix a un esdeveniment i resulta en acció i finalment dóna el sortida .
Per explicar-ho amb un exemple:
Visiteu un caixer automàtic i retirareu 1.000 dòlars. Obté el seu efectiu. Ara us quedeu sense saldo i feu exactament la mateixa sol·licitud de retirar 1.000 dòlars. Aquesta vegada el caixer automàtic es nega a donar-vos els diners a causa del saldo insuficient. Per tant, aquí el transició , que va provocar el canvi d'estat és la retirada anterior
Definició de proves de transició estatal
Havent entès què és la transició estatal, ara podem arribar a una definició més significativa per a les proves de la transició estatal. Per tant, és una mena de prova de caixa negra en què el provador ha d’examinar el comportament de l’AUT (Application Under Test) contra diverses condicions d’entrada donades en una seqüència.
El comportament del sistema es registra tant per als valors de prova positius com per als negatius.
Quan s'utilitza la prova de transició d'estat?
Les proves de transició estatal es poden utilitzar en les situacions següents:
on és la clau de seguretat de la xarxa?
- Quan l'aplicació que es prova és un sistema en temps real amb diferents estats i transicions incloses.
- Quan l'aplicació depèn de l'esdeveniment / valors / condicions del passat.
- Quan cal provar la seqüència d’esdeveniments.
- Quan s'ha de provar l'aplicació amb un conjunt finit de valors d'entrada.
Quan no s'utilitza la prova de transició estatal?
No us heu de basar en les proves de transició estatal en les situacions següents:
- Quan les proves no són necessàries per a combinacions d'entrada seqüencials.
- Quan calgui provar diferents funcionalitats de l'aplicació (més aviat com a proves exploratòries).
Exemple de proves de transició d'estat en proves de programari
En l’escenari pràctic, als provadors se’ls dóna normalment els diagrames de transició estatal i se’ns exigeix la interpretació.
Aquests diagrames els proporcionen els analistes empresarials o un grup d'interès i els fem servir per determinar els nostres casos de prova.
Considerem la situació següent:
Nom del programari - Gestiona els canvis de visualització
Especificacions - El programari respon a les sol·licituds d’entrada per canviar el mode de visualització d’un dispositiu de visualització de l’hora.
El mode de visualització es pot establir en un dels quatre valors:
- Dos corresponents a la visualització de l'hora o la data.
- Els altres dos quan es modifica l’hora o la data.
Els diferents estats són els següents:
- Canvi de mode (CM): L'activació d'això farà que el mode de visualització es mogui entre 'temps de visualització (T)' i 'data de visualització (D)'.
- Restableix (R): Si el mode de visualització s'estableix en T o D, un 'restabliment' farà que el mode de visualització estigui configurat en els modes 'alter time (AT)' o 'alter date (AD)'.
- Temps establert (TS): L'activació d'això farà que el mode de visualització torni a T des de AT.
- Conjunt de dates (DS): L'activació d'això farà que el mode de visualització torni a D des de AD.
Diagrama de transició d'estat
Ara, anem a interpretar-ho:
Aquí:
# 1) Hi ha diversos estats:
- Temps de visualització (S1),
- Canvia l'hora (S3),
- Data de visualització (S2) i
- Data de canvi (S4).
# 2) Hi ha diverses entrades:
- Canvi de mode (CM),
- Restableix (R),
- Temps establert (TS),
- Conjunt de dates (DS).
# 3) Diverses sortides són:
- Alter Time (AT),
- Temps de visualització (T),
- Data de visualització (D),
- Data de modificació (AD).
# 4) Els estats canviats són:
- Temps de visualització (S1),
- Canvia l'hora (S3),
- Data de visualització (S2) i
- Data de canvi (S4).
Pas 1: Escriviu tots els estats inicials. Per a això, preneu un estat a la vegada i vegeu quantes fletxes en surten.
- Per a l’Estat S1, hi ha dues fletxes que en surten. Una fletxa indicarà S3 i una altra fletxa indicarà S2.
- Per a l'Estat S2: hi ha 2 fletxes. Un anirà a l’Estat S1 i l’altre anirà a S4
- Per a l’Estat S3: només hi surt una fletxa que anirà a l’Estat S1
- Per a l'Estat S4: només surt una fletxa que anirà a l'estat S2
Posem això a la nostra taula:
Com que per a l'estat S1 i S2, hi ha dues fletxes que surten, l'hem escrit dues vegades.
Pas -2: Per a cada estat, escriviu els estats de transició finals.
- Per a l'estat S1: els estats finals són S2 i S3
- Per a l'estat S2: els estats finals són S1 i S4
- Per a l'estat S3: l'estat final és S1
- Per a l'estat S4: l'estat final és S2
Poseu-ho sobre la taula com a estat de sortida / resultat.
Pas 3: Per a cada estat d’inici i el seu estat d’acabament corresponent, escriviu les condicions d’entrada i sortida
- Perquè l’estat S1 passi a l’estat S2, l’entrada és Mode de canvi (CM) i la sortida és Data de visualització (D) que es mostra a continuació:
De manera similar, escriviu les condicions d'entrada i la seva sortida per a tots els estats de la següent manera:
Pas 4:
Ara afegiu l'identificador del cas de prova per a cada prova que es mostra a continuació:
Ara convertim-lo en casos de prova formals:
D'aquesta manera, es poden derivar tots els casos de prova restants. Suposo que l’altre atributs dels casos de prova com ara les condicions prèvies, la gravetat, la prioritat, l'entorn, la compilació, etc. també s'inclouen al cas de prova.
Resumint els passos una vegada més:
- Identifiqueu els estats inicials i el seu estat final en funció de les línies / fletxes que surten de l’estat inicial.
- Per a cada estat inicial, esbrineu la condició d’entrada i el resultat de la sortida
- Marqueu cada conjunt com un cas de prova independent.
Més exemples de tècnica de transició estatal
Aquí teniu un exemple més de la tècnica de proves de transició estatal en aplicacions de programari més grans.
com obrir els fitxers jar Windows 10
Descripció:
' Proves funcionals amb estat ” es pot utilitzar per provar parts o components específics de l'aplicació, amb la característica d'una màquina d'estats finits (FSM).
Passos en la implementació:
# 1) El primer pas per implementar les ‘proves funcionals d’estat’ és identificar diferents components / parts de l’aplicació que es poden classificar com a FSM. Es fa un seguiment acurat de les entrades, estats i sortides de cadascun d’aquests FSM.
# 2) El següent pas seria desenvolupar casos de prova per a aquests FSM basats en regles de transició, entrades, sortides i estats de transició.
# 3) El tercer pas seria integrar les proves d’aquests components amb altres components d’interfície per validar l’aplicació de punta a punta.
Això es pot explicar mitjançant un exemple d'aplicació anomenada 'Projecte de casa', que fa un seguiment de la construcció d'una casa, amb diversos components de l'aplicació, com ara l'aprovació de l'arquitectura de la casa, el registre de la parcel·la i la casa, la selecció del contractista de l'edifici , aprovació de préstec d’habitatge, etc.
Per exemple,
Considerarem la possibilitat de provar un component FSM de l’aplicació “Projecte de cases”: l’aprovació del préstec d’habitatge.
Sol·licitud d’aprovació de préstecs d’habitatge (HLA)
L'aplicació HLA serà gestionada per un usuari independent de processament de préstecs, que tramita la sol·licitud de préstec. A continuació es detallen els diferents passos de la tramitació de la sol·licitud:
1.1.1 Pas 1: Recollida de documents
El primer pas és la recollida de documents rellevants per sol·licitar el préstec tal com s’esmenta a la taula següent. Són les 'condicions' per a una sol·licitud reeixida. El sol·licitant recull els documents requerits i els aplica al préstec per a la llar.
L'usuari de processament de préstec reconeix la recepció dels documents i transita l'estat de l'aplicació de préstec (que és l'estat del component de l'aplicació HLA) a l'estat 'Aplicat'.
Taula 1: Llista de documents
1.1.2 Pas 2: avaluació del préstec
En aquesta etapa, el prestador avalua la sol·licitud de préstec per determinar si compleix els seus requisits de crèdit. Els documents acreditatius es verificen en aquest moment.
Taula 2: Crítica dels documents
Els documents necessaris per a l'avaluació, és a dir, les 'condicions' que cal validar en aquesta etapa, estan validats. Cada condició té una criticitat (esmentada com a 'Y' a la taula anterior). Un cop es compleixen totes les condicions crítiques requerides, l'aplicació passa a l'estat 'Confirmat', és a dir, el component de l'aplicació HLA es troba a l'estat 'Confirmat'.
Punt a tenir en compte:
# 1) Aquest principi aporta una estructura i objectivitat a les condicions de prova i a les definicions d ''estat' del sistema .
A més, no totes les 'condicions' per validar el sistema són fonamentals perquè arribi a aquest estat 'Confirmat'. A la taula anterior, 4 condicions es marquen com a 'No crític' perquè l'aplicació arribi a l'estat 'Confirmat'.
# 2) El nombre de validacions es pot reduir òptimament, en funció del risc o de la criticitat de les regles necessàries per a cada estat. Això reduirà significativament el temps necessari per a l'execució de les proves i, al mateix temps, no comprometrà la qualitat de les proves.
# 3) Això no només és útil per provar els components individuals, sinó també per provar el sistema de punta a punta.
# 4) A més, és molt útil en crear suites de proves de regressió.
Per tant, en aquesta etapa, es tracta d’un tipus de prova de 0 commutadors. Però les fases posteriors d’aprovació poden ser tipus de validació amb 1 o 2 commutadors per a aquesta etapa.
Per exemple, És possible que el 'certificat de matrimoni' no sigui massa rellevant en aquesta etapa, però en les darreres fases d'aprovació quan es considera el risc del sol·licitant de pagar l'EMI, el certificat de matrimoni pot esdevenir rellevant, és a dir, si el cònjuge també treballa , redueix el risc i, si no s’utilitza, augmenta el risc.
# 5) El principi anterior es pot utilitzar per ampliar les condicions de prova en funció del requisit del component en aquesta etapa.
1.1.3 Pas 3: aprovació condicional
L'estat actual de l'aplicació és 'Confirmat'. El prestador donaria 'aprovació condicional' perquè el procés de préstec avancés. Es necessiten validacions addicionals per traslladar l'aplicació HLA a l'estat 'Aprovat'.
1.1.4 Pas 4: aprovació
En aquesta etapa es realitzen validacions crítiques:
- Avaluació per part de l’assegurança hipotecària dels prestadors (LMI): això suposaria dues validacions o més per a la genuïnitat de la propietat.
- El prestador pot exigir informació que no s’hagi proporcionat durant l’etapa de “Confirmació”.
Un cop es compleixen les condicions anteriors, l'aplicació passa a l'estat 'Aprovat'. L’autoritat final del procés d’aprovació pot comprovar la credibilitat del sol·licitant del préstec sol·licitant-ne més detalls o bé no demanar si els altres documents del sol·licitant són concloents. És a dir, es necessitarien més entrades de diferents components de l’aplicació principal per demostrar la validesa .
# 6) Dit d’una altra manera, és possible que siguin necessàries (o reduïdes) més validacions per a la transició a un estat diferent en funció de les condicions d’entrada al component d’altres components de l’aplicació.
El diagrama següent mostra el procés d’aprovació.
Figura 1: Procés d’aprovació de préstecs
Riscos i reptes
- Per a aplicacions grans, el coneixement profund de l’aplicació és essencial per dividir l’aplicació en diferents components lògics per permetre la classificació com a FSM i components normals. Això pot requerir un temps costós per part de les pimes.
- No totes les aplicacions tindrien la viabilitat d’aquest tipus de categorització de FSM.
- Atès que els components FSM interactuen amb components habituals de l'aplicació, les entrades a FSM de diferents components requereixen una planificació i execució acurades.
Avantatges de les proves de transició d'estat
- Segons aquesta tècnica, mitjançant l'ús d'una representació pictòrica o tabular del comportament del sistema, el provador es familiaritza amb el disseny de l'aplicació i se sent fàcil de cobrir i dissenyar les proves de manera eficaç i eficient.
- Els estats no planificats o no vàlids del sistema també es cobreixen mitjançant l'ús d'aquesta tècnica.
- Mitjançant el diagrama de transició d’estat, és fàcil verificar si es cobreixen totes les condicions.
Desavantatges de les proves de transició d'estat
- Aquesta tècnica no es pot utilitzar per a sistemes d’estats no finits.
- Definir tots els estats possibles per a sistemes grans i complexos és una tasca bastant feixuga.
Conclusió
La prova de transició d’estat és un enfocament útil quan cal provar diferents transicions de sistemes per a sistemes d’estats finits.
La prova d'una aplicació amb el concepte de 'Prova funcional d'estat' pot donar a les organitzacions de proves un enfocament de prova únic per provar aplicacions complexes, que augmentaria la productivitat de l'execució de les proves sense comprometre la cobertura de les proves.
Les proves de transició d'estat són un enfocament de prova únic per provar aplicacions complexes, que augmentarien la productivitat de l'execució de les proves sense comprometre la cobertura de les proves.
La limitació d’aquesta tècnica és que no es pot utilitzar fins que el sistema sotmès a prova només tingui estats finits.
Lectura recomanada
- Què és la tècnica de proves basades en defectes?
- Què és la tècnica de proves de matriu ortogonal (OATS)?
- Proves funcionals contra proves no funcionals
- Què és la prova de comparació (apreneu amb exemples)
- Què és la prova de mutació: tutorial amb exemples
- Què és la prova de resistència en proves de programari (exemples)
- Què és la prova de punta a punta: Marc de proves E2E amb exemples
- Les millors eines de prova de programari 2021 (Eines d'automatització de proves de control de qualitat)