Ingeniería de pruebas en arquitectura cliente-servidor

31
Ingenieria de pruebas en arquitecturas cliente-servidor Daniel Herrera Salgado Mauro Parra Miranda ZLM QA Novell Inc

description

Esta plática la dí con Daniel Salgado en el GULEV 2004

Transcript of Ingeniería de pruebas en arquitectura cliente-servidor

Page 1: Ingeniería de pruebas en arquitectura cliente-servidor

Ingenieria de pruebas en arquitecturas cliente-servidor

Daniel Herrera SalgadoMauro Parra MirandaZLM QANovell Inc

Page 2: Ingeniería de pruebas en arquitectura cliente-servidor

Ciclo de vida del software

Page 3: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.3

Ciclo de vida del software

Análisis

Diseño

Codificación

Pruebas

Page 4: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.4

Ciclo de vida del software

Análisis

Diseño

Codificación

Pruebas

Page 5: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.5

Llenando un bug

Page 6: Ingeniería de pruebas en arquitectura cliente-servidor

Metodos de prueba

Page 7: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.7

Métodos de pruebas

•Creación y gestión de jaulas automática.

•Servidores de procedimientos remotos para lanzar comandos a máquinas y jaulas en la misma red, incluso simultáneamente.

•Programas que despliegan archivos de instalación, a partir del estado en cierta fecha de los repositorios de código fuente.

•Pruebas automatizadas que ejecutan comandos y guardan los resultados en bitácoras para su posterior análisis.

Page 8: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.8

Ventajas de las jaulas

•Disponer de máquinas caprichosamente es costoso.

•Linux, al ser una plataforma abierta, es muy extensible y configurable.

•Linux permite simular múltiples sistemas completos dentro de una misma máquina, a los cuales les llamamos jaulas.

•Una sola máquina puede hospedar cientos de jaulas, siendo cada jaula usada como un cliente del servidor.

Page 9: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.9

bugzilla

Page 10: Ingeniería de pruebas en arquitectura cliente-servidor

Bug tracking Pruebas de Funcionalidad

Page 11: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.11

Seguimiento de bugs

Cuando un bug aparece, normalmente es reportado por los usuarios.

Para hacer mas fácil la comunicación se utiliza unaaplicación de web llamada bugzilla.

Básicamente, el hacker lee el nuevo bug, lo reproducey luego lo resuelve, notificando al usuario o QA que loreportó para que lo vuelva a probar en la última versióndel software.

Page 12: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.12

Pruebas de funcionalidad

Se realizan pruebas exahustivas sobre el sistema, para detectar errores o comportamientos anómalos.

Se han desarrollado programas que automatizan una gran cantidad de estas pruebas, si el programa detecta un error, se reporta al ingeniero de QA, para que este les dedique especial atención.

En el caso de interfaces de usuario como la aplicación web, se realizan pruebas manuales para asegurar su correcto funcionamiento.

Page 13: Ingeniería de pruebas en arquitectura cliente-servidor

Planes de prueba

Page 14: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.14

Plan de Pruebas

Escrito en que paso a paso se precisan los detalles para realizar las pruebas.

Diseñados a partir de las especificaciones, de las lecciones aprendidas y buenas prácticas.

Son diseñados por el equipo de QA y los desarrolladores en etapas tempranas del ciclo de vida del software.

Page 15: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.15

Objetivos

•Asegurar el correcto proceso de prueba.•Normalizar las pruebas.•Garantizar la calidad del producto.

Page 16: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.16

Revision de los planes de prueba

Los planes de pruebas son revisados continuamente

para que las pruebas incluídas sigan siendo útiles y

confiables, es decir, que cumplan con el objetivo de

garantizar la calidad del producto final para los

usuarios.

Page 17: Ingeniería de pruebas en arquitectura cliente-servidor

¿Que es una jaula?

Page 18: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.18

¿Que es una jaula?

● Una maquina virtual a la mano, sin software extra.

● Un sistema *nix completo, incluyendo privilegios, que no afectara el sistema base.

● Varios sistemas corriendo en la misma maquina, compartiendo recursos.

Page 19: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.19

Creando el tarball

● Instalar un sistema base● Instalar el sistema objetivo en una de las

particiones del sistema. ● Reiniciar con el sistema base● Montar la particion que contiene el sistema

objetivo. ● Hacer el tarball del sistema.

Page 20: Ingeniería de pruebas en arquitectura cliente-servidor

Uso de jaulas

Page 21: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.21

Uso de jaulas

• Pueden correr tantas jaulas como se deseen en una misma maquina, dado que basta con hacer desempaquetarlas y entrar en ellas usando chroot. •Dependiendo el software que se este ejecutando, se requieren cambios en configuraciones de red.•Una de las mejores formas de comunicacion entre las jaulas es el uso de llamadas a procesos remotos sobre xml (xml-rpc)

Page 22: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.22

Uso de jaulas

Sistema base

xml-rpc

Page 23: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.23

Uso de jaulas

No solo podemos usar varias jaulas en la misma maquina, podemos hacer una granja que corran jaulas. Se comunicaran de la misma forma.

xml-rpc

Page 24: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.24

Slaves

Podemos correr jaulas como si fueran sistemas base. Para hacerlo, necesitamos:

•Copiar el tarball a una particion vacia•Desempaquetar el tarball en esa particion. •Configurar grub para que arranque desde la particion con la jaula. •Reiniciar la maquina.

Page 25: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.25

Automatizacion de pruebas

Ya que tenemos varias jaulas, es posible hacer pruebas automatizadas sobre ellas.

•Ejecutar un demonio en cada jaula que ejecute pruebas predefinidas.•Hacer pruebas rapidas con scripts en bash, viendo la salida de cada uno. Usualmente los casos de pruebas son expresados en xml y un demonio los ejecuta y reporta.

Page 26: Ingeniería de pruebas en arquitectura cliente-servidor

Conclusiones

Page 27: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.27

Conclusiones

•Podemos probar software sobre varias distribuciones de linux•No necesitamos una gran inversion para tener todo un laboratorio de pruebas.•Los tarballs solamente se tienen que crear una ocasion.•Se pueden hacer pruebas de estres automatizadas.•Se minimiza el tiempo perdido por reinstalacion.

Page 28: Ingeniería de pruebas en arquitectura cliente-servidor

Recursos

Page 29: Ingeniería de pruebas en arquitectura cliente-servidor

© Julio 2004 Novell Inc.29

Recursos

•Juega con Novell Linux Desktop: http://www.novell.com/linux/download_linux.html•xml rpchttp://www.xmlrpc.com/•Corriendo bind en un jailhttp://sxs.thexdershome.com/internet_serving/bind9_chroot.html

•man chroot

Page 30: Ingeniería de pruebas en arquitectura cliente-servidor
Page 31: Ingeniería de pruebas en arquitectura cliente-servidor

General DisclaimerThis document is not to be construed as a promise by any participating company to develop, deliver, or market a product. Novell, Inc., makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc., reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.

No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.