Ti invitiamo a leggere l'adattamento russo di un articolo di Tim Ebie, fondatore di https://testdemy.teachable.com/ , una piattaforma di QA per test di software online, creata per aiutare coloro che stanno iniziando il loro viaggio nei test automatizzati
Stiamo assistendo a un aumento dell’interesse e alla crescita del numero di applicazioni web sul mercato. Con loro arrivano sempre più lavori che richiedono programmazione, competenze tecniche e varie competenze di automazione. Di conseguenza, i tester manuali, per rimanere richiesti, vedono la necessità di passare dai test manuali puri al controllo qualità (QA) e stanno guardando ai test automatizzati. Passare dai test manuali a quelli automatizzati è una scelta intelligente, poiché molte posizioni di QA richiedono una serie di competenze tecniche relative alla scrittura del codice. Per coloro a cui non piace il cambiamento, tale cambiamento può essere scomodo. Altri sviluppatori, invece, vedono questo “momento di cambiamento” come un’opportunità per portare la propria carriera e le proprie competenze a un livello superiore e aumentare la propria rilevanza. Ogni volta che le richieste aumentano, le possibilità si espandono. Gli sviluppatori con le giuste competenze possono saltare sul treno e avere carriere fantastiche e ben pagate. Se stai cercando di passare dai test manuali all'automazione, o anche solo considerando il passaggio da un altro campo di sviluppo software, è opportuno compiere alcuni passaggi per aiutarti ad avere successo.
Ecco alcuni esempi di parole di ricerca che possono essere utilizzate per generare una valutazione di mercato:
Tester QA (test automatizzato):
Ecco alcuni suggerimenti chiave da queste descrizioni di lavoro. Ruoli ibridi/misti: prestare molta attenzione ai titoli professionali e al modo in cui queste aziende vedono i test automatizzati del software. Questo può essere visto dai nomi dei ruoli che elencano (Sviluppatore di automazione software, Sviluppatore software in test, ecc. Notate uno schema? Queste aziende si riferiscono più o meno agli ingegneri del QA come sviluppatori Software: per i tester manuali, questo significa che è ora di imparare come scrivere codice per trasformare casi di test manuali in script di test automatizzati. Per gli sviluppatori che desiderano passare ai test automatizzati, ciò significa che dovresti imparare di più sulle metodologie di test del software, testare il ciclo di vita del software e imparare come creare casi di test automatizzati per supportare questi cicli di vita.Non perdere questo cambiamento critico o rimarrai indietro.Con l'avvento delle metodologie Agile e dei progetti basati su Agile, sempre più organizzazioni stanno unendo QA e sviluppatori in uno solo. Quindi è tempo che ti prepari per il tuo nuove responsabilità. Gli individui che hanno una formazione di base nel mondo del test del software e allo stesso tempo hanno una buona conoscenza delle competenze di uno sviluppatore di software valgono oro. Tecnologie Open Source/Linguaggi di programmazione: Si prega di notare le tecnologie e i linguaggi di programmazione evidenziati in grassetto nelle descrizioni . Queste tecnologie e linguaggi sono mirati, è necessario apprenderli per essere richiesti sul mercato. Scegli una tecnologia molto richiesta e inizia a sviluppare le tue competenze mettendole in pratica e partecipando ad applicazioni e progetti pratici nel mondo reale. Questo accelererà il tuo apprendimento. Se non sei sicuro con quale linguaggio di programmazione iniziare , restringiamo un po' il campo.
La programmazione è la base dei test automatizzati. Se vuoi entrare nei test di automazione, devi essere in grado di programmare e quanto più sei bravo a programmare, maggiore sarà il successo che avrai nei test di automazione o nello sviluppo dell'automazione. Pertanto, se vuoi rimanere competitivo in questo mondo in continua evoluzione di sviluppo e tecnologia, devi risolvere questa paura e diventare uno sviluppatore di test automatizzati molto richiesto. La cosa buona è che con una guida minima da parte di un collega più esperto, applicando tenacia e perseveranza, esercitandosi costantemente (come facciamo in JavaRush), puoi sicuramente migliorare le tue capacità di programmazione. La prossima domanda logica è: quale linguaggio di programmazione dovrei imparare? Sulla base della nostra valutazione del mercato, sappiamo che i datori di lavoro vogliono assumere persone "con una forte conoscenza dei linguaggi di programmazione orientati agli oggetti". E secondo la nostra analisi, possiamo vedere diversi linguaggi di programmazione orientati agli oggetti a cui fanno riferimento. Ad esempio, Java, C#, JavaScript e Python. Puoi iniziare con uno qualsiasi di essi. Se stai iniziando a imparare un linguaggio OOP, ecco alcuni concetti da padroneggiare per diventare più esperti nei test automatizzati:
Uno strumento eccellente che può essere trovato di pubblico dominio è Selenium WebDriver. Selenium ha diversi collegamenti linguistici (Python, Java, C#, Ruby, PHP, JavaScript, ecc.), quindi imparare uno di questi linguaggi di programmazione fornirà una base eccellente per costruire una solida carriera nell'automazione. Alcuni concetti chiave che devi padroneggiare per creare casi di test automatizzati affidabili, funzionali ed efficienti:
Qualsiasi atleta professionista dirà di aver raggiunto l'apice del suo viaggio attraverso il lavoro e lo sforzo del suo allenamento. Dicono che Michael Jordan abbia giocato duro, ma si sia allenato ancora più duramente. Questo approccio dovrebbe essere adottato da chiunque voglia automatizzare: esercitarsi, esercitarsi, esercitare le proprie nuove competenze finché non diventeranno una seconda natura. Questo è l'unico modo per migliorare le tue capacità ed essere richiesto come tester. Uno dei modi migliori per formarsi è imparare attivamente un linguaggio di programmazione e contemporaneamente strumenti di automazione, “giocando” con essi. In altre parole, scrivere piccoli programmi o script di test automatizzati, romperli, modificarli e vedere come funziona ora. Impara da quello che hai fatto e riprova. Esercitati giocando, facendo e imparando. Fallo e la tua curva di apprendimento aumenterà.
Anche se tentare di cambiare radicalmente la direzione della tua carriera può sembrare scoraggiante, essere apprezzati e commerciabili è essenziale. È necessario sviluppare nuove competenze per rimanere al passo con il mondo in continua evoluzione dello sviluppo software ed essere ciò che i datori di lavoro stanno effettivamente cercando. Inizia in piccolo: valuta le esigenze del mercato, apprendi gli strumenti di programmazione e automazione orientati agli oggetti e fai pratica costantemente. E sarai preparato per nuove opportunità di lavoro prima che tu te ne accorga. Fonte: https://simpleprogrammer.com/2017/07/28/start-automation-testing-part-1/
Fase 1: valutazione del mercato
“L’abitudine numero due” dal libro del Dr. Stephen A. Covey “7 Habits of Highly Effective People” dice : “Inizia con la fine in mente”. Credo che questo principio sia vero quando si tratta di iniziare con i test automatizzati. Inizia con una valutazione del mercato delle esigenze di coloro che assumono ingegneri dell’automazione. Una volta acquisita una comprensione delle esigenze tecniche dei datori di lavoro, è possibile acquisire le competenze appropriate. Un buon punto di partenza è guardare le descrizioni delle offerte di lavoro su qualsiasi sito (ad esempio Indeed.com , Dice , Monster , LinkedIn , ecc.).- Ingegnere dell'automazione dei test;
- Sviluppatore di automazione;
- test/tester automatizzati (test automatizzato) (Test di automazione/Tester di automazione);
- Ingegnere dell'automazione QA ;
- Ingegnere di sviluppo software in test (SDET).
- Quali competenze e tecnologie specifiche stanno menzionando?
- Vedete un insieme separato o un "blocco" di competenze o tecnologie per queste competenze?
- Quanti anni di esperienza sono richiesti, se ce ne sono?
- Ci sono alcuni settori che tendono ad assumere più ingegneri dell’automazione rispetto ad altri?
- Che stipendio puoi aspettarti?
- Gli strumenti o le tecnologie che ci interessano sono principalmente ad accesso aperto o prodotti commerciali?
- ha una chiara conoscenza dei linguaggi di programmazione orientati agli oggetti ;
- familiarità con Jenkins , Test Complete, VersionOne, Git, Visual Studio, Oracle, MSSQL, Hyper-V, AQTime;
- Lavora a stretto contatto con sviluppatori, analisti aziendali e altri tester per identificare i componenti di automazione dei test che verranno utilizzati per verificare i requisiti per il software sviluppato.
- salva i test automatizzati nei sistemi di controllo della versione appropriati: TFS, GitHub , ecc.;
- segue standard di automazione predefiniti e standard DevOps per l'automazione, nonché processi di integrazione e distribuzione continui;
- Esperienza con strumenti ALM (TFS, Jira, HP QC) e strumenti di automazione dei test (preferibilmente Selenium WebDriver) .
- Esperienza con Selenium WebDriver ;
- capacità di programmazione in Python, Java o linguaggi simili;
- esperienza di test mobile / Appium .
- aggiornamento ed ampliamento dell'ambiente di test e degli strumenti di test in C#, TypeScript, JavaScript ...;
- Forti capacità di programmazione in C# o Java e/o JavaScript insieme ad una chiara comprensione dei concetti di programmazione orientata agli oggetti ;
- Esperienza con Visual Studio, Subversion, GitHub, Unity, Teamcity, Jira Cloud, Confluence.
Passaggio 2: padroneggiare un linguaggio di programmazione orientato agli oggetti (OOP)
Ammettiamolo: la maggior parte dei tester manuali ha paura di programmare. Il solo pensiero di andare sotto il cofano e vedere come funzionano effettivamente i sistemi e le applicazioni spaventa molti tester manuali. Questa paura è principalmente il motivo per cui sono diventati tester manuali.- programmazione orientata agli oggetti (classi, oggetti, istanze, ereditarietà, attributi, ecc.);
- Moduli, librerie standard (in qualunque lingua tu scelga);
- strutture dati (dizionari, liste, tuple, ecc.);
- tipi di dati (stringhe, caratteri, numeri interi, virgola mobile, tipi logici o booleani, NoneType, ecc.);
- variabili;
- gestione degli errori/eccezioni;
- operatori aritmetici/ordine di precedenza;
- confronto, operatori logici booleani;
- procedure/funzioni/metodi;
- flusso di controllo: istruzioni If, cicli for, cicli while, ecc.
- leggere/scrivere su file;
Passaggio 3: padroneggiare gli strumenti di automazione
Continuo a dirlo: meglio puoi programmare, meglio puoi automatizzare. Una volta che hai iniziato a imparare un linguaggio di programmazione, il passo successivo è imparare a utilizzare gli strumenti di automazione. Perché la maggior parte delle aziende si sta orientando verso strumenti di automazione open source (o software gratuito) piuttosto che su prodotti con licenza commerciale per ragioni di costo.- design pattern: modello a oggetti della pagina;
- ricerca degli elementi della pagina web utilizzando diversi locatori (CSS Selector, XPATH, ID, Nome, ecc.);
- cambiare Windows/iFrame;
- refactoring;
- test unitari;
- test sul cloud/test parallelo;
- controllo dei dati;
- test su diversi browser web (Firefox, Internet Explorer, Chrome, Safari, Opera, ecc.);
- aspettative implicite ed esplicite;
- catene di azioni
GO TO FULL VERSION