automated regression testing
Aquest tutorial explica els reptes de les proves de regressió automàtiques. També coneixerem el procés i els passos per automatitzar les proves de regressió:
Aprendrem a automatitzar els casos de proves de regressió a partir d’identificar-los, seleccionar una eina per fer l’automatització, fer anàlisis de costos, temps i esforç, escriure scripts i, finalment, lliurar-los a l’equip de proves manuals perquè puguin executar els casos de prova. des de qualsevol lloc i en qualsevol moment.
Si us pregunteu per què només el paquet de proves de regressió, és perquè el paquet de proves de regressió és el principal candidat a l’automatització, ja que és el conjunt de casos de prova que són repetitius i triguen el temps. Per tant, automatitzar-los us estalviaria molts recursos i també consumiria menys temps.
Rebreu informes ràpids sobre els casos de proves de regressió i podeu seguir aquests passos per automatitzar qualsevol altra suite de proves.
=> Feu clic aquí per obtenir la sèrie completa de proves de regressió.
Què aprendreu:
- Proves de regressió automàtiques
- Proves automatitzades: reptes en un entorn àgil
- Passos per automatitzar les proves de regressió
- Conclusió
Proves de regressió automàtiques
Recentment, quan volia iniciar el meu nou projecte de proves automàtiques amb quatre recursos, vaig pensar a aplicar qualsevol de les metodologies Agile. Però no vaig poder continuar perquè em van plantejar una sèrie de preguntes.
Les preguntes eren com:
- És possible utilitzar metodologies Agile en proves automatitzades?
- Puc utilitzar eines tradicionals?
- Hauria d’optar per eines de codi obert?
- Quins són els reptes que he d’afrontar si estic implementant l’automatització en un entorn àgil?
En aquest article, analitzem alguns dels reptes als quals ens enfrontem mentre implementem metodologies d’Automatització amb Agile. Les proves de regressió automatitzades a l’entorn Agile representen un risc de convertir-se en caòtic, no estructurat i descontrolat.
Agile Projects presenta els seus propis reptes a l’equip d’Automatització. La metodologia Agile posa l'accent en la col·laboració en equip i el lliurament freqüent d'un producte. Factors com l'abast del projecte poc clar, diverses iteracions, documentació mínima, necessitats automàtiques primerenques i freqüents i implicació activa dels grups d'interès, etc., exigeixen molts desafiaments a l'equip d'automatització.
Proves automatitzades: reptes en un entorn àgil
Hi ha diversos desafiaments àgils a l’equip d’automatització. No obstant això, a alguns d'ells es detallen a continuació.
Repte 1:Fase de requisits
El desenvolupador de Test Automation capta els requisits en forma de 'històries d'usuari', que són breus descripcions de la funcionalitat rellevant per al client.
Cal prioritzar cada requisit de la següent manera:
Alt: Aquests són requisits crítics per a la missió que cal fer absolutament a la primera versió
Mitjà: Aquests són els requisits importants, però que es poden solucionar fins que s’implementin.
Baix: Aquests són els requisits agradables, però que no són crítics per al funcionament del programari.
Un cop establertes les prioritats, es planifiquen les 'iteracions' de la versió. Normalment, cada iteració de versió Agile triga entre 1 i 3 mesos a publicar-se. Els clients / programes es prenen la llibertat de fer massa canvis als requisits. De vegades, aquests canvis són tan volàtils que les iteracions es veuen superades. Aquests canvis suposen reptes majors en la implementació del procés de proves d'Agile Automation.
com construir una xarxa segura
Repte 2:Selecció de les eines adequades
Les eines tradicionals d’última prova amb funcions de gravació i reproducció obliguen els equips a esperar fins que es faci el programari. A més, les eines tradicionals d’automatització de proves no funcionen en un context Agile, ja que resolen problemes tradicionals diferents dels reptes als equips d’Agile Automation.
L’automatització en les primeres etapes d’un projecte àgil sol ser molt dura, però a mesura que el sistema creix i evoluciona, alguns aspectes es resolen i es fa adequat desplegar l’automatització. Per tant, l'elecció de les eines de prova esdevé fonamental per obtenir els beneficis de l'eficiència i la qualitat de l'àgil.
Repte 3:Fase de desenvolupament de guions
Els provadors d'automatització, els desenvolupadors, els analistes de negocis i els grups d'interès del projecte contribueixen en total a les reunions d'inici on es seleccionen 'User-Stories' per al proper sprint. Un cop seleccionats els 'User-Stories' per al sprint, s'utilitzen com a base per a un conjunt de proves.
A mesura que la funcionalitat creix amb cada iteració, cal realitzar proves de regressió per garantir que la funcionalitat existent no s'hagi vist afectada per la introducció de noves funcionalitats a cada cicle d'iteració. El escala de les proves de regressió creix amb cada sprint i garanteix que aquesta continuï sent una tasca manejable i que l'equip de prova utilitzi l'automatització de proves per al conjunt de regressió.
Repte 4:Gestió de recursos
L’enfocament Agile requereix una barreja d’habilitats de prova, és a dir, que es necessitaran recursos de prova per definir escenaris poc clars i provar casos, dur a terme Proves manuals juntament amb els desenvolupadors, escriviu proves de regressió automatitzades i executeu els paquets de regressió automatitzats.
A mesura que avanci el projecte, també es requeriran habilitats especialitzades per cobrir altres àrees de prova que poden incloure la integració i les proves de rendiment.
Hauria d’haver una combinació adequada d’especialistes en dominis que planifiquessin i reunissin els requisits. La part difícil en la gestió de recursos és esbrinar recursos de prova amb múltiples habilitats i assignar-los.
Repte 5:Comunicació
Una bona comunicació ha d 'existir entre els Proves d'automatització equip, desenvolupadors, analistes de negocis i grups d'interès. Hi ha d’haver una interacció altament col·laborativa entre el client i els equips d’entrega. Més implicació del client implica més suggeriments o canvis per part del client. I implica més amplada de banda per a la comunicació.
El repte clau és que el procés ha de ser capaç de capturar i implementar eficaçment tots els canvis i que cal mantenir la integritat de les dades. En les proves tradicionals, els desenvolupadors i verificadors són com l’oli i l’aigua, però en un entorn àgil, la tasca difícil és que tots dos hagin de treballar junts per assolir l’objectiu.
Repte 6:Reunió Scrum diària
La reunió diària de Scrum és una de les activitats clau del procés àgil. Els equips es reuneixen durant 15 minuts de sessions verticals. Quina és l’eficàcia d’aquestes reunions? Fins a quin punt aquestes reunions ajuden als desenvolupadors de pràctiques d'automatització? etc., es debaten en aquesta reunió.
Repte 7:Fase de llançament
L’objectiu del projecte Agile és oferir un producte bàsic de treball el més ràpidament possible i després passar per un procés de millora contínua. Això significa que no hi ha una única fase de llançament per a un producte. La part difícil és la prova d’integració i la prova d’acceptació del producte.
Passos per automatitzar les proves de regressió
El procés a seguir per automatitzar la regressió es pot dividir amb precisió en els passos següents:
Aquests 7 passos s’expliquen a continuació amb detall en termes senzills per facilitar-ne la comprensió.
1. Identificació
# 1) Identifiqueu el fitxer casos de prova que hauria de formar part del conjunt de proves de regressió.
- Per començar a automatitzar els casos de proves de regressió, el primer que heu de fer és obtenir els casos de prova de regressió identificats i definits adequadament amb tots els passos, dades i requisits previs.
- Per assegurar-vos que teniu un conjunt de proves de regressió eficaç, no oblideu incloure:
- Provar casos amb defectes recurrents.
- Proveu casos que cobreixen escenaris d'extrem a extrem.
- Proveu casos que siguin més visibles per als usuaris finals.
- Provar casos sobre valors límit.
- Bona barreja de casos de prova positius i negatius.
- Casos complexos de proves.
# 2) Identifiqueu el fitxer eines d'automatització que siguin els millors per als vostres requisits i comportament de l'aplicació. Un cop identificats els casos de prova de regressió i preparats per a l'automatització, identifiqueu les eines que millor s'adaptin als vostres casos de prova.
La millor manera d’identificar les eines és fer una matriu amb les eines i els vostres requisits i després fer un seguiment de quina eina compleix quins requisits.
Lectura suggerida => Llista de les millors eines de proves d'automatització
# 3) Identifiqueu el fitxer Llenguatge de programació que voleu utilitzar. Amb tantes eines disponibles al mercat, aquestes eines admeten diversos idiomes. Per tant, és important identificar el llenguatge de programació en què voleu escriure els casos de prova d’automatització.
Exemple :Suposem que tenim un projecte on volem automatitzar un conjunt de proves de regressió per a una aplicació basada en navegadors.
Com s'ha explicat anteriorment, identificarem els casos de prova.
- Suposem que el nostre cas de prova és 'Verifiqueu que un usuari pugui iniciar la sessió amb èxit mitjançant un nom d'usuari i una contrasenya vàlids'.
A continuació, identificarem les eines d'automatització.
- Un cas de prova basat en navegador es pot automatitzar amb ' Seleni ',' Ranorex ',' Completar de prova '. Decidim l’eina Selenium perquè s’adapti millor als requisits.
Ara, identifiquem un llenguatge de programació.
- Volem utilitzar ' Java ”Com a llenguatge de programació com a llenguatge molt recolzat.
2. Anàlisi
# 1) Fes-ho Cost anàlisi. És molt important treballar dins dels límits pressupostaris. Per tant, després de la fase d’identificació, tindreu una idea de quants casos de prova cal automatitzar i quines són les possibles eines que es poden utilitzar.
Totes les conclusions de la fase d’identificació us ajudaran a obtenir un pressupost aproximat i, per tant, podeu obtenir qualsevol aprovació, etc., si cal.
# 2) Fes-ho recurs i esforç anàlisi per veure si teniu recursos per treballar-hi. Juntament amb l'anàlisi de costos, és molt important fer una anàlisi de recursos i esforços per a una millor assignació de recursos i utilitzar el seu temps al projecte de manera eficient.
Mentre calculeu els recursos i els esforços, assegureu-vos de tenir en compte riscos com ara, si algú es posa malalt o si alguns casos de proves necessiten més recursos per a la seva execució, etc.
# 3) Fes-ho Temps Anàlisi. Es requereix una anàlisi de temps per assegurar-vos que podeu finalitzar el projecte d'automatització dins del pressupost i els terminis. Mentre es treballa en l’anàlisi del temps, serà útil preparar un gràfic de cronologia per controlar el progrés durant el desenvolupament.
Per obtenir una millor anàlisi de la cronologia del projecte:
- Identifiqueu les tasques i subtasques dels vostres projectes.
- Prioritzeu les tasques i les subtasques.
- Dibuixeu un gràfic de Gantt o un diagrama de xarxa per obtenir una millor picturització de la línia de temps.
Exemple :Seguint amb el nostre exemple en consideració de la fase d’identificació, a continuació s’explica aquesta fase:
Anàlisi de costos:
Suposem que el cost aproximat d’aquest projecte és de X $.
Recurs i esforç:
Per a això, s’ha d’automatitzar un cas de prova de cap a cap i necessitem un recurs a temps complet durant aproximadament 24 hores i també necessitem un recurs més per revisar el treball. Per tant, necessitem 2 recursos i l’estimació de l’esforç ronda les 40 hores.
Anàlisi de temps:
Per a això, dibuixem un petit gràfic de Gantt per veure la cronologia.
3. Formació / Contractació
# 1) Si alguns recursos ho requereixen formació , després planifiqueu la vostra formació. De vegades és possible que tingueu recursos de proves manuals que estiguin interessats en escriure casos de proves d'automatització o que algunes persones hagin treballat en l'automatització, però siguin diferents eines i estiguin disposats a aprendre l'eina que heu seleccionat per a l'automatització.
En aquest cas, identifiqueu aquests recursos i planifiqueu la seva formació perquè puguin començar a treballar en l’automatització dels casos de proves de regressió.
# 2) Si necessitem més recursos, treballarem en el contractació pla. Quan hàgiu fet l'anàlisi dels recursos per fer els esforços i si no sou capaç de satisfer les necessitats amb els recursos ja disponibles, planifiqueu la contractació d'alguns recursos nous amb les habilitats adequades que es requereixen per al projecte dins del pressupost.
Exemple:
Suposem que ja tenim un recurs familiaritzat amb els conceptes de Java i que vol aprendre el seleni. A continuació, organitzarem la formació de seleni per a aquesta persona.
Si no tenim recursos disponibles per a l’automatització. Llavors contractarem una persona que tingui experiència en l’automatització d’aquests casos de proves amb seleni i java.
4. Marc i pautes
# 1) Quan l’eina i els recursos estiguin llestos, treballeu per crear un marc o bé decidir quin utilitzar a partir dels marcs existents. Es poden utilitzar diversos marcs ja construïts o podeu construir-lo des de zero.
Mentre seleccioneu o creeu un marc, assegureu-vos que impliqueu els components sobre, casos de prova, registres, informes, entrada, connexió a la base de dades, etc.
# 2) Decidiu-vos per l'altre eines de suport que voleu utilitzar. Com que desenvolupar scripts d'automatització és una tasca de desenvolupament que implica escriure codi, seria molt millor esbrinar les altres eines de desenvolupament que serien necessàries per donar suport a l'escriptura dels vostres scripts.
Per exemple , Algunes eines que us poden ajudar són el git, GitHub, Jenkins, etc.
# 3) Esbossar el pautes per escriure scripts d'automatització. Cal esbossar les directrius perquè tots els recursos que treballen al projecte estiguin sincronitzats i facin servir les mateixes convencions de denominació, els mateixos procediments per a l’entrada / sortida de codi i el mateix llenguatge de programació.
convertidor segur de youtube a mp3 gratuït
Exemple:
Marc: Decidim-ho BDD marc (desenvolupament basat en el comportament) per a proves d'automatització.
Eines de suport: Les eines que necessitem per donar suport complet a l’automatització seran GitHub, Jenkins, Log4J, Cucumber i JUnit.
5. Scripts d'automatització
Comenceu a escriure scripts d'automatització. Un cop ho tenim tot, és a dir, l’eina, el llenguatge de programació, les habilitats necessàries i els casos de prova que cal automatitzar, podem començar a escriure scripts d’automatització.
Mentre escrivim scripts, hem d’assegurar-nos que:
- Es segueixen les pautes.
- Estem utilitzant les eines.
- Els casos de prova es modularitzen.
- Hauríem de ser capaços de reutilitzar els components si són necessaris en diversos casos de prova.
També hem d’assegurar-nos que el codi es manté correctament a l’eina de control de versions i que tots els membres de l’equip puguin col·laborar fàcilment.
Exemple:
Escrivim scripts reals per fer funcionar aquest cas de prova. La mostra dels scripts es pot mostrar com es mostra a continuació.
En primer lloc, l’escenari del cogombre d’aquest cas de prova es veuria a continuació:
Funció: Verifiqueu la funcionalitat d’inici de sessió
Com a usuari vull iniciar la sessió a l'aplicació
Esquema de l'escenari: inicieu la sessió a l'aplicació
Tenint en compte que obro l'aplicació
Quan introdueixo el nom d'usuari ''
I introdueixo la contrasenya ''
I faig clic al botó Inici de sessió
Després vaig a la pàgina d'inici
Exemples:
| nom d'usuari | contrasenya |
| testuser1 | contrasenya1 |
| testuser2 | contrasenya2 |
Després del fitxer de funcions, implementarem la definició del pas per als passos esmentats al fitxer de funcions.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }
Al final, la implementació real de la classe de funcionalitat d’inici de sessió seria la següent:
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }
6. Revisió
(imatge font )
# 1) Revisió del codi: Un cop es realitza un desenvolupador d'automatització amb l'escriptura de seqüències d'automatització, és molt important passar pels diferents nivells de revisió de codi.
Les ressenyes de codi ajuden a
- Identificar verificacions incorrectes.
- Cercar punts d’optimització de codi.
- Trobar millors maneres d'implementar la funcionalitat per a un ús eficient dels recursos.
Les revisions de codi també exposen la feina d’un desenvolupador a la resta de desenvolupadors i també li donen una perspectiva i un marge de millora diferents.
# 2) Revisió de casos de prova: Juntament amb la revisió del codi, la revisió dels casos de prova també és molt important. Hem d’assegurar-nos que els scripts de prova d’automatització quan s’executen realitzen el mateix conjunt d’accions i verificacions que esperem dels casos de proves manuals.
Per tant, revisar els casos de proves d'automatització amb analistes de negocis o experts en proves ajuda a augmentar la confiança en les proves d'automatització d'aquests casos de prova.
Exemple:
Per al nostre exemple en consideració, suposem que per a la revisió del codi hem rebut comentaris com 'element de cerca per identificador i no per nom'. Aquí, ho tindrem en compte i modificarem el nostre script en conseqüència.
A més, es podria fer una revisió de la prova per afegir passos per provar-los si sou a la pàgina d'inici després d'un inici de sessió correcte. Després, també afegiríem això als nostres scripts.
7. Lliurar
Lliureu els casos de prova, perquè tothom els pugui executar en qualsevol moment. Un cop els scripts d'automatització estiguin preparats per utilitzar-se, és molt important elaborar un pla de lliurament dels scripts d'automatització.
Aquest pla és obligatori, ja que volem assegurar-nos que automatitzar els casos de prova no limiti la seva execució a un conjunt específic de persones o habilitats. Tothom de l’equip o del projecte hauria d’estar autoritzat a executar els casos de prova.
Un dels possibles plans de lliurament és proporcionar un treball de Jenkins que es pugui activar per executar els casos de prova automatitzats.
Exemple:
En el nostre cas, suposem que hem entregat el cas de prova mitjançant una feina de Jenkins. Aquest treball de Jenkins, pren el codi de GitHub, el crea i executa els casos de prova en una màquina diferent.
Un cop la feina tingui èxit, us mostrarà l'informe de prova generat. Qualsevol persona que tingui accés a Jenkins pot executar aquesta feina. A més, es pot programar que aquest treball s'executi en un moment concret.
Conclusió
Si podem fer front a aquests reptes d’una manera ben optimitzada, les proves de regressió automatitzades a l’entorn àgil són una excel·lent oportunitat perquè el control de qualitat assumeixi el lideratge dels processos àgils. Està millor situat per salvar la bretxa entre els usuaris i els desenvolupadors, entendre què es requereix, com es pot aconseguir i com es pot assegurar abans del desplegament.
El resultat de la pràctica d’automatització hauria de tenir un interès especial en tots dos, a més de continuar assegurant que tot el sistema en evolució compleix els objectius empresarials i s’adapti als propòsits.
L’automatització d’un cas de prova de regressió sempre és útil, ja que és el millor candidat per començar proves d'automatització . Podeu seguir els passos esmentats anteriorment per automatitzar qualsevol conjunt de proves i no només la regressió.
Les proves d'automatització també són molt útils i rendibles i la inversió de temps en proves d'automatització només és escriure scripts i mantenir-los. Per tant, les proves d'automatització han de ser planificades i programades adequadament per a un projecte amb èxit.
Sobre l'autor: J. B. Rajkumar té més de 15 anys d’experiència tant en proves acadèmiques com de programari. Ha treballat com a entrenador corporatiu, responsable de proves, gerent de control de qualitat i gerent de control de qualitat.
Feu-nos saber els vostres comentaris / suggeriments sobre aquest article.
=> Visiteu aquí la sèrie completa de proves de regressió.
Lectura recomanada
- Les millors eines de prova de programari 2021 (Eines d'automatització de proves de control de qualitat)
- Prova de descàrrega de llibres electrònics
- 4 passos cap al desenvolupament de la mentalitat de proves àgils per a la transició amb èxit al procés àgil
- Reptes de proves manuals i d'automatització
- Diferència entre la prova de repetició i la prova de regressió amb un exemple
- 5 reptes i solucions de proves de mòbil
- Proves SaaS: reptes, eines i enfocament de proves
- Top 10 de les eines de proves de regressió més populars el 2021