Test Agile - Strumenti

Nei progetti Agile, i tester sono responsabili delle seguenti attività quotidiane:

  • Supportare gli sviluppatori nella codifica, con chiarimenti sul comportamento previsto del sistema.

  • Aiuta gli sviluppatori a creare unit test efficaci ed efficienti.

  • Sviluppa script di automazione.

  • Integra strumenti / script di test di automazione con l'integrazione continua per i test di regressione.

Per un'implementazione efficace e rapida di queste attività, nella maggior parte dei progetti Agile viene utilizzato un sistema di integrazione continua (CI) che supporta CI di codice e componenti di test.

I tester e gli sviluppatori in progetti agili possono beneficiare di vari strumenti per gestire le sessioni di test e per creare e inviare rapporti sui difetti. Oltre a strumenti specializzati per test agili, i team agili possono anche trarre vantaggio dall'automazione dei test e dagli strumenti di gestione dei test.

Note - Le soluzioni Record-and-Playback, Test-Last, Heavyweight e Test Automation non sono agili in quanto -

  • L'ultimo flusso di lavoro incoraggiato da tali strumenti non funziona per i team Agile.

  • Gli script non mantenibili creati con tali strumenti diventano un ostacolo al cambiamento

  • Tali strumenti specializzati creano la necessità di specialisti dell'automazione dei test e quindi favoriscono i silos

Gli strumenti ampiamente utilizzati sono:

S.No. Strumento e scopo
1

Hudson

CI Framework

2

Selenium

Test funzionale - Integrato con Hudson

3

CruiseControl

CI Framework

4

Junit

Java Unit Test

5

Nunit

.Net Unit Test

6

Cobertura / JavaCodeCoverage / JFeature / JCover /

Copertura del test Java

7

Jester

Java - Test di mutazione / Seeding automatico degli errori

8

Gretel

Strumento di monitoraggio della copertura dei test Java

9

TestCocoon

C / C ++ o C #: riduce la quantità di test trovando test ridondanti e trova il codice morto

10

JAZZ

Java - Copertura Branch, Node e Defuse e implementa una GUI, pianificatori di test, strumentazione dinamica e un analizzatore di test

11

Ant

Java - Build automazione

12

Nant

.Net - Build di automazione

13

Bonfire

Componente aggiuntivo Agile Testing per JIRA

Strumenti di automazione del test agile

Supporto efficace degli strumenti di automazione dei test Agile -

  • Automazione dei test iniziali utilizzando un approccio test-first.

  • Scrittura di codice di automazione del test utilizzando linguaggi reali, linguaggi specifici del dominio.

  • Concentrandosi sul comportamento previsto del sistema.

  • Separare l'essenza del test dai dettagli di implementazione, rendendolo così indipendente dalla tecnologia.

  • Promuovere la collaborazione.

I test di unità automatizzati (utilizzando Junit o NUnit) supportano l'approccio test-first per la codifica. Questi sono test white box e assicurano che il design sia corretto e che non ci siano difetti. Tali test vengono creati dagli sviluppatori con il supporto dei tester e possono essere indipendenti dalla funzionalità richiesta. Ciò si traduce nella fornitura di un prodotto che potrebbe non soddisfare i requisiti del cliente e quindi privo di valore aziendale.

Questa preoccupazione viene risolta automatizzando i test di accettazione scritti con la collaborazione del cliente, di altri stakeholder, tester e sviluppatori. I test di accettazione automatizzati sono scritti dai clienti o dai proprietari del prodotto / analisti aziendali che riflettono il comportamento previsto del prodotto. Il coinvolgimento degli sviluppatori garantisce la produzione del codice secondo i requisiti. Tuttavia, se il test si concentra solo sull'accettazione, il codice risultante potrebbe rimanere non estensibile.

Pertanto, i test di unità automatizzati e i test di accettazione automatizzati sono gratuiti ed entrambi sono necessari nello sviluppo agile.

Gli strumenti e i framework Agile che supportano i test di accettazione automatizzati sono:

  • Fit
  • Fitnesse
  • Concordion
  • Ruby
  • Cucumber

In forma

Ward Cunningham ha sviluppato lo strumento Fit che può essere utilizzato per l'Acceptance Test Automation. La vestibilità consente:

  • Clienti o proprietari del prodotto per fornire esempi di comportamento del prodotto utilizzando Microsoft Word e Microsoft Excel

  • I programmatori per trasformare facilmente questi esempi in test automatizzati.

Fit 1.1 supporta sia Java che .NET.

FitNesse

FitNesse è un wiki, che è uno stile di server web che consente a qualsiasi visitatore di apportare modifiche, inclusa la modifica di pagine esistenti e la creazione di nuove pagine. Un semplice linguaggio di markup ti consente di creare facilmente titoli, rendere il testo in grassetto, sottolineato e corsivo, creare elenchi puntati e eseguire altri tipi di formattazione semplice.

In FitNesse, l'automazione del test di accettazione è la seguente:

  • Esprimere i test come tabelle di dati di input e dati di output previsti.

  • Usa FitNesse per inserire la tabella di test nella pagina che puoi modificare.

    • In alternativa, metti la tabella di prova in Microsoft Excel, copia negli appunti e quindi usa il file Spreadsheet to FitNesse comando per fare in modo che FitNesse formatta correttamente la tabella

  • Esegui il test

  • Si ottengono i risultati del test mediante la codifica a colori delle celle nella tabella del test

    • le celle verdi rappresentano che si ottengono i valori attesi

    • i globuli rossi rappresentano che si ottiene un valore diverso da quello atteso

    • le celle gialle indicano che è stata generata un'eccezione

Cetriolo

Cucumber è uno strumento basato sul framework Behaviour Driven Development (BDD). Le caratteristiche principali sono:

  • Viene utilizzato per scrivere test di accettazione per applicazioni web.

  • Consente l'automazione della convalida funzionale in un formato facilmente leggibile e comprensibile come l'inglese normale.

  • È stato implementato in Ruby e poi esteso al framework Java. Entrambi supportano Junit.

  • Supporta altri linguaggi come Perl, PHP, Python, .Net ecc.

  • Può essere utilizzato insieme a Selenio, Watir, Capybara, ecc.