Post on 29-Sep-2018
Tema7.Pruebas
DesarrollodeSistemasdeInformación
MartaElenaZorrillaPantaleónDPTO.DEMATEMÁTICAS,ESTADÍSTICAY
COMPUTACIÓN
EstetemasepublicabajoLicencia:CreaFveCommonsBY‐NC‐SA3.0
UC‐MartaZorrilla
REFERENCIAS BIBLIOGRÁFICAS
S.Brass,C.Goldberg.SemanFcerrorsinSQLqueries:Aquitecompletelist.JournalofSystemsandSo1ware(79).2006
W.E.Lewis.So1wareTes4ngandCon4nuousQualityImprovement.3rdEdiFon.AuerbachPublicaFons.2009
LeyOrgánica15/1999de13dediciembredeProteccióndeDatosdeCarácterPersonal,(LOPD)
G.J.Myers.Theartofso1waretes4ng.2ndEdiFon.Wiley.2004.
InternaFonalStandardsOrganisaFon,Informa4ontechnology–Databaselanguages–SQL:2008
2
UC‐MartaZorrilla
INTRODUCCIÓN
Estetemasecentraenelprocesodepruebas,enconcretolorelaFvoalaestructuradeBDylasreglasdeintegridaddefinidas
ObjeFvos
Diseñarygenerarloscasosdeprueba
Determinarnecesidadesparallevaracabolaspruebas
EstablecerFposdepruebas,elementossobrelosqueactuaryrecomendacionesencadacaso
MostraralternaFvasso_warepararealizarlas
3
UC‐MartaZorrilla
¿POR QUÉ HACER PRUEBAS A LA BD?
RecogefuncionalidadcríFcadelnegocio
AyudaalaampliaciónyrefactorizadodelaBD
Esunartefactomásdelaaplicaciónso_ware
Sirvencomodocumentación
4
UC‐MartaZorrilla
TIPOS DE PRUEBAS EN BD
Pruebassobreelesquema(estáFca)
Cómputodecamposcalculados,borradosencascada,valoresnulos,conversiónenFposdedatos,vistasquedevuelvenlosdatosqueseesperan,referenciabilidad,etc.
Pruebassobrelaparteprogramá=ca(dinámica)
Procedimientosalmacenados,funciones,disparadores,atenciónespecialalastransacciones,cumplirrequisitosfuncionales.
Pruebasdeseguridad
Quéusuarios‐rolesexisten,quépuedenhacer,garanFzarLOPD,creaciónyrestauracióndecopiasdeseguridad,etc.
Pruebasderendimiento
Cargadeusuarios,procesos(concurrenciaydeadlocks),situacioneslímites,etc.
Pruebassobredatos
Comprobarquedatosdetablasmaestras,FpoCP,provincia,etcestánpresentesenlaBD.Comunicacionesconaplicacionesexternas
5
UC‐MartaZorrilla
TÉCNICAS COMUNES
BD:
CombinacióndesentenciasPRINTypruebasad‐hoc
UsodeT‐SQLdebugger(enSQLServer)parainspeccionarelvalordelasvariables
Enambosserequierelaintervencióndelprogramador,noestáautomaFzado
Laspruebassonad‐hocy,portanto,noexactamentereproducibles
Solución:Pruebasunitarias
AplicacionesdeBD:
Pruebasdecajanegra:pruebasquevelanporelcumplimientodelosrequisitosfuncionales.VistasenIng.So_wareII
CRUDtesFng[Lewis,2009]:matrizdondeserecogentodoslosobjetosysecompruebalainserción,actualización,borradoyrecuperacióndedatos
6
UC‐MartaZorrilla
PRUEBAS UNITARIAS
Pruebaunitaria,procedimientoquepermitevalidarsiunaunidaddecódigofuenterealizalafuncionalidadespecificada
Cadaprueba,idealmente,esindependientedelresto
Laspruebasunitariassonresponsabilidaddelosdesarrolladores
Debenserrápidasdeejecutarydebenejecutarsefrecuentemente(cadarefactorizado)
PuedenprogramarseparahacerseenlanochedeformaautomaFzada
7
UC‐MartaZorrilla
ESQUEMA PARA DEFINIR PRUEBAS UNITARIAS
E8.TestCase[Lewis,2009]
8
Date: Testedby:System: Environment:ObjeFve: TestID Req.ID:FuncFon: Screen:Versión: TestType(unit,integr.,system,accept.):
CondiFontotest:‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐Data/Stepstoperform:‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐Expectedresults:‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐Actualresults(pass/fail):‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
UC‐MartaZorrilla
FRAMEWORKS PARA PRUEBAS
TSQLUnithop://sourceforge.net/apps/trac/tsqlunit/
frameworkparaescribirpruebasparaaplicacionesescritasenTransact‐SQL.
DataDudeincluidoenMSVisualStudio2010,soportatodoelciclodevidadelaBD
tSQLthop://tsqlt.org/
gratuitaparaSQLServer2005yposteriores,definiciónyejecucióndepruebasenSQLManagementStudio.SimilaraTSQLUnitperoconmásprocedimientosqueaprenderparasuuso.
AnyDbTesthop://www.anydbtest.com
Gratuita,independientedelgestor,casosdetestescritosenxml,java,c,..
Spawnerhop://sourceforge.net/projects/spawner/
Generacióndedatosmanual(noleedelesquemadelaBD)
9
UC‐MartaZorrilla
FRAMEWORKS PARA PRUEBAS
BasadasenJavahop://www.java2s.com/Product/Java/TesFng/Database‐TesFng.htm
SQLUnithop://sqlunit.sourceforge.net
FrameworkqueseapoyaenJUnit,conviertepruebasescritasenXMLallamadasJDBCycomparalosresultadosconlossuministradosalefecto.
DbUnithop://dbunit.sourceforge.net/
ExtensióndeJUnitorientadaaproyectosdeBD.VersiónNetenwww.ndbunit.org
dbMonsterhop://dbmonster.kernelpanic.pl/
HerramientaparasintonizarlaBDyprobarsurendimiento.Generadatosdetestaleatorios.EscritaenJava
10
UC‐MartaZorrilla
GESTIONAR EL ESTADO DE LA BD
¿CómogaranFzarquelosresultadosdelaspruebasseancorrectos?
SehadegaranFzarquelaBDseencuentraenunestadoinicialdeterminado,antesdeejecutarlaspruebas
SehadeasegurarquelabasededatosFeneelestadoapropiadoentrecadaprueba
11
UC‐MartaZorrilla
TÉCNICAS PARA GESTIONAR EL ESTADO DE UNA BD
Estadoinicial:
UFlizarunaherramientadegeneracióndedatosantesdeejecutarlaspruebas
RestaurarunBackup
Diseñarpruebasqueestablezcanelestadocomopuntodecomienzodeltest
Entrepruebas:
Deshacerloscambiosrealizadosporunaprueba,despuésdesuejecución
UFlizar“Transac=onRollback”paraenvolvercadaprueba.
12
UC‐MartaZorrilla
OPCIONES PARA GENERAR DATOS DE PRUEBA
Unacopiadedatosdeproducción
LamásrepresentaFvaperogeneralmenteproblemasdeprivacidad
Generardatosdesdecero
P.ej.enaplicaFvosnuevos.Costoso
UFlizargeneradoresdecódigoconfigurables
AplicandatosadecuadosalFpodedatodelacolumna,Fenenencuentalasrestricciones,sepuedenmodelarrelacionesentretablas(p.ej.Porcadapedido,10líneas)
GeneraciónrepeFble,úFlparaprobarlaBD
Losbuenosdepago
13
UC‐MartaZorrilla
PRUEBAS SOBRE ESQUEMA
Cubrirparatodaslastablas:
Tiposdedatos,Checks,Dominios,Valoresrequeridos,PK,FK,operacionesencascada,Disparadores,índices
Comprobaciones:
Inserciónyactualizacióndevaloresúnicos;rechazoderepeFdos
Inserciónyactualizacióndevaloresenclavesajenas;rechazodevaloressinreferencia
Insercióndevaloresnulos;rechazocuandonoseaposible
LascuesFonesrelaFvasarestriccionestambiénsepuedencomprobarleyendodelcatálogodelaBD
Eliminaciónyactualizacióndevaloresreferenciadosenmaestrosconlaopciónde«encascada»;rechazoencasocontrario
Insercióndevaloressegúnrestriccionesdedominio;rechazoencasocontrario;
Inserción,actualizaciónyborradodevaloresparaejecutarloscorrespondientesdisparadores
14
UC‐MartaZorrilla
PRUEBAS SOBRE ESQUEMA
Vistas,Procedimientosyfunciones:
ComprobarerroressemánFcos[BrassyGoldberg,2006],SQLquenohacenloquedebenaunquesintácFcamenteesténbienescritos SELECT:constantes,atributosduplicados,DISTINCT
FROM:joinsinnecesarias,usodejoinsdefinidasenSQL92,condicionesolvidadas
WHERE/HAVING:condicionesinconsistentes,condicionessiemprefalsas,condicionesentrevaloresdediferentesdominios,valoresNULL
GROUPBY:gruposdeunafila,grupoúnico,atributosinnecesarios
Evitarusodecursores
Vigilarelniveldeaislamientodetransacciones:Accesoconcurrentealainformación
15
UC‐MartaZorrilla
PRUEBAS SOBRE TRANSACCIONES
Procedimientosalmacenados:
Transaccionesdefinidas
Comprobaciones:
Ejecucióndesecuenciasdecaminosposibles(atenciónatransaccionesanidadas)
Consistenciadelainformación
Validezdelosdatos
Situacionesdeéxitoconcero,unaomásfilasresultado
Situacionesdefalloconrestauracióndelestado
16
UC‐MartaZorrilla
PRUEBAS “REGLA DE NEGOCIO”: CASO PRÁCTICO*
RealizarreservasdeespaciosparaimparFrclasesprácFcasdeuncentrodocente
Modelodedatos
Requisitosfuncionalesparadetectarcolisiones
*EjemploextraídodelaponenciaPruebasdeAplicacionesenBasesdedatosimparFdaporMªJoséSuárez‐CabaldelaU.deOviedoenelcursodeveranoGesFónAvanzadadeDatos
17
UC‐MartaZorrilla
DISEÑO DE PRUEBAS
Definir«requisitosdeprueba»:Determinaraspectosdelsistemaaprobaryrefinarhastallegaraunniveldedetallesuficiente(casodeaplicaciónendisparadores)
Enestecasodeestudio:
Requisito1.2.1:«UnareservaestáencolisiónconotraasignaturasienalgúncasolahorayeldíacoincidenenuncursoacadémicodesumismaFtulaciónycurso»
Requisito1.2.2:«Siunareservanoindicafechadeinicioofinsesuponevigentedesdeeliniciohastaelfindecurso,respecFvamente.Sinoseincluyeningunoseconsideraprovisionalynodebeprovocarcolisiones»
18
UC‐MartaZorrilla
REQUISITOS DE PRUEBA (PRELIMINARES): REQUISITO 1.2.1
Técnica:Decisión/condiciónmodificada(MC/DC)
Cadacondicióndeterminaelvalordesalida,sinqueelrestocambie
ElrequisitopresentacondicionesseparadasporY(hora,día,Ftulación,cursoycursoacadémico)sedebendarlassiguientessituacionesorequisitosdeprueba:
Todaslascondicionessonciertas
Paracadacondición,sóloesaesfalsa
19
UC‐MartaZorrilla
DEFINICIÓN DE CASOS DE PRUEBA
¿Cuántoscasosdeprueba?Tantoscomocombinacionesdecondiciones
¿Porquéestánformadosloscasosdeprueba?
Entrada:
Parámetros(nuevareserva)
Basededatos(reservasexistentes)
Salida:
Filascondatosdereservasqueproducencolisión
20
UC‐MartaZorrilla
REQUISITOS DE PRUEBA (REFINAMIENTO): REQUISITO 1.2.1
Planteamiento:¿estánlosrequisitosdelsistemasuficientementeespecificados?¿faltaosobraalgo?
NecesidaddeincluirpruebasparacondicionesomiFdasoquesobran
Sielcomportamientodelsistemanoestáclaro,incluyendoesteFpodesituacionessedebedeterminarcómodeberíaser
Enelrequisito1.2.1:
¿Quésucedesieslamismaasignatura?¿haycolisión?
Elaulaparalareserva¿noseFeneencuenta?
21
UC‐MartaZorrilla
REQUISITOS DE PRUEBA: REQUISITO 1.2.2 (I)
Técnica:ParFciónenclasesdeequivalencia
Elrequisitopresentacondicionessobrefechas:inicioyfin(intervalos)delanuevareservaydelasexistentes.Sedaránlassiguientessituacionesenfuncióndelasclasesdeequivalencia:
Intervaloscerrados(fechasdeinicioyfinestablecidas):
Inclusióntotaldeunintervaloenotro
Lanuevareserva(NR)incluidaenalgunareservadelabasededatos(BD)
Inclusiónparcial
NRaladerechaoizquierdadelperiodoestablecidodeBD
Losintervalosnocoinciden
NRaladerechaoizquierdadelperiodoestablecidoenBD
f.ini f.fin
22
UC‐MartaZorrilla
REQUISITOS DE PRUEBA: REQUISITO 1.2.2 (II)
Mássituacionesenfuncióndelasclasesdeequivalencia:
Intervalosabiertos(algunafechanoestablecida):
Intervaloinicioabierto
NRanteriorafechafinBD
NRconFenefechafinBD
NRposteriorafechafinBD
Intervalofinabierto
NRanteriorafechainicioBD
NRconFenefechainicioBD
BDposteriorafechainicioBD
Ambosintervalosabiertos
23
UC‐MartaZorrilla
REQUISITOS DE PRUEBA: REQUISITO 1.2.2 (III)
Técnica:Análisisdevaloreslímite
Elanálisisdeclasesdeequivalenciasecompletaconanálisisdevaloreslímiteenrelaciónconlosintervalos
EnlugarderealizarlapruebaconcualquierelementodelaparFciónequivalente,seescogenlosvaloresenlosbordesdelaclase.
24
UC‐MartaZorrilla
CON ESTOS CASOS DE PRUEBA, ¿PODRÍAMOS LOCALIZAR DEFECTOS?
Máscasosaprobar:
Noconsiderarelcursoacadémico.
SólocolisionesconasignaturasdelamismaFtulación.
UnaprácFcadeunaasignaturanuncacolisionaconotradelamismaasignatura.
Problemasenloslímitesdelosintervalosdefechas(cerrados):sicoincideeldíadefinconeldeinicioseproducecolisión.
Comprobacióndelosintervalosabiertosporeliniciooporelfinal.
Lasreservasquenoespecificanniplazodeinicionidefinnuncaproducencolisiones.
Coincidenciadelaulapropuestaconladeotrareserva.
25
UC‐MartaZorrilla
PRUEBAS DE SEGURIDAD
Elementosdelesquemaaevaluar(porroles): Validacióndecredencialesdeusuario
PermisossobreConsultasSQL
Datosdeentradadeusuarioeinformacióndesalidadeusuario IdenFficardatosdecarácterpersonal[LOPD,1999]
Anotarenlogdatossensiblesnivel3[LOPD,1999]
Copiasdeseguridad
Tareasdebackupyrestauración
26
UC‐MartaZorrilla
PRUEBAS DE RENDIMIENTO
Rendimientodelasaplicacionesbajodiferentescargasdetrabajo: Volumendedatosalmacenadosprevisto
Númerodeusuariospotencialesconcurrentes
Númerodeaccesosdiarios
Picosdecargaprevistos
Tiempomedioderespuestaportransacción
Usoderecursos(anchodebanda,memoria,cursoresabiertos,etc.)
Recomendacionesdepruebasarealizar Estrés:rendimientodelsistemaenelpeorescenariodurantecortos
periodosdeFempo
Resistencia:rendimientodelsistemaencondicionesconFnuasdecargaelevada
Monitorizacióndelpesodelasconsultas(duraciónousoderecursos)ydecursoresyconexionesabiertos
27