15

Ho lavorato come tester manuale e documentazione (piani di test, ecc.) Nel software/divisione IT dell'azienda. Non ho un grande background di programmazione, ma voglio imparare i linguaggi di programmazione e gli strumenti. Quindi, sto cercando strumenti di test automatici e linguaggi di programmazione da apprendere, che mi diano anche un vantaggio industriale.Lingua per imparare a passare da test manuale verso automatizzato/programmazione

Alcuni punti da notare sono:

  1. ho bisogno di sapere quali strumenti sono i più comuni nel settore e lingue associate a tali strumenti.
  2. Non ho molto tempo per imparare un sacco di cose. Quindi, sto cercando strumenti che utilizzino linguaggi utili per imparare nel caso in cui voglia fare più programmazione.
  3. Preferirei il test dell'app basato sul Web ma non è un vincolo.
  4. Puoi dare 2-3 lingue perché ho capito che non può esserci un vincitore.
  5. Ho eseguito alcuni QTP che utilizzano VBScript ma VBScript non è ampiamente utilizzato. Voglio imparare una lingua che ha una base più ampia.
  6. Si prega comunque di dare i vostri input e idee anche se questa domanda sembra davvero difficile rispondere.

Grazie in anticipo.


EDIT: Penso che finora ho deciso che andrò a:

  1. QTP
  2. Selenio
  3. Test Driven Development Metodologie

I ho solo bisogno di capire un buon linguaggio di programmazione mi dà il margine di un programmatore ed è adatto per molteplici strumenti di test (incluso il selenio). Forse Python, Ruby o Java?

+0

Penso che finora ho deciso che andrò per: 1. QTP, 2. Selenium, 3. Metodologie di sviluppo Driven Test. Ho solo bisogno di capire un buon linguaggio di programmazione che mi dà un margine di programmazione ed è adatto per molteplici strumenti di test (incluso il selenio). Forse Python, Ruby o Java? – SKA

+0

Di quei 3 sceglierei java. Direi che ha gli strumenti di test automatici più consolidati. Sebbene Ruby e Python abbiano meno barriera all'ingresso. –

+0

Grazie. Che ne dici di C# e nUnit? – SKA

risposta

11

Wow questa è una domanda abbastanza radiante. Direi che ti trovavi in ​​una buona posizione mentre il settore si avvicina al modello Test Driven Development (o scrivi i tuoi test prima del tuo codice).

Prima di tutto vorrai sapere su Unit Testing, Continuous Integration e Web Automation.

ho intenzione di concentrarsi sulle aree che conosco (.NET, Java, Javascript, build automation, selenio)

  1. In .NET NUnit è probabilmente il quadro unit testing più utilizzato. È una porta (copia di) JUnit nel mondo java. La maggior parte dei framework di test unitari sono molto simili a questi in termini di concetti. Quindi impara uno e non ti ci vorrà molto per raccogliere gli altri.
  2. Penso che leggere i collegamenti precedenti e avere un'idea di questi concetti ti porterà sulla tua strada. Probabilmente vale la pena sperimentare con Python o Ruby in quanto hanno barriere basse per entrare in giro con alcuni semplici test.
  3. Per i test basati sul Web, i più noti sono probabilmente Selenium e Watin. Questi ti consentono di scriptare i browser per eseguire automaticamente le azioni. Tuttavia, ho riscontrato pochissimi buoni utilizzi di questi e sono molto laboriosi (parli di giorni/settimane di sforzi) per essere impostato e utile. Anche in questo caso i concetti alla base di questi sono simili a qualsiasi framework tu usi.

    Pensate ho risposto 4,5,6 a 1,2,3 :-)

HTH

+0

Grazie per l'idea di TDD. Penso che la maggior parte delle aziende oggi stia diventando Agile. Devo imparare questo. – SKA

+0

Agile significa molte cose diverse per persone diverse. Nella mia esperienza, agile può spesso significare "basta farlo comunque" quando in realtà è un processo rigoroso. Agile non è nemmeno una bacchetta magica, le tecniche sopra illustrate ti aiuteranno con agilità ma la parte più difficile dell'agile è la disciplina. –

2
  1. Il selenio è molto popolare per i test automatizzati a livello di controllo qualità.
  2. Non importa quello che fai, ci sarà qualche curva di apprendimento associata alla tua soluzione
  3. Il punto di Selenium è quello di fornire un framework di test per le applicazioni web - si usa Selenium per manipolare elementi DOM nel browser, non è in esecuzione versione della tua applicazione.
  4. Selenium è un modello client/server (si esegue il server da qualche parte che ha accesso all'istanza dell'app QA, si codificano i test utilizzando le librerie client) che fornisce client in un numero di lingue (java, ruby, ecc.)

  5. Questo tipo di test è una buona idea se si dispone di risorse QA dedicate in grado di scrivere codice. Fornisce alcuni test di regressione di alto livello. Tuttavia non è esente da inconvenienti: (1) i test possono richiedere un po 'di tempo per essere eseguiti, (2) potrebbe essere necessario apportare alcune modifiche agli elementi dom delle applicazioni Web per utilizzare facilmente il framework, (3) la modifica dell'app web richiederà cambiando il tuo codice di test, che può essere non banale.

Le altre opzioni sono scrivere test di unità per il codice dell'applicazione. Di solito gli sviluppatori lo fanno come parte di un processo guidato dai test. Quindi c'è TDD per gli sviluppatori e poi test di controllo automatico del QA per il QA.

+0

Grazie per l'idea del selenio. Penso che mi tufferò sicuramente in esso insieme al QTP. – SKA

3

Per quanto riguarda 'vantaggio industriale' dipende da cosa si intende con questo.

Per le grandi aziende il QTP è ampiamente utilizzato. La cosa da imparare con QTP non è proprio la lingua, ma lo strumento stesso. Per me è stato più difficile superare le specifiche degli strumenti piuttosto che imparare VBScript. Se pensate al test delle prestazioni, probabilmente sarebbe la scelta di PerformanceCenter. Qui hai C come lingua, ma di nuovo, c'è più lotta con uno strumento che con una lingua. In alcune aziende c'è uno stack da IBM, quindi il software Rational entra in gioco (FunctionalTester, Robot, PerformanceTester). C'è anche un po 'di complessità degli strumenti da superare (IBM Redbobks può aiutare).

Nelle piccole imprese Java/C# potrebbe essere utile. Qui puoi familiarizzare con junit/nunit/TestNG/MSTest. Per le applicazioni web vale la pena guardare cose come Selenium/Watij/Watin/Fit/Fitness/Concordia. Se hai un momento, guarda AutoIT, PowerShell, Python, Fiddler, Jmeter, Abbot, Watir/Cucumber, Sikuli.

Ci sono anche molti altri strumenti come WebAii, TestComplete, Twist .. alcuni altri strumenti commerciali. Di solito puoi provare per loro a giocarci per una settimana o due.

Tutto dipende dal tipo di progetto a cui sarà esposto e dal tipo di azienda.

Indipendentemente da ciò, a mio parere è sufficiente imparare Java/C# in una certa misura.Non è necessario essere ninja C#/Java, conoscere tutte le librerie e studiare un linguaggio veramente difficile. Lo sviluppo del software è più che la conoscenza di un linguaggio di programmazione, e l'automazione dei test è più che la conoscenza di uno strumento/linguaggio (M. Fewster & D. Graham), quindi non essere ossessivo. Se è possibile programmare lo script in QTP (non registrare ma programmare, utilizzando Programmazione descrittiva, scomporre la logica in librerie, avere il controllo completo di TestResults tramite metodi appropriati ecc.), Altri strumenti non costituiranno un problema. Potresti aver bisogno di una settimana o due per imparare le basi di una determinata lingua, ma questo è tutto per l'automazione del test (almeno per iniziare). Hai bisogno di più per avere un po 'di esperienza, per conoscere strumenti, per conoscere concetti, per conoscere pro e contro di approcci diversi, per avere un quadro più ampio in testa, che solo "come scrivo questo in quella lingua" (hai COSÌ per questo : D).

+0

Penso che tu abbia ragione. QTP è un must.Sto cercando un buon linguaggio di programmazione per colmare la mia esperienza di non-programmazione ora. – SKA

+1

Che andare con Java/C#, e immergersi in TDD, BDD, ATDD e altre cose agili. – yoosiba

+0

Sì. Stavo pensando C# con nUnit. Questo è difficile anche se Java Vs C#. – SKA

3

La risposta a questa domanda dipende in realtà da un paio di cose. Innanzitutto, che tipo di test stai facendo? Test delle applicazioni basate sul web? Testare librerie/componenti di un programma più ampio? Test della GUI? Test delle app della riga di comando?

ho trovato i seguenti utile quando si creano script/strutture di test automatizzati:

TCL - TCL può interfacciarsi con la riga di comando facilmente come un file batch, ma ha un linguaggio potente che soffia lotto fuori dall'acqua (comprese le funzionalità della GUI). Se si esegue lo scripting di app per console basate su Windows (sia per testarle che per usarle per testare qualcos'altro), mi raccomando di dedicare del tempo a snellire TCL.

AutoIt - Questo linguaggio di scripting consente di automatizzare l'interazione dell'interfaccia utente con le applicazioni Windows in modo rapido e semplice. È anche abbastanza facile da imparare. Se si vuole prendere il tempo e i problemi per sviluppare un'utilità di screen-scraping, è possibile combinarlo con AutoIt per creare alcuni sistemi di test piuttosto sofisticati.

C - Durante il test delle librerie compilate, ho avuto un sorprendente successo utilizzando il buon 'ol C. Scriverò lo scheletro di base per un'applicazione di test e creerò un'utilità script che genererà dinamicamente il resto del codice basato su quali test devono essere eseguiti (gli do una libreria di snippet di esempio C che può usare per compiti più complicati).

Ruby - Quando si eseguono test automatici, un linguaggio di scripting affidabile può andare molto lontano. Se è necessario analizzare i registri di test, generare report o generare automaticamente script di test, un linguaggio di scripting che conosci bene può farti risparmiare un sacco di tempo e mal di testa. Il mio linguaggio preferito è Ruby, ma altri nella mia azienda preferiscono altri linguaggi come Perl o Python. La scelta della lingua non è troppo importante, sceglierne una e impararla bene.

A seconda di cosa si sta testando, è possibile che nel codice che si sta testando siano presenti alcuni strumenti di test. A volte il codice Java viene scritto con i test JUnit, il codice Ruby può utilizzare il framework Test :: Unit, ecc. Here è un elenco di framework di test delle unità per una vasta gamma di lingue. Se il codice che stai testando è stato creato pensando alle unità, ti consigliamo di apprendere la lingua in cui è stato scritto il codice in modo da poter sfruttare questi test unitari.

+0

Farò principalmente le funzionalità delle app Web. – SKA

+1

Per quanto riguarda Tcl, non è l'unica lingua del genere. Perl e Python funzionano molto bene nello stesso ruolo. Nel tuo caso, suggerirei Python piuttosto che Perl o Tcl, dal momento che Python è un ponte migliore per la programmazione. –

+0

Grazie. Mio marito ama Python. – SKA

3

Per i test basati sul Web si consiglia di verificare fitnesse. Inoltre, un framework di test automatizzato costruito su python è lo robot framework.

0
  • Sì, è possibile imparare il selenio IDE, Il suo solo come un add-on del browser Firefox, con cui è possibile registrare i test e riprodurli quando richiesto. La limitazione di IDE è che può essere utilizzata solo su firefox.

  • Se si desidera testare su più browser, è necessario Selenium Grid o WebDriver, che richiede una conoscenza di java. E ancora non è necessario essere un professionista Java per farlo, un semplice apprendimento aiuterà.

  • È possibile cercare su youtube.com per esercitazioni selenio.

vantaggi di selenio:

  1. sua Aperto Sourse !!
  2. È facile da imparare e impianta ..
  3. Supporta più browser.
  4. Supporta più linguaggi di scripting/programmazione.
  5. Flessibile a vostra scelta, semplice registrazione e riproduzione (IDE), design Comple Framework a vostra scelta utilizzando il vostro linguaggio di programmazione preferito.
  6. Supporta l'esecuzione di parellel.

Spero che questo ti possa aiutare.

1

Vorrei anche aggiungere un piccolo commento

C'è una nuova piattaforma di XML2Selenium test di automazione

Questa piattaforma è costruito sulla base di un quadro Classis Selenio e fornisce molte funzioni utili

Ma è abbastanza facile da usare

non è necessario imparare qualsiasi java o ruby ​​- è possibile scrivere in XML

smth così:

<!-- here we have some imports Frame - is like a class, you can extend it with extends --> 
<import resource="Demo.a-server/03Registration/framesRegist.xml" name="frames"/> 
<import resource="Demo.a-server/01Action/FramesAction.xml" name="framesAct"/> 
<import resource="Demo.a-server/03Registration/FramesLogin.xml" name="framesLog"/> 

<property resource="Demo.a-server/LogValue.properties" name="logValue"/> 
<test name="creatAction" description="create and check action"> 

<frame extends="frames:logAdmin"/> 
<frame extends="framesAct:createAct"/> 

// here we upload the image 
<upload id="img_id0" resource="image.jpg"/> 

// click save button with id=save 
<button id="save" /> 

// make a screen shot 
<screenshot/> 

// sleep for 3 seconds 
<pause time="3000" /> 

// make a screenshot again 
<screenshot/> 

// navigate to the given URL: 
<navigate to="${logValue.baseUrl}/admin"/> 

<frame extends="framesLog:logOutAdmin"/> 
<pause time="1000"/> 
</test> 

Qui potete vedere report con errori: http://xml2selenium.com/demored/xml2selenium/

E qui potete vedere relazione con lo stato di successo: http://xml2selenium.com/demogreen/xml2selenium/

PS: Supporta test in tutti i browser , non solo in Firefox come Selenium IDE