Publicado el 9 de Abril del 2019
1.097 visualizaciones desde el 9 de Abril del 2019
1,2 MB
14 paginas
Creado hace 9a (25/06/2015)
Pruebas SQL, NoSQL
y Multidispositivo
Javier Tuya
Universidad de Oviedo
Grupo de Investigación en Ingeniería del Software (GIIS)
http://giis.uniovi.es/
Alianza Española de Innovación en Software Testing
Sevilla, 16 de Marzo de 2015
Qué hacemos
GIIS (Grupo de Investigación
en Ingeniería del Software)
Pruebas de Aplicaciones con Bases
de datos
Evaluación, generación, reducción
Pruebas con tecnologías usadas en
Big Data
Almacenamiento (NoSQL)
Procesamiento (MapReduce)
Estándares (ISO/IEC/IEEE 29119)
Formación
Pruebas Multidispositivo (con
UbiqWare)
Acknowledgements:
Test4SOA - Techniques for Functional
Testing in Service Oriented
Architectures (TIN2007-67843-C06-
01)
Test4DBS - Test methods for
applications with databases and
services (TIN2010-20057-C03-01)
Acknowledgements:
PERTEST - Testing of data persistence
and user perspective for new
paradigms (TIN2013-46928-C3-1-R)
J. Tuya (2015)
Pruebas SQL y NoSQL
2
Puedes conocer la cobertura de
las pruebas de tu aplicación
Un fragmento simple de un programa Java…
El salario es calculado como un salario base más el promedio de los
bonus generados por los proyectos en los que el empleado ha participado
Ejecutando esta función se cubren
todas las ramas
100% de cobertura?
J. Tuya (2015)
Pruebas SQL y NoSQL
3
... y la cobertura de tus SQL?
Qué pasa si…
… Todos los proyectos asignados a un
empleado dado tienen bonus > 0?
El promedio de
bonus es correcto
… Algún proyecto asignado
tiene bonus = 0?
… Todos los proyectos asignados
tienen bonus = 0?
… El empleado no está
asignado a ningún
proyecto?
El promedio de bonus
NO es correcto
La sentencia SQL NO
devuelve filas:
RuntimeException
J. Tuya (2015)
Pruebas SQL y NoSQL
4
... and your SQL test coverage?
Cómo plantearíamos la prueba?
Identificar las diferentes situaciones que pueden
ocurrir (Test Coverage Items según ISO/IEC/IEEE
29119) y Preparar la Base de Datos de Prueba
Para estas tareas Test4Data proporciona
automatización como ayuda al
desarrollador y al tester
+
J. Tuya (2015)
Pruebas SQL y NoSQL
5
(1) Herramientas
test4data.com
giis.uniovi.es/tools/
Técnica/Criterio
de prueba
Generación
BD pruebas
SQL
(filas generadas)
BD
Producción
Aplicación
BD
Pruebas
(filas seleccionadas)
SQL
Reducción
BD pruebas
SQLFpc/SQLRules (web, ws / Java)
•
Identifica Situaciones
de interés a probar
• Evalúa cobertura
respecto BD de pruebas
QAGrow
• Crea nuevas filas y las
(Java)
inserta en la BD de pruebas
• Para alcanzar la cobertura
SQLFpc
QAShrink
•
Inserta en la BD de pruebas
filas de la BD de producción
(Java)
• Para alcanzar la cobertura
SQLFpc
• Minimizando el tamaño de la BD
J. Tuya (2015)
Pruebas SQL y NoSQL
7
(2) Entrenamiento (SQLTest)
http://in2test.lsi.uniovi.es/sqltest/
Objetivo: Realizar pruebas EFECTIVAS
Facilidad para
introducir datos
de prueba y
casos
Evaluación
automática de la
efectividad de las
pruebas
Comparación con
otros
participantes y
ranking
J. Tuya (2015)
Pruebas SQL y NoSQL
9
(3) Testing en el mundo Big Data
Online
Applic.
Other
Data
Sources
Relational Model
Star Model
Busines Intelligence
OLTP Database
OLAP Database
(Data Warehouse)
Visualization,
Manual
Analysis
NoSQL
Database(s)
No Relational Model
No Transactional
(eventual consistency)
No Normalized
Replication/Distribution
Multiple Technologies
Complex
Massive Data
Processing
Data
Analytics
e.g. Hadoop/MapReduce
Apoyo al desarrollador y tester
• Modelar para derivar las pruebas
• Cambios de los programas
• Consistencia de información replicada
• Eficiencia (minimizar datos)
• Efectividad (detección defectos)
J. Tuya (2015)
Pruebas SQL y NoSQL
10
(4) Testing Multidispositivo
Múltiples plataformas Múltiples proveedores de tecnología
J. Tuya (2015)
Pruebas SQL y NoSQL
11
(4) Testing Multidispositivo
Continuous Integration
& Delivery - DevOps
J. Tuya (2015)
Pruebas SQL y NoSQL
12
Evidencias: Usar SQLFpc para crear
una BD de pruebas
Proceso iterativo (ejemplo en ERP Compiere)
SQLFpc proporciona reglas ejecutables (SQL) por cada situación a probar
Ejecutar reglas no cubiertas
Seleccionar una regla no cubierta
24 condiciones, 5 tablas → 64 filas
Crear filas en BD para cubrir
15 CASE, 20 tablas → 89 filas
J. Tuya (2015)
Pruebas SQL y NoSQL
13
C_Invoice_Candidate_v020406080100161116212631364146Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreC_Invoice_LineTax_vt020406080100161116212631364146515661Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreC_RfQResponseLine_v020406080100135791113Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreC_RfQResponseLine_vt02040608010013579111315Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreM_InOut_Candidate_v02040608010013579111315171921Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreRV_BPartnerOpen0204060801001357Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreRV_OpenItem0204060801001357911Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreRV_WarehousePrice020406080100135791113Step% Coverage / Mut. ScoreRows (%)FPC coverageMutation ScoreEvidencias: Reducción de una BD de
100GB (benchmark TPC-H)
Efectividad: Preserva la
cobertura respecto de la BD
de producción
Eficiencia: Reducción de
tamaño independiente del de
la BD de producción
Eficiencia: Tiempo
proporcional al de ejecución
de las consultas
Funcionalidad: Soporta BD
grandes, queries complejas.
Totalmente automatizado
J. Tuya (2015)
Pruebas SQL y NoSQL
14
0200400600800100012001400160018002000Size of Reduced Database (Rows)SequentialSeq (x1000)Seq (x100)Seq (x10)ParallelPar (x1000)Par (x100)Par (x10)00,511,522,533,54Normalized Execution TimeSequentialSeq (x1000)Seq (x100)Seq (x10)ParallelPar (x1000)Par (x100)Par (x10)Cómo podemos ayudarnos
mutuamente?
- Coste pruebas
SQL - Test4Data
Utilizarlas en la empresa
Obtener feedback
NoSQL - Mundo Big Data
- Tamaño BD pruebas
+ Significativa
+ Calidad y Cobertura
+ Productividad (automatización)
- Tareas manuales (creación BD)
Identificar problemática en las empresas
Adaptación de nuestra investigación
Entrenamiento
SQLTest
Formación Técnicas de Prueba
Divulgación ISO/IEC/IEEE 29119.
Viabilidad aplicación/adaptación a PYMES
J. Tuya (2015)
Pruebas SQL y NoSQL
15
Contacto
GIIS (Grupo de Investigación en Ingeniería del Software),
Universidad Oviedo
http://giis.uniovi.es/
Javier Tuya
http://www.di.uniovi.es/~tuya/
tuya at uniovi.es
UbiqWare – Nacho Marín
http://ubiqware.net
info at ubiqware.net
J. Tuya (2015)
Pruebas SQL y NoSQL
16
Comentarios de: Pruebas SQL, NoSQL y Multidispositivo (0)
No hay comentarios