È irragionevole implementare un linguaggio di scripting per domini di piccole dimensioni?

3

Al mio nuovo lavoro, stanno attualmente trascorrendo decine di ore di lavoro che non dobbiamo fare test QA manuali dopo ogni build. Niente è automatizzato affatto. (Possiamo permetterci solo tre sviluppatori, e sono tutti troppo occupati per essere coinvolti sul lato dei test)

Quindi sto costruendo un framework di test automatizzato che fondamentalmente modella il sistema e consente a un driver Selenium o simile di effettuare manipolazioni sulla vera web app basata sul modello in memoria, utilizzando un'interfaccia semantica. Sono piuttosto soddisfatto. Ma ogni caso di test è correntemente un cambiamento di codice e io sono l'unico con sia l'abilità che il tempo per farlo.

Sarebbe irragionevole per me creare un linguaggio di scripting piccolo e semplice per consentire a colleghi meno tecnici di scrivere test? C'è un modo migliore per farlo? Voglio, per quanto possibile, che i colleghi scrivano in inglese in modo semplice che il mio programma verifica la nostra app per garantire che soddisfi i requisiti.

Se è una soluzione ragionevole, ma sembra eccessivo per questo specifico progetto, va bene; è anche un costruttore di portfolio.

    
posta TBridges42 24.02.2016 - 02:30
fonte

1 risposta

5

Penso che sia ragionevole usare un piccolo DSL, non sono così sicuro che sia saggio costruire se si considera che non si ha molta larghezza di banda. Esistono strutture che possono fare ciò che vuoi.

Ad esempio, framework robot ti consente di scrivere il test nelle parole chiave di alto livello. Come ingegnere di test puoi scrivere queste parole chiave in python, java, .net o in altri linguaggi (e ci sono librerie predefinite per ogni genere di cose come testare applicazioni web con selenio, servizi web con interfaccia REST o SOAP, applicazioni desktop , eccetera). I tuoi colleghi meno tecnici possono quindi assemblare queste parole chiave in test.

Questo particolare framework ti consente di scrivere test in uno stile BDD (Given / When / Then), uno stile guidato dai dati (tabelle di input e output) e uno stile procedurale, il che significa che non sei bloccato in uno stile specifico per tutti i tuoi test. Nella mia esperienza, diversi scenari si prestano in modo più naturale a uno stile o all'altro, quindi essere in grado di essere flessibili ti dà un sacco di potere per esprimerti in modo appropriato.

I test di robot framework sono in chiaro e in gran parte letti e scritti come in inglese. Maggiore è il tuo impegno nella creazione di un catalogo di parole chiave, più sarà inglese.

Ad esempio, ecco come potrebbero essere alcuni casi di test per una semplice applicazione Web:

*** Setup ***
Library  PageObjectLibrary
Suite Setup
...  Restart the server
...  Open browser  ${app_root}
Suite Teardown
...  Close all browser windows
...  Shut down the server

*** Test cases ***
Valid user can log in
    [Setup]  Go to the page  LoginPage
    Enter valid user credentials
    Click the login button
    Current page should be  DashboardPage

Invalid user goes to the "invalid attempt" page
    [Setup]  Go to the page  LoginPage
    Enter invalid user credentials
    Click the login button
    Current page should be  InvalidAttemptPage

Dashboard of new user contains no projects
    [Setup]  Log in to the application as a new user
    Verify that the page contains a list of projects
    Verify that the list of projects has  0  projects

Esistono altri framework tra cui puoi scegliere in modo simile ( fitnesse , cetriolo . La scelta dipende dal tipo di applicazione testato e dal livello tecnico dei tester.

Certo, con qualsiasi framework è necessario dedicare del tempo all'apprendimento del framework, all'organizzazione dei test e così via. Nella maggior parte dei casi, tuttavia, quel tempo è molto inferiore a quello che si spenderebbe per scrivere da zero il proprio framework.

    
risposta data 24.02.2016 - 04:52
fonte

Leggi altre domande sui tag