desarrollo de sistemas de información - ocw.unican.es · lo relavo a la estructura de bd y las...

27
Tema 7. Pruebas Desarrollo de Sistemas de Información Marta Elena Zorrilla Pantaleón DPTO. DE MATEMÁTICAS,ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: CreaFve Commons BY‐NC‐SA 3.0

Upload: dokhanh

Post on 29-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

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