Questo tutorial spiega come Python può essere utilizzato per la programmazione di test ed elenca le caratteristiche e il confronto dei migliori framework di test Python:
Con l’applicazione diffusa dell’intelligenza artificiale, Python è diventato un linguaggio di programmazione popolare.
Questo tutorial tratterà come Python può essere utilizzato per la programmazione di test insieme ad alcuni framework di test basati su Python.
Iniziamo!!
= > Controlla TUTTI I tutorial Python qui.
Che cos’è Python?
Secondo la definizione tradizionale, Python è un linguaggio di programmazione generale interpretato, di alto livello che aiuta i programmatori a scrivere codice gestibile e logico per progetti di piccole e grandi dimensioni.
Alcuni dei vantaggi di Pythons sono:
- Nessuna compilazione causa la rapida esecuzione del ciclo Edit-Test-Debug.
- Facile debug
- Vasta libreria di supporto
- Facile da imparare di dati-struttura
- Alta produttività
- la collaborazione del Team
Lavorare In Python
- L’interprete legge il codice python dal file di origine e la esamina per un errore di sintassi.
- Se il codice è privo di errori, l’interprete converte il codice nel suo equivalente “codice byte”.
- Questo codice byte viene quindi trasmesso alla macchina virtuale Python (PVM) dove il codice byte viene nuovamente compilato per errore se presente.
Che cos’è il test Python?
- I test automatizzati sono un contesto ben noto nel mondo dei test. È dove i piani di test vengono eseguiti usando script invece di un essere umano.
- Python viene fornito con gli strumenti e le librerie che supportano il test automatico per il sistema.
- I casi di test Python sono relativamente facili da scrivere. Con l’aumento dell’uso di Python, anche i framework di automazione dei test basati su Python stanno diventando popolari.
Elenco dei framework di test Python
Di seguito sono elencati alcuni framework di test Python che dovresti conoscere.
- Robot
- PyTest
- Unittest
- DocTest
- Nose2
- Testify
Confronto degli strumenti di test Python
Riassumiamo rapidamente questi framework in una breve tabella di confronto:
Licenza | del | Categoria | Categoria caratteristica Speciale |
|
---|---|---|---|---|
Robot |
software Libero (ASF Licenza} |
Python test generico librerie. | Test di accettazione | Approccio di test basato su parole chiave. |
PyTest |
Free software (MIT License) | Stand alone, allows compact test suites. | Unit Testing | Special and simple class fixture for making testing easier. |
unittest |
Free software (MIT License) | Part of Python standard library. | Unit Testing | Fast test collection and flexible test execution. |
DocTest |
Free software (MIT License) | Part of Python standard library. | Unit Testing | Python Interactive Shell for the command prompt and inclusive application. |
Nose2 |
Free software (BSD License) |
Carries unittest features with additional feature and plugins. | unittest extension | A large number of plugins. |
Testimoniare |
Software libero (licenza ASF) |
Porta unittest e naso caratteristiche con funzionalità aggiuntive e plugin. | estensione unittest | Test discovery enhancement. |
(Abbreviazioni: MIT = Massachusetts Institute of Technology (1980), BSD = Berkeley Software Distribution (1988), ASF = Apache Software Foundation(2004))
partiamo!!
#1) Robot
- Il framework Robot più popolare è un framework di test di automazione open-source basato su Python.
- Questo framework è interamente sviluppato in Python e viene utilizzato per il test di accettazione e lo sviluppo test-driven. Lo stile delle parole chiave viene utilizzato per scrivere casi di test nel framework Robot.
- Il robot è in grado di eseguire Java e. Net e supporta anche test di automazione su multipiattaforma come Windows, Mac OS e Linux per applicazioni desktop, applicazioni mobili, applicazioni web, ecc.
- Insieme ai test di accettazione, il robot viene utilizzato anche per l’automazione dei processi robotici (RPA).
- Pip (Package Installer for Python) è altamente raccomandato per l’installazione di robot.
- L’uso della sintassi dei dati tabulari, test basati su parole chiave, librerie ricche & set di strumenti e test paralleli sono alcune delle caratteristiche forti del Robot che lo rendono popolare tra i tester.
Esempio:
*** Settings ***Library SeleniumLibrary*** Variables ***${SERVER} localhost:7272${BROWSER} Firefox${DELAY} 0${VALID USER} demo${VALID PASSWORD} mode${LOGIN URL} http://${SERVER}/${WELCOME URL} http://${SERVER}/welcome.html${ERROR URL} http://${SERVER}/error.html*** Keywords ***Open Browser To Login Page Open Browser ${LOGIN URL} ${BROWSER} Maximize Browser Window Set Selenium Speed ${DELAY}Login Page Should Be Open Title Should Be Login PageGo To Login Page Go To ${LOGIN URL} Login Page Should Be OpenInput Username ${username} Input Text username_field ${username}Input Password ${password} Input Text password_field ${password}Submit Credentials Click Button login_buttonWelcome Page Should Be Open Location Should Be ${WELCOME URL} Title Should Be Welcome Page
Ecco un esempio di esecuzione del test non riuscita.
Here is a sample of Successful Test Execution.
Packages/Methods:
Package Name | Working | Package Import |
---|---|---|
run() | To run tests. | from robot import run |
run_cli() | To run tests with command line argument. | dall’importazione del robot run_cli |
rebot () | Per elaborare l’output del test. | robot da importare rebot |
Link API: Robot Quadro Guida per l’Utente
Link per il Download: Robot
#2) PyTest
- PyTest è un open-source basato su Python framework di test che è in genere per tutti gli scopi, ma soprattutto Funzionale e API test.
- Pip (Package Installer per Python) è necessario per l’installazione di PyTest.
- Supporta codice di testo semplice o complesso per testare API, database e interfacce utente.
- La sintassi semplice è utile per una facile esecuzione del test.
- Plugin ricchi ed è in grado di eseguire test in parallelo.
- Può eseguire qualsiasi sottoinsieme specifico di test.
Esempio:
import pytest //Import unittest module//def test_file1_method(): //Function inside class// x=5 y=6 assert x+1 == y,"test failed"
Per eseguire il test utilizzare il py.comando di prova.
Screenshot per riferimento:
Pacchetti / metodi:
Funzione | Parametri | Lavoro |
---|---|---|
pytest.approx () | expected, rel=None, abs=None, nan_ok=False |
Asseriscono che due numeri o due insiemi di numeri sono approssimativamente uguali ad alcune differenze. |
pytest.fail () | msg(str) pytrace (bool) |
Se il test in esecuzione fallisce esplicitamente viene mostrato il messaggio. |
pytest.skip() | allow_module_level(bool) | Skip the executing test with the message shown. |
pytest.exit() | msg (str) returncode (int) |
Exit testing process. |
pytest.main() | args=None plugins=None |
Return exit code once in-process test execution is done. |
pytest.raises() | expected_exception: Expectation | Assert that a code block call raises expected_exception or to raise a failure exception |
pytest.warns() | expected_warning: Expectation | Asserting warning con le funzioni |
Se si desidera accedere a un test scritto in un file specifico usiamo il comando sottostante.
py.test <filename>
Pytest Fixture: Pytest Fixture viene utilizzato per eseguire il codice prima di eseguire il metodo di prova per evitare la ripetizione del codice. Questo è fondamentalmente usato per inizializzare la connessione al database.
È possibile definire PYTEST apparecchio come mostrato di seguito.
@pytest.fixture
Asserzione: l’asserzione è la condizione che restituisce true o false. L’esecuzione del test si interrompe quando l’asserzione fallisce.
Di seguito è riportato un esempio:
def test_string_equal():assert double(55) == 62assert 25 == 62+ where 25 = double(55)
Link all’API: Pytest API
Download Link: Pytest
#3) Unittest
- Unittest è il primo framework di test di unità automatizzato basato su Python progettato per funzionare con la libreria standard Python.
- Supporta il riutilizzo di tute di prova e l’organizzazione di test.
- È stato ispirato da JUnit e supporta l’automazione dei test tra cui collezioni di test, indipendenza dei test, codice di installazione per i test, ecc.
- Viene anche chiamato come PyUnit.
- Unittest2 è un backport di nuove funzionalità aggiuntive aggiunte al Unittest.
Flusso di lavoro standard di Unittest:
- Importa il modulo Unittest nel codice del programma.
- È possibile definire la propria classe.
- Crea funzioni all’interno della Classe che hai definito.
- Luogo unittest.main () che è il metodo principale nella parte inferiore del codice per eseguire il test case.
Esempio:
import unittest //Import unittest module//def add(x,y): return x + yclass Test(unittest.TestCase): //Define your class with testcase// def addition(self): self.assertEquals(add(4,5),9)<strong>//Function inside class//if __name__ == '__main__': unittest.main()<strong>//Insert main() method//
Screenshot per riferimento:
Pacchetti / Metodi:
Metodo | Lavoro |
---|---|
setUp() | Chiamato prima prova metodo di esecuzione per preparare il test di installazione. |
tearDown () | Chiamato dopo l’esecuzione del metodo di test anche se il test genera un’eccezione. |
setUpClass () | Chiamato dopo i test in una singola classe. |
tearDownClass () | Chiamato dopo i test in una singola classe. |
run () | Esegui il test con i risultati. |
debug () | Eseguire il test senza risultato. |
addTest () | Aggiungi il metodo di test nella suite di test. |
Discover () | Trova tutti i moduli di test nelle sottodirectory dalla directory specifica. |
assertEqual(a,b) | Per testare l’uguaglianza di due oggetti. |
asserTrue/assertFalse(condition) | Per testare la condizione booleana. |
(Nota: unittest.mock() è una libreria per il test Python che consente di sostituire le parti del sistema con oggetti fittizi. La classe core mock aiuta a creare facilmente una suite di test.)
Link a API: Unittest API
Download Link: Unittest
#4) DocTest
- Doctest è un modulo che è incluso nella distribuzione standard di Python e viene utilizzato per il test delle unità White-box.
- Cerca sessioni python interattive per verificare se funzionano esattamente come richiesto.
- Fa uso di funzionalità Python selettive come docstrings, Python interactive shell e Python introspection (che determinano le proprietà degli oggetti in fase di runtime).
- Funzioni principali:
- Aggiornamento docstring
- Esecuzione di test di regressione
- Le funzioni testfile() e testmod() vengono utilizzate per fornire un’interfaccia di base.
Esempio:
def test(n): import math if not n >= 0: raise ValueError("n must be >= 0") //number should be 0 or greater than 0 if math.floor(n) != n: raise ValueError("n must be exact integer") //Error when number is not an integer if n+1 == n: raise OverflowError("n too large") //Error when number is too large r = 1 f = 2 while f <= n: //Calculate factorial r *= f f += 1 return rif __name__ == "__main__": import doctest //Import doctest doctest.testmod() //Calling the testmod method
Screenshot per riferimento:
Pacchetti / funzioni:
Function | Parameters |
---|---|
doctest.testfile() | filename (mendatory) |
doctest.testmod() | m]
|
doctest.DocFileSuite() | *paths, |
doctest.DocTestSuite() |
Note: Per il controllo interattivo esempi nel file di testo si può utilizzare il file di prova funzione ();
doctest.testfile ("example.txt”)
È possibile eseguire direttamente il test da riga di comando;
python factorial.py
Link API: DocTest API
Link per il Download: Doctest
#5) Nose2
- Nose2 è il successore del Naso e si è basato su Python Unità framework di Test che è possibile eseguire Doctests e UnitTests.
- Nose2 è basato su unittest quindi viene indicato come extend unittest o unittest con il plugin che è stato progettato per rendere il test semplice e più facile.
- Naso utilizza test collettivi da unittest.testcase e supporta più funzioni per la scrittura di test ed eccezioni.
- Nose supporta fixture di pacchetti, classi, moduli e inizializzazione complessa da definire in una sola volta invece di scrivere frequentemente.
Esempio:
from mynum import *import nosedef test_add_integers(): assert add(5, 3) == 8def test_add_floats(): assert add(1.5, 2.5) == 4def test_add_strings(): nose.tools.assert_raises(AssertionError, add, 'paul', 'carol') // To throw one of the expected exception to passif __name__ == '__main__': nose.run()
Screenshot per riferimento:
Pacchetti / Metodi:
Method | Parameters | Working |
---|---|---|
nose.tools.ok_ | (expr, msg = None) | Shortcut to assert. |
nose.tools.ok_ | (a,b, msg = None) | Shortcut to ‘assert a==b, “%r != %r” % (a, b) |
nose.tools.make_decorator | (func) | To replicate metadata for the given function. |
nose.tools.solleva | (*exception) | Per lanciare una delle eccezioni previste per passare. |
naso.strumenti.timed | (limit) | Per specificare il limite di tempo entro il quale il test dovrebbe ottenere un passaggio. |
naso.strumenti.with_setup | (setup=None, teardown=None) | Per aggiungere il metodo di installazione a una funzione di test. |
naso.strumenti.intest | (func) | Metodo o funzione può essere indicato come test. |
naso.strumenti.nottest | (func) | Il metodo o la funzione non possono essere indicati come test. |
Link API: Plugin per Nose2
Link per il Download: Nose2
#6) Testimoniano
- Testimoniare è stato progettato per sostituire unittest e il naso. Testimoniare ha caratteristiche più avanzate rispetto unittest.
- Testify è popolare come implementazione Java di test semantici (facile da imparare e implementare le specifiche di test del software).
- L’esecuzione di unità automatizzate, test di integrazione e di sistema è più facile da testimoniare.
Caratteristiche
- Sintassi semplice al metodo fixture.
- Scoperta di prova improvvisata.
- Configurazione a livello di classe e metodo di fissaggio teardown.
- Sistema di plugin estensibile.
- Facile da gestire utilità di test.
Esempio:
from testify import *class AdditionTestCase(TestCase): @class_setup def init_the_variable(self): self.variable = 0 @setup def increment_the_variable(self): self.variable += 1 def test_the_variable(self): assert_equal(self.variable, 1) @suite('disabled', reason='ticket #123, not equal to 2 places') def test_broken(self): # raises 'AssertionError: 1 !~= 1.01' assert_almost_equal(1, 1.01, threshold=2) @teardown def decrement_the_variable(self): self.variable -= 1 @class_teardown def get_rid_of_the_variable(self): self.variable = Noneif __name__ == "__main__":run()
Screenshot per riferimento:
Pacchetti / metodi:
Nome del Pacchetto | Lavoro | Pacchetto di importazione |
---|---|---|
assert | Fornisce una gamma completa di strumenti di test per il test del sistema. | importa “github.com/stretchr/testify/assert” |
mock | Utile per testare i vostri oggetti e chiamate. | importa “github.com/stretchr/testify/mock” |
require | Funziona come da asserire ma interrompe l’esecuzione del test quando i test falliscono. | importa ” github.com / stretchr/testify / require ” |
suite | Esso fornisce la logica per la creazione di struttura suite di test e metodi. | “importa ” github.com/stretchr/testify/suite” |
Link API: i file di Pacchetto di Testimoniare
Link per il Download: Testimoniare
altri Python Framework per il Testing
finora abbiamo esaminato più popolari Python Framework di Test. Ci sono pochi altri nomi in questa lista che potrebbero diventare popolari in futuro.
#7) Behave
- Behave è indicato come framework di test BDD (Behavior Driven Development) che viene utilizzato anche per il test della scatola nera. Behave utilizza il linguaggio naturale per scrivere test e funziona con stringhe Unicode.
- Si comportano directory contiene file di funzionalità che hanno un formato di testo normale si presenta come il linguaggio naturale e Python passo implementazioni.
Collegamento a API: Guida utente di Behave
Link per il download: Behave
#8) Lattuga
- Lattuga è utile per il test di sviluppo guidato dal comportamento. Rende il processo di test facile e scalabile.
- Lattuga include passaggi come:
- Che descrive il comportamento
- Definizione dei passaggi in Python.
- Esecuzione del codice
- Modifica del codice per superare il test.
- Esecuzione del codice modificato.
- Questi passaggi vengono seguiti per 3-4 volte per rendere il software privo di errori e quindi migliorare la sua qualità.
Link a API: Lattuga Documentation
Download Link: Lattuga
Domande e risposte frequenti
Diamo un’occhiata ad alcune delle FAQ più comuni su questo argomento –
Q #1) Perché Python viene utilizzato per l’automazione?
Risposta: Poiché “Python viene fornito con gli strumenti e le librerie che supportano il test automatico per il tuo sistema”, ci sono molti altri motivi per cui Python viene utilizzato per il test.
- Python è orientato agli oggetti e funzionale che consente ai programmatori di concludere se la funzione e le classi sono adatte secondo i requisiti.
- Python offre una ricca libreria di pacchetti utili per il test dopo l’installazione di ‘Pip’.
- Le funzioni stateless e la sintassi semplice sono utili per creare test leggibili.
- Python svolge il ruolo di ponte tra il caso di test e il codice di test.
- Python supporta la digitazione anatra dinamica.
- Offre IDE ben configurato e un buon supporto al framework BDD.
- Il supporto della riga di comando Rich è utile per eseguire un controllo manuale.
- Struttura semplice e buona, modularità, ricco set di strumenti, e pacchetti possono essere utili per lo sviluppo di scala.
Q #2) Come strutturare un test Python?
Risposta: quando crei un test in Python, dovresti considerare due cose come indicato di seguito.
- Quale modulo/parte del sistema si desidera testare?
- Quale tipo di test si sta optando in (se unit testing o test di integrazione)?
La struttura complessiva del test Python è semplice come altri in cui decidiamo i componenti dei test come – input, codice di test da eseguire, output e confronto dell’output con i risultati attesi.
Q # 3 )Quale strumento di automazione è scritto in Python?
Risposta: Buildout è uno strumento di automazione che viene scritto ed esteso con Python e viene utilizzato per automatizzare l’assemblaggio del software. Buildout può essere applicabile a tutte le fasi del software, dallo sviluppo alla distribuzione.
Questo strumento si basa su 3 principi fondamentali:
- Ripetibilità: afferma che la configurazione del progetto sviluppata nello stesso ambiente dovrebbe produrre lo stesso risultato indipendentemente dalla loro cronologia.
- Componentizzazione: il servizio software dovrebbe includere strumenti di auto-monitoraggio e dovrebbe configurare il sistema di monitoraggio durante la distribuzione del prodotto.
- Automazione: la distribuzione del software dovrebbe essere altamente automatizzata e risparmio di tempo.
Q #4) Python può essere usato con Selenio?
Risposta: Sì. Il linguaggio Python viene utilizzato con Selenium per eseguire test. L’API Python è utile per connettersi con il browser tramite Selenium. La combinazione di selenio Python può essere utilizzata per scrivere test funzionali/di accettazione utilizzando Selenium WebDriver.
Q #5) Il selenio con Python è buono?
Risposta: Ci sono diversi motivi per cui Selenium e Python sono considerati una buona combinazione:
- Selenium ha il set di strumenti più potente per supportare l’automazione dei test rapidi.
- Selenium offre funzioni di test dedicate per eseguire test di applicazioni Web che aiutano a esaminare il comportamento reale dell’applicazione.
- Mentre, Python è un linguaggio di scripting di alto livello, basato su oggetti e user-friendly con una semplice struttura di parole chiave.
Ora, quando si tratta di usare il Selenio con Python, ha diversi vantaggi come indicato di seguito.
- Facile da codificare e leggere.
- Python API è estremamente utile per connettersi al browser tramite Selenium.
- Selenium invia il comando standard di Python a vari browser indipendentemente dalle sue variazioni di progettazione.
- Python è relativamente semplice e compatto rispetto agli altri linguaggi di programmazione.
- Python è dotato di una grande comunità per supportare coloro che sono completamente nuovi a utilizzare Selenium con Python per eseguire test di automazione.
- È un linguaggio di programmazione gratuito e aperto tutto il tempo.
- Selenium WebDriver è un altro forte motivo per usare Selenium con Python. Selenium WebDriver ha un forte supporto vincolante per l’interfaccia utente semplice di Python.
Q #6) Quali sono le misure per scegliere il miglior framework di test Python?
Risposta: Per scegliere il miglior framework di test Python, i punti seguenti dovrebbero essere presi in considerazione:
- Se la qualità e la struttura degli script soddisfano i tuoi scopi. Lo script di programmazione dovrebbe essere facile da capire / mantenere e privo di difetti.
- La struttura di programmazione di Python gioca un ruolo importante nella scelta del framework di test che consiste – Attributi, istruzioni, funzioni, operatori, moduli e file di libreria standard.
- Quanto facilmente è possibile generare test e in che misura possono essere riutilizzati?
- Il metodo adottato per l’esecuzione del modulo di test/test (tecniche di esecuzione del modulo).
Q #7) Come scegliere il miglior framework di test Python?
Risposta: Comprendere i vantaggi e le limitazioni di ogni framework è un modo migliore per scegliere il miglior framework di test Python. Esploriamo –
Robot Framework:
Vantaggi:
- L’approccio di test basato su parole chiave aiuta a creare casi di test leggibili in modo più semplice.
- Api multiple
- Sintassi facile dei dati di test
- Supporta test paralleli tramite griglia di selenio.
Limitazioni:
- Creare report HTML personalizzati è piuttosto complicato con Robot.
- Meno supporto ai test paralleli.
- Richiede Python 2.7.14 e versioni successive.
Pytest:
Vantaggi:
- Supporta la suite di test compatta.
- Non c’è bisogno del debugger o di alcun registro di test esplicito.
- Infissi multipli
- Plugin estensibili
- Creazione di test facile e semplice.
- Possibile creare casi di test con meno bug.
Limitazioni:
- Non compatibile con altri framework.
Unittest:
Vantaggi:
- Non c’è bisogno di alcun modulo aggiuntivo.
- Facile da imparare per i tester a livello di principianti.
- Esecuzione di test semplice e facile.
- Rapido rapporto di prova generazione.
Limitazioni
- snake_case denominazione di Python e camelCase denominazione di JUnit causare un po ‘ di confusione.
- Intento poco chiaro del codice di test.
- Richiede una quantità enorme di codice boilerplate.
Doctest:
Vantaggi:
- Una buona opzione per eseguire piccoli test.
- La documentazione di test all’interno del metodo fornisce anche ulteriori informazioni su come funziona il metodo.
Limitazioni
- Confronta solo l’output stampato. Qualsiasi variazione nell’output causerà un errore di test.
Naso 2:
Vantaggi:
- Naso 2 supporta più configurazione di test di unittest.
- Esso comprende una serie sostanziale di plugin attivi.
- API diverse da unittest che fornisce ulteriori informazioni sull’errore.
Limitazioni:
- Durante l’installazione di plugin di terze parti è necessario installare setup tool / distribuire pacchetto, come Nose2 supporta Python 3, ma non plugin di terze parti.
Testimoniare:
Vantaggi:
- Facile da capire e da usare.
- Unità, integrazione e test di sistema possono essere facilmente creati.
- Componenti di test gestibili e riutilizzabili.
- L’aggiunta di nuove funzionalità per Testifyis facile.
Limitazioni:
- Inizialmente Testify è stato sviluppato per sostituire unittest e Nose ma il processo di transito su pytest è attivo, quindi è consigliabile per gli utenti evitare di utilizzare Testify per alcuni progetti imminenti.
Behave Framework:
Vantaggi:
- Facile esecuzione di tutti i tipi di test case.
- Ragionamento dettagliato & pensare
- Chiarezza di uscita QA / Dev.
Limitazioni:
- Supporta solo test scatola nera.
Struttura della lattuga:
Vantaggi:
- Linguaggio semplice per creare più scenari di test.
- Utile per casi di test basati sul comportamento per il test della scatola nera.
Limitazioni:
- Ha fortemente bisogno di un forte coordinamento tra sviluppatori, tester& stakeholder.
Puoi scegliere il framework di test Python più adatto considerando i vantaggi e le limitazioni di cui sopra che aiuteranno a sviluppare i criteri adatti alle tue esigenze aziendali.
Q #8) Quale framework è il migliore per l’automazione Python?
Risposta: Tenendo in considerazione i vantaggi e i limiti, possiamo considerare il tipo di prova, come una delle misure per scegliere il miglior framework per il testing:
- Test Funzionali: Robot, PyTest, Unittest
- Behavior-Driven Test: Comportarsi, Lattuga
Robot è il miglior framework per coloro che sono nuovi per Python test e si desidera ottenere un inizio solido.
Conclusione
Subunità, Trial, Risorse di test, Sancho, Testtools sono alcuni altri nomi aggiunti nell’elenco del framework di test Python. Tuttavia, ci sono solo alcuni strumenti che sono stati resi popolari fino a quando Python testing è un concetto relativamente nuovo che viene introdotto nel mondo dei test.
Le aziende stanno lavorando per rendere questi strumenti migliori in modo che siano facili da capire ed eseguire test. Con i dispositivi di classe ricchi e precisi, i plugin e i pacchetti, questi strumenti possono diventare esperti e preferibili per eseguire test Python.
Nel frattempo, i framework menzionati sopra da unittest to Testify stanno fornendo molto supporto e servizio necessari per ottenere le prestazioni del sistema previste.