webinar: “testing automatico: la scelta vincente per ottenere una riduzione di tempi, costi ed...
TRANSCRIPT
•Emerasoft srl•Mission•Vision•Market & Solutions
Monica BurzioMauro Della Toffola
Agenda
• Il testing automatico• La soluzione TestComplete• Solution demo• Q&A
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione di tempi, costi ed effort”
OTTOBRE 2015
Chi siamo
Data di nascita: 2005
Dove siamo:
via Po, 1 – Torino via del Poggio Laurentino, 118 - Roma
Creare valore per i nostri clienti implementando soluzioni
che aumentano la produttività, facilitando la collaborazione.
La nostra mission:
Alcuni clienti
DevOpsIoT
System & Software Engineering
Testing
ALM
SOAProcess Intelligence
Business Intelligence
Security
Digital Publishing
Training
ALM+PLMtraceability
standard compliance
collaboration
Big Data
BYOD
User Experience
QualityEnterprise Mobility
agileIoD
IoH
Usability
APIBPM
Continuous Delivery Continuous Integration
DevOpsIoT
System & Software Engineering
Testing
ALM
SOAProcess Intelligence
Business Intelligence
Security
Digital Publishing
Training
ALM+PLMtraceability
standard compliance
collaboration
Big Data
BYOD
User Experience
QualityEnterprise Mobility
agileIoD
IoH
Usability
APIBPM
Continuous Delivery Continuous Integration
STRUMENTI E SERVIZI
DI SOFTWARE TESTING
Test Automation web e mobile
Test Execution:• Excel Integration• Test Report KPI e SLA
Test di carico e di performance:• Web• Mobile• Virtual environments (CITRIX; Oracle Forms)
• Gestione requisiti
• Configuration Management con Subversion e Git
• Continuous Integration e deploy con Jenkins
• DEVOPS
Problem ?
Problem solv ing
ORGANIZZATIVI
TTMBUSINESS
TECNOLOGIA
rapida configurabilità
dopanti
moderni
collaborativi
ORGANIZZATIVI
TTMBUSINESS
TECNOLOGIA
ORGANIZZATIVI
TTMBUSINESS
TECNOLOGIA
Ambiti orizzontaliAm
biti
verti
cali
Ambiti orizzontaliAm
biti
verti
cali
Requirement, Test, Task, Defect, Planning, Release, Compliancy
AutomationModel CIDelivery PerformanceConfig
Introduzione al testing
Cos'è e cosa serve
Vi sono due distinzioni fondamentali in ambito Testing
Functional Testing
ovvero quei test che verificano e validano il comportamento di un software, quindi “cosa fa” un sistema
Non - Functional Testingovvero quei test che verificano “come” funziona il sistema, e quindi test di stress, carico, affidabilità, manutenibilità, usabilità e portabilità
Cos'è e cosa serve
Il Testing o Software Testing fa parte delle assicurazioni di qualità, ma non è l’unica
Debugging (lato sviluppo)ProfilingBenchmarking
Sono altre assicurazioni di qualità che fanno parte dell’accezione comune di Software Testing
parleremo oggi di tutti gli aspetti legati alle assicurazioni di qualità
Il collaudo, o software testing
Il termine Software Testing,
è in informatica, il collaudo del softwareIl quale è un procedimento, che fa parte del ciclo di vita del software, utilizzato per individuare le carenze di correttezza, completezza e affidabilità delle componenti software in corso di sviluppo.
Consiste nell'eseguire il software da collaudare, da solo o in combinazione ad altro software di servizio, e nel valutare se il comportamento del software rispetta i requisiti.
Cos'è e cosa serve
Cos'è e cosa serve
In generale, occorre distinguere i "malfunzionamenti" del software
"failure"
dai "difetti” del software
"fault" o "defect" o "bug”
Cos'è e cosa serve
Il malfunzionamento o "failure” è un comportamento del softwaredifforme dai requisiti espliciti o impliciti.
Il failure
Si verifica quando, in assenza di malfunzionamenti della piattaforma, (hardware + software), il sistema non fa quello che ci si aspetta
Per esempio un link non corretto, una funzionalità assentema necessaria o tracciata in modo implicito o esplicito neirequisiti del software
Cos'è e cosa serve
Il difetto o bug oppure defect, è una sequenza di istruzioni, sorgenti eseguibili, che quando eseguita con particolari dati in input, genera un malfunzionamento.
Il Bug o Defect
In pratica, si ha un defect, solo quando viene eseguita una specificaprocedura che contiene il difetto e solo se i dati di input sono tali daevidenziare l’errore
Per esempio: un form in una web application che accetta qualsiasi parametro in input, come ?!”£$ etc, come per il campo “nome utente” o “email”
Cos'è e cosa serve
Lo scopo del collaudo è di rilevare i defects tramite i malfunzionamenti,al fine di minimizzare le probabilità che il software rilasciato
abbia dei malfunzionamenti nella normale operatività.
Nessun collaudo può ridurre a zero tale probabilità, in quanto le possibili combinazioni di valori di input validi sono enormi, e non possono essere riprodotte in un tempo ragionevole.
Tuttavia un buon collaudo può rendere la probabilità di malfunzionamenti abbastanza
bassa da essere accettabile dall'utente.
Cos'è e cosa serve
L'accettabilità di una data probabilità di malfunzionamento dipende dal tipo di applicazione.
Il software per cui è richiesta la massima qualità, è quello cosiddetto "life-critical", cioè in cui un malfunzionamento può mettere a rischio la vita umana, come quello per apparecchiature medicali o aeronautiche. Per tale software è accettabile solo una probabilità di malfunzionamento molto bassa, e pertanto il collaudo è molto approfondito e rigoroso.
Per rilevare il maggior numero possibile di difetti, nel collaudo si sollecita il software in modo che sia eseguita la maggior quantità possibile di codice con
svariati dati di input.
Il Functional testing
Il Functional testing
Il functional testing o test funzionale è un’attività che fa parte delle procedure di qualità
Si riferisce alle attività che verificano un’azione specifica o una funzione nell’applicazione.
Le azioni e le funzioni da testare sono generalmente derivabili in modo diretto dai requisiti software.
Ok, ma… cos’è un requisito?
In ingegneria, un requisito è una singolare e documentata necessità fisica e funzionale che un particolare prodotto o servizio deve possedere.
E‘ comunemente usato nel senso formale nell’ingegneria dei sistemi, del software engineering, o ingegneria aziendale.
Si tratta di un'istruzione che identifica un attributo necessario, capacità, caratteristiche, o la qualità di un sistema per produrre un valore.
Il Functional testing
Il Functional testing
Saturn VPer vincere la gravità terrestre, un vettore deve raggiungere quella che viene chiamata la “velocità di fuga”.
Questa velocità equivale a 11,2 km/sec.
Per esempio…
Il Functional testing
Il Requirement Based Testing Si introduce durante la prima fase dello sviluppo software, dove la correzione degli errori ha un costo
inferiore; Si introduce nella fase della raccolta dei requisiti, dove la maggior parte dei difetti hanno effettivamente
luogo; Risponde in modo effettivo alla crescita della qualità dei requisiti: i requisiti inadeguati sono spesso la
ragione del fallimento del progetto; Permette ai casi di test di evolvere, seguendo la volatilità dei requisiti stessi ed adeguandosi di conseguenza.
Un approccio comunemente utilizzato per la creazione dei casi di test funzionaliè proprio quello di derivare questi test direttamente dai Requisiti
Questo processo prende il nome di Requirement Based Testing (RBT)
Requisiti; 56%Design; 27%
Altro; 10%
Codice; 7%
Distribuzione dei bug
Il Functional testing
Requisiti; 82%
Design; 13%Altro; 4% Codice; 1%
Distribuzione dell'effort per correggere i bug
Il Functional testing
Il Functional testing
La scrittura e la definizione dei casi di test è fondamentale
È sempre necessario avere una quantità ragionevole di casi di test
Assicurandosi che questi test siano davvero efficaci per verificare le funzionalità, quindi i requisiti
Funzionalità (requisito)
TestTestTest
Il Functional testing
Una corretta strategia è quindi di integrare la definizione dei
test durante il ciclo di vita e di sviluppo del progetto stesso, avendo
sempre in mente le specifiche ed i requisiti.
TestComplete
Test desktop, web, and mobile apps at the GUI and API layer
The Leader in Software Quality Tools for the Connected World
Automated testing tool for variety of apps
One tool for all your testing needs
Supports users with multiple skill sets
Increased technical Skills
Dev Tester
Uses open source
• Selenium support
‒ JUnit, TestNG, PyUnit, Ruby, PHPUnit, & NUnit
‒ Scale tests w/o Selenium grid
‒ Report
‒ Get screenshots
Automation Engineer
Builds frameworks using TestComplete
• Multiple scripting language support
‒ VB, Jscript, C#, C++, Delphi, Python
• SCM integration
• Continuous Integration
Business Analyst / Manual Tester
Non-programmers
• Keyword-driven
• Record and replay
• Gesture capture
Defect
‒ Jira
Version Control
‒ Git
‒ Subversion
‒ Mercurial
Build, test, & deploy continuously
• DevTester
• QAEngineer
• BA/Manual Tester
• Unit
• Integration
• API
• Selenium
Sprint–Based Testing
• CI System Server
‒ Jenkins
‒ Bamboo
Run Tests
Developers Backlog
Create test definations
‒ BDD
‒ Lettuce + TC
Use API integration to go underneath the GUI to prevent false defects
API
Desktop
Mobile
Web
1
2
3
4
Tested and proven to work • 10,000 + global customer base
‒ J.P. Morgan, Boeing, GE Healthcare, Cisco
• Presence in multiple verticals ‒ Finance, Aerospace, Healthcare, Telecom etc.
• Strong Performer in The Forrester Wave
• Visionary in Gartner 2014 Magic Quadrant for Integrated Software Quality Suites
DEMO
Contenuti disponibili su:
Canale slideshare di Emerasoft
Canale Youtube Emerasoftwww.emerasoft.comwww.emerasoft.com/servizi/qcloud
Q&A?
What’s next
Segui i nostri canali …
Emerasoft Srl
via Po, 1 – 10124 Torinovia del Poggio Laurentino, 118 – 00144 Roma
T +39 011 0120370 T +39 06 87811323F +39 011 3710371
Grazie…
Contatti